C ++
CURRICULUM
Our C++ curriculum is suitable for beginners to intermediate learners. This curriculum is ideal for self-study, high school or university courses, or professional upskilling. It’s divided into modules, each with topics and suggested activities or projects.
C++ Curriculum Outline
Module 1: Introduction to Programming with C++
- Objective: Understand basic programming concepts and C++ syntax.
- History and features of C++
- Setting up environment (IDE: Code::Blocks, Visual Studio, or VS Code with g++)
- First program: Hello, World!
- Syntax, structure, and basic I/O (cin, cout)
- Comments and code style
Practice: Write a program that asks for your name and age and prints a greeting.
Module 2: Variables and Data Types
- Objective: Use C++ variables and understand different data types.
- Data types: int, float, char, double, bool
- Constants (const, #define)
- Type casting
- Arithmetic and logical operators
Practice: Build a simple calculator (addition, subtraction, multiplication, division).
Module 3: Control Structures
- Objective: Use decision-making and looping structures.
- if, else if, else, switch
- Loops: for, while, do-while
- Nested loops and loop control: break, continue
Practice: Write a program to check for prime numbers within a range.
Module 4: Functions
- Objective: Learn modular programming with functions.
- Function declaration, definition, and calling
- Parameters and return values
- Pass-by-value vs pass-by-reference
- Recursion
Practice: Write a recursive function to compute factorial or Fibonacci numbers.
Module 5: Arrays and Strings
- Objective: Handle collections of data.
- One-dimensional and multi-dimensional arrays
- Array manipulation (search, sort)
- Strings (char arrays and string class)
- Basic string functions
Practice: Create a program that checks if a string is a palindrome.
Module 6: Pointers and Memory Management
- Objective: Understand how memory works in C++.
- Pointer basics: declaration, dereferencing, and address-of operator
- Pointer arithmetic
- Dynamic memory allocation: new, delete
- nullptr, dangling pointers
Practice: Create a program to dynamically manage a list of student grades.
Module 7: Object-Oriented Programming (OOP)
- Objective: Learn to model real-world systems using classes and objects.
- Classes and objects
- Constructors and destructors
- Access specifiers: public, private, protected
- this pointer
Practice: Define a Car class and simulate a car rental system.
Module 8: Advanced OOP Concepts
- Objective: Deepen OOP knowledge with inheritance and polymorphism.
- Inheritance: single, multiple, and multilevel
- Function overloading and overriding
- Virtual functions and polymorphism
- Abstract classes and interfaces
Practice: Build a simple banking system with base and derived classes (Account, Savings, Checking).
Module 9: File Handling
- Objective: Learn to read and write files.
- ifstream, ofstream, fstream
- Reading and writing text and binary files
- File modes and error handling
Practice: Create a student record management system with file storage.
Module 10: Standard Template Library (STL)
- Objective: Use built-in data structures and algorithms.
- Containers: vector, list, map, set
- Iterators
- Algorithms: sort, find, count, etc.
- Lambda functions
Practice: Implement a to-do list using std::map or std::vector.
Bonus: C++11 and Beyond (Optional)
- Objective: Learn modern C++ features.
- auto, nullptr, enum class, range-based for loop
- Smart pointers (unique_ptr, shared_ptr)
- Lambda expressions
- Move semantics and std::move
Capstone Projects (Pick 1 or More)
- Banking System
- Student Management System
- Inventory System
- Mini Game (e.g., Tic Tac Toe)
- Quiz Application