C++ Curriculum
Our C++ programming course is designed for individuals who want to learn C++ from scratch, regardless of their current knowledge. The course is divided into two parts: "Procedural Programming in C++" and "Object-oriented programming in C++". The first part covers the basics of C++ programming, while the second part focuses on more advanced concepts.
Each part is divided into six modules, and each module contains a project to help students apply what they have learned. Our approach to learning is flexible, allowing students to choose to take all or just a few modules depending on their learning goals and requirements.
Our basic course, "Programming fundamentals in C++", is ideal for beginners who want to learn the basics of programming with C++. On the other hand, the advanced course, "Object-oriented programming in C++", is designed for those who want to take their C++ programming skills to the next level.
Our course is perfect for individuals who want to develop their skills for a career in the IT industry or for those who want to learn coding as an extracurricular activity. We understand that each student's schedule and pace of learning are unique, and we strive to provide flexible learning solutions that best meet the needs of our students.
Procedural Programming in C++
-
Topic 1: Overview of C++ programming language
Topic 2: Setting up the C++ development environment
Topic 3: Writing and running a simple C++ program
-
Topic 1: Primitive Data Types in C++
Topic 2: Variables and Constants
Topic 3: Arithmetic Operators
Topic 4: Comparison Operators
Topic 5: Logical Operators
Project: Simple Calculator
Overview: In this project, students will create a simple calculator program that takes user input and performs basic arithmetic operations.
-
Topic 1: Conditional Statements (If/Else)
Topic 2: Switch Statements
Topic 3: Loops (For, While, Do-While)
Project: Guessing Game
Overview: In this project, students will create a program that generates a random number and asks the user to guess the number. The program will provide hints if the guess is too high or too low.
-
Topic 1: Declaring and Initializing Arrays
Topic 2: Accessing Array Elements
Topic 3: Multi-Dimensional Arrays
Project: Tic-Tac-Toe Game
Overview: In this project, students will create a program that allows two players to play a game of Tic-Tac-Toe using a 2D array to represent the game board.
-
Topic 1: Defining and Calling Functions
Topic 2: Parameters and Arguments
Topic 3: Return Values
Project: Hangman Game
Overview: In this project, students will create a program that allows a user to play a game of Hangman. They will use functions to generate a random word, display the game board, and check for correct guesses.
-
What are vectors and why are they useful?
The vector class in C++
Declaring and initializing vectors
Accessing elements of a vector
Adding elements to a vector
Removing elements from a vector
Modifying elements in a vector
Sorting and searching vectors
Using algorithms with vectors
Creating and using 2D vectors
Creating and using higher-dimensional vectors
Project: Image Processing Application
Overview: In this project, students will create an image-processing application that uses vectors to manipulate pixel values. The program will read an image file, store the pixel values in a 2D vector, and allow the user to perform various operations on the image, such as resizing, rotating, and applying filters. The program will then write the modified image into a new file.
-
Topic 1: Introduction to Pointers
Topic 2: Pointer Operators
Topic 3: Dynamic Memory Allocation
Project: Minesweeper Game
Overview: In this project, students will create a program that allows a user to play a game of Minesweeper. They will use pointers to dynamically allocate memory for the game board and check for mine locations.
Object-Oriented Programming
-
Topic 1: OOP Concepts
Topic 2: Classes and Objects
Topic 3: Constructors and Destructors
Project: Bank Account Management System
Overview: In this project, students will create a program to manage bank accounts using classes and objects. They will learn how to define classes, create objects, and use constructors and destructors to initialize and destroy objects.
-
Topic 1: Encapsulation
Topic 2: Abstraction
Topic 3: Access Modifiers
Project: Library Management System
Overview: In this project, students will create a program to manage a library using encapsulation and abstraction. They will learn how to define classes with private and public members, use access modifiers to control access to class members, and implement abstraction to hide implementation details.
-
Topic 1: Inheritance
Topic 2: Polymorphism
Topic 3: Virtual Functions
Project: Online Shopping System
Overview: In this project, students will create an online shopping system that utilizes inheritance and polymorphism. They will learn how to create derived classes and override virtual functions to implement specific behaviors.
-
Module 4: Interfaces
Topic 1: Introduction to Interfaces
Topic 2: Implementing Interfaces in C++
Topic 3: Polymorphism with Interfaces
Project: Chess
Overview: In this module, students will be introduced to the concept of interfaces and learn how to implement them in C++. They will also learn how to use interfaces to create polymorphic behavior. They will create the game of chess using interfaces.
-
Topic 1: Function Templates
Topic 2: Class Templates
Topic 3: Standard Template Library
-
Topic 1: Singly Linked Lists
Topic 2: Doubly Linked Lists
Topic 3: Circular Linked Lists
Project: Music Player
Overview: In this project, students will implement a music player that uses linked lists to manage playlists. They will learn how to create and manipulate singly and doubly linked lists, as well as implement circular linked lists for circular playlists.
-
Topic 1: File Input and Output
Topic 2: Exception Handling
Project: Inventory Management System
This project will include features such as inventory tracking, stock ordering, supplier management, and sales reporting. The system allows users to add, edit, and remove products, as well as track their sales and purchase histories. It can also generate reports that provide valuable insights into inventory performance and help users make informed decisions about stock management.