This course covers the principles and practice of object-oriented programming using C++. Building on procedural programming, students learn to design programs using classes, objects, inheritance, polymorphism, and templates. Emphasis is placed on clean design, reusability, and real-world problem solving.
Programming Fundamentals.
| Lecture | Topics | Quizzes | Assignments | Tutorial |
|---|---|---|---|---|
| 1-2 |
Course Information, Procedural Programming, Global vs. Local Data, Four Pillars of OOP (Abstraction, Encapsulation, Inheritance, Polymorphism)
|
Multi-File Programs in C++ | ||
| 3-4 |
Defining Classes, Creating Objects, Access Modifiers, Default and Parameterized Constructors, Initialization List, Constructor Overloading, Member Functions Defined Outside the Class
|
Quiz 1, Quiz 2 | ||
| 5 |
Pass Objects to Functions, Return Objects from Functions, Array of Objects
|
|||
| 6 |
this Pointer, Cascading Function Calls |
|||
| 7-8 |
Static Variables, Static Data Members, Static Member Functions, Constant Member Functions, Static Constant Data Members, Constant Objects
|
Quiz 3, Quiz 4 | ||
| 9-10 |
Friend Functions, Friend Classes
|
Assignment 1 | ||
| 11 |
Destructor, Copy Constructor (Default vs. User-Defined), Deep vs. Shallow Copy
|
|||
| 12-14 |
Unary, Binary, Comparison, Stream
|
Quiz 5, Quiz 6 | ||
| 15-16 |
UML Class Diagrams, Dependency, Association, Aggregation, Composition
|
|||
| 17-18 |
Deriving a Class,
protected Access Specifier, Types of Inheritance (Single, Multiple, Multi-Level, Hybrid) |
|||
| 19-20 |
Polymorphism
Virtual Functions, Function Overriding, Pure Virtual Functions, Abstract Classes, Virtual Destructors
|
|||
| 21-22 |
Templates
Function Templates, Class Templates, Templates vs. Overloading and Inheritance
|
|||
| 23-24 |
Standard Template Library
Containers (
vector, list, deque, set, map), Container Adapters, Iterators, Algorithms |
|||
| 25-26 |
Exception Handling
try, throw, catch, Matching Handlers, Standard Exception Classes, User-Defined Exception Classes |