Object Oriented Programming

Instructor: Arbish Akram


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.

Prerequisites

Programming Fundamentals.

Text

Grading

Assignments Quizzes Midterm Exam Final Exam
5%25%20%50%

Schedule

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 Pointer
Friend 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

Assignments

Project

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.

Policies

Attendance is mandatory. All submitted work must be your own; plagiarism will result in a zero grade for the assessment.