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.
| Assignments | Quizzes | Midterm Exam | Final Exam |
|---|---|---|---|
| 5% | 25% | 20% | 50% |
| Week | Topics | Slides | Quizzes | Assignments |
|---|---|---|---|---|
| 1 |
Introduction to OOP
Course Information, Procedural Programming, Global vs. Local Data, Four Pillars of OOP (Abstraction, Encapsulation, Inheritance, Polymorphism)
|
Slides | ||
| 2 |
Classes and Objects
Defining Classes, Creating Objects, Access Modifiers
|
Slides | ||
| 3 |
Constructors
Default and Parameterized Constructors, Initialization List, Constructor Overloading, Member Functions Defined Outside the Class
|
Slides | Q1 | A1 |
| 4 |
Passing and Returning Objects
Pass Objects to Functions, Return Objects from Functions, Array of Objects
|
Slides | ||
| 5 |
Static and Constant Members
Static Variables, Static Data Members, Static Member Functions, Constant Member Functions, Static Constant Data Members, Constant Objects
|
Slides | Q2 | A2 |
| 6 |
Friend Functions and the
this PointerFriend Functions, Friend Classes,
this Pointer, Cascading Function Calls |
Slides | ||
| 7 |
Copy Semantics and Destructors
Copy Constructor (Default vs. User-Defined), Deep vs. Shallow Copy, Destructor
|
Slides | Q3 | |
| 8 |
Midterm Exam
|
|||
| 9 |
Operator Overloading
Overloading Arithmetic, Relational, and Stream Operators
|
Slides | Q4 | |
| 10 |
Relationships Between Classes
Association, Composition, and Aggregation
|
Slides | A3 | |
| 11 |
Inheritance
Single Inheritance, Multiple Inheritance, Multi-Level Inheritance and Hybrid Inheritance
|
Slides | ||
| 12 |
Polymorphism
Function Overriding, Virtual Functions, Pure Virtual Functions, Abstract Classes vs. Interfaces
|
Slides | Q5 | A4 |
| 13 |
Virtual Destructors and Templates
Virtual Destructors, Function Templates, Class Templates
|
Slides | Q6 | |
| 14 |
Standard Template Library
Containers, Iterators, and Algorithms
|
Slides | A5 | |
| 15 |
Exception Handling
try, catch, throw, Exception Hierarchies |
Slides | Q7 | |
| 16 |
Introduction to Python
Python Basics: Syntax, Variables, Data Types, Control Flow
OOP in Python: Classes and Objects, Comparison with C++ |
Slides |
Students will complete a semester-long project in groups of five, applying OOP principles to a problem of their choosing. Proposal due Week 5; final submission and demo during the last week of the semester.
Attendance is mandatory. All submitted work must be your own; plagiarism will result in a zero grade for the assessment.