Learn with Yasir

Share Your Feedback

CS-302 Object Oriented Programming 3(3-0) | Complete Study Materials & Practical Guides


CS-302 Object Oriented Programming 3(3-0)

Course Title: CS-302 Object Oriented Programming 3(3-0)

Duration: 15 Weeks Lectures per Week: 3 Total Lectures: 45


Week 1: Introduction to OOD & OOP

Lecture 1: Introduction to Object-Oriented Design (OOD)

  • What is software design
  • Procedural vs Object-Oriented approach

Lecture 2: History & Evolution of Object-Oriented Design

  • Origins (Simula, Smalltalk, C++)
  • Why OOD became popular

Lecture 3: Advantages of Object-Oriented Design

  • Reusability, scalability, maintainability
  • Real-world modeling examples

Week 2: Core OOP Concepts

Lecture 4: Introduction to Object-Oriented Programming (OOP)

  • Key principles overview

Lecture 5: Classes and Objects

  • Class definition
  • Object instantiation

Lecture 6: Data Encapsulation

  • Data hiding
  • Getters and setters

Week 3: Constructors & Destructors

Lecture 7: Constructors

  • Default & parameterized constructors

Lecture 8: Constructor overloading

  • Copy constructor concept

Lecture 9: Destructors

  • Object lifetime
  • Memory cleanup

Week 4: Access Control & Const Correctness

Lecture 10: Access Modifiers

  • Public, private, protected

Lecture 11: Const vs Non-Const Functions

  • Why const correctness matters

Lecture 12: Best practices using const

  • Common mistakes & fixes

Week 5: Static Members & Function Overloading

Lecture 13: Static Data Members

  • Shared data among objects

Lecture 14: Static Member Functions

  • Use cases & limitations

Lecture 15: Function Overloading

  • Compile-time polymorphism

Week 6: Operator Overloading

Lecture 16: Introduction to Operator Overloading

  • Why operator overloading

Lecture 17: Overloading arithmetic operators

  • +, -, *, /

Lecture 18: Overloading relational & stream operators

  • ==, <, «, »

Week 7: Class Identification & Relationships

Lecture 19: Identifying Classes from Problem Statements

  • Requirements to classes

Lecture 20: Relationships Between Classes

  • Association, dependency

Lecture 21: UML overview for class relationships


Week 8: Composition & Aggregation

Lecture 22: Composition

  • Strong ownership

Lecture 23: Aggregation

  • Weak ownership

Lecture 24: Composition vs Aggregation

  • Real-world examples

Week 9: Inheritance

Lecture 25: Introduction to Inheritance

  • Code reuse

Lecture 26: Types of Inheritance

  • Single, multilevel, hierarchical

Lecture 27: Access control in inheritance


Week 10: Multiple Inheritance & Polymorphism

Lecture 28: Multiple Inheritance

  • Diamond problem

Lecture 29: Polymorphism

  • Compile-time vs runtime

Lecture 30: Virtual functions

  • Dynamic binding

Week 11: Abstract Classes & Interfaces

Lecture 31: Abstract Classes

  • Pure virtual functions

Lecture 32: Interfaces (Conceptual & Language Support)

  • Design contracts

Lecture 33: Abstract classes vs Interfaces

  • Design decisions

Week 12: Generic Programming & Templates

Lecture 34: Generic Programming Concepts

  • Motivation & benefits

Lecture 35: Function Templates

  • Syntax & examples

Lecture 36: Class Templates

  • Template specialization

Week 13: Standard Template Library (STL)

Lecture 37: Introduction to STL

  • Containers, algorithms, iterators

Lecture 38: STL Containers

  • vector, list, map, set

Lecture 39: STL Algorithms & Iterators


Week 14: Object Streams & Serialization

Lecture 40: Object Streams

  • File streams & object I/O

Lecture 41: Data & Object Serialization

  • Saving and restoring objects

Lecture 42: Use cases & limitations of serialization


Week 15: Exception Handling & Course Wrap-up

Lecture 43: Exception Handling

  • try, catch, throw

Lecture 44: Custom Exceptions & Best Practices

Lecture 45: Course Review & Design-Oriented Case Study

  • Integrated OOP project discussion

Assessment Suggestions

  • Quizzes: Weeks 4, 8, 12
  • Midterm Exam: After Week 8
  • Final Project: OOP-based system design