C++

Overview:

This course assumes a foundational understanding of C language concepts. We aim to explore the concepts of object-oriented programming (polymorphism, abstraction, inheritance, encapsulation).

Week 1: Introduction to Programming / Input & Output / Variables and Data Types / Conditional Statements (if/else)

logo
  • Topics:
    • Basic introduction to programming in C++
    • Input and output operations using std::cout and std::cin
    • Understanding variables and various data types such as integers, floats, booleans, and characters
    • Introduction to conditional statements, including if/else constructs
  • Practice Problems:
    • Write programs to perform basic input and output operations using std::cout and std::cin
    • Create programs to declare variables of different data types and perform operations on them
    • Implement conditional statements to solve problems based on given conditions

Week 2: Concept of of class / static function & variable

logo
  • Topics:
    • Introduction to the concept of classes in C++
    • Defining and using classes to encapsulate data and behavior
    • Understanding static member functions and variables within classes
    • Exploring the use cases and benefits of static functions and variables
  • Practice Problems:
    • Implement classes to model real-world entities with appropriate data members and member functions
    • Utilize static member functions and variables to maintain shared data across class instances
    • Solve problems involving class design and static member usage to reinforce understanding

Week 3: Loops (for, while) Function Pointer

logo
  • Topics:
    • Understanding the usage of for loops for definite iteration in C++
    • Exploring while loops for indefinite iteration and condition-based looping
    • Introduction to function pointers and their role in C++ programming
  • Practice Problems:
    • Write programs that utilize for loops to perform repetitive tasks with a known number of iterations
    • Implement while loops to handle situations where the number of iterations is determined by a condition
    • Explore the use of function pointers to pass functions as arguments to other functions and invoke them dynamically

Week 4: Functions (Defining and Calling Functions) & Array Function Pointers

logo
  • Topics:
    • Defining functions in C++ and understanding function prototypes
    • Calling functions with different parameter types and return values
    • Exploring the concept of function pointers and their usage in C++
    • Introduction to array function pointers and their application
  • Practice Problems:
    • Write programs to define functions for specific tasks and call them from the main program
    • Explore different parameter types and return values in function definitions
    • Implement array function pointers to dynamically invoke functions stored in arrays

Week 5: Constructors and Destructors

logo
  • Topics:
    • Constructors, destructors, default constructors, parameterized constructors
  • Practice Problems:
    • Write a program that behaves like phonebook software
    • Implement classes with constructors and destructors to manage object initialization and cleanup

Week 6: Polymorphism

logo
  • Topics:
    • Polymorphism, virtual functions, function overriding, function hiding
  • Practice Problems:
    • Write programs that takes variable parameters
    • Create classes with virtual functions and derive subclasses to demonstrate runtime polymorphism

Week 7: Inheritance

logo
  • Topics:
    • Inheritance, base classes, derived classes, access specifiers (public, protected, private)
  • Practice Problems:
    • Implement inheritance hierarchies to model relationships between classes

Week 8: Abstract Classes and Interfaces

logo
  • Topics:
    • Abstract classes, pure virtual functions, interfaces
  • Practice Problems:
    • Define abstract classes with pure virtual functions and implement concrete subclasses

Week 9: Exception Handling (try, catch)

logo
  • Topics:
    • Exception handling, try-catch blocks, throw statement
  • Practice Problems:
    • Write programs to handle runtime errors and exceptional conditions using try-catch blocks.

Week 10: Type Casting

logo
  • Topics:
    • Type casting, static_cast, dynamic_cast, const_cast, reinterpret_cast
  • Practice Problems:
    • Perform type conversions between different data types using various casting operators

Week 11: Templates

logo
  • Topics:
    • Function templates, class templates, template specialization
  • Practice Problems:
    • Create generic functions and classes using templates to support multiple data types

Week 12: STL Libraries

logo
  • Topics:
    • Templated containers (vector, list, map, set), STL algorithms
  • Practice Problems:
    • Utilize STL containers and algorithms to solve common programming tasks with templated data structures.

Week 13: Review and Projects

logo
  • Topics:
    • Comprehensive review of C++ concepts covered throughout the course, final project development
  • Practice Problems:
    • Provide practice problems and exercises to assess students' understanding and reinforce key concepts
    • Allocate time for students to work on their final projects, providing guidance and support as needed