• Arrays basics & initialization
• 2D arrays & matrix traversal
• Row/column operations & matrix problems
• Structs & memory layout
• Deep vs shallow copy
• Student management system
If you're at the beginning of a BS degree in Computer Science, Software Engineering, Data Science, Machine Learning, or Artificial Intelligence at any university or affiliated college in Lahore or its vicinity, this is an excellent opportunity to build a strong foundation for your journey in this field.
Object Oriented Programming is a comprehensive course that strengthens students’ foundations in C++ programming while introducing core Object-Oriented Programming (OOP) concepts. The course begins with a revision of arrays, pointers, and structs, then gradually moves into classes, encapsulation, constructors, inheritance, polymorphism, and operator overloading. Students gain hands-on experience through real-world projects such as a text editor, calculator, chess game, and huge integer system, along with STL-based data structures and template programming. The course also covers debugging techniques, memory management, exception handling, and software design principles.
By the end of the course, learners develop strong problem-solving skills, write well-structured OOP code, and understand how to design scalable and efficient software systems. Maintaining 75% attendance throughout this course is mendatory.
• Arrays basics & initialization
• 2D arrays & matrix traversal
• Row/column operations & matrix problems
• Structs & memory layout
• Deep vs shallow copy
• Student management system
• Path finding (maze), ripple search
• Number of islands
• Pointer basics & arithmetic
• Dynamic memory: new / delete
• 1D / 2D / 3D dynamic arrays
• Growable arrays
• Void pointers & generic swapping
• Function pointers & procedural programming limitations
• Motivation for OOP
• Classes & objects
• Abstraction & encapsulation pillars
• Access modifiers
• Real-world analogies
• First class implementations
• Getters & setters
• Constructors & destructors
• this pointer
• Static members & functions
• Header guards & ADTs
• Class design best practices
• try, catch, throw
• Generic catch blocks
• Applying exception handling in class design
• Input validation patterns
• Safe resource management
• Singleton & Multiton design patterns
• Operator overloading: arithmetic
• Boolean & unary operators
• Pre/post increment overloading
• Friend functions
• Stream operators << and >>
• Copy constructor
• Assignment operator overloading
• Deep vs shallow copy revisited
• Memory-safe object design
• Theory Exam
• Lab exam
• Operator (), [] overloading
• Casting operator
• String class implementation
• Null terminator handling
• stoi & itos utilities
• Trim functions
• File handling
• Huge integer class
• Operator overloading in Huge Integer (+, -, ==. >)
• Polynomial class with dynamic memory
• Initializer lists
• Forward declaration
• Composition & aggregation
• Association & dependency
• Memory management in object relationships
• Class dependencies
• UML class diagrams
• Inheritance: public, protected, private
• Protected members
• Member initialization in derived classes
• Polymorphism & method overriding
• Virtual functions & late binding
• vTables & vtable pointer
• Abstract classes & pure virtual functions
• Dynamic casting
• Multiple inheritance & diamond problem
• Function & class templates
• Template specialization
• STL: Stack, Queue, Priority Queue, algorithms & iterators
• Exceptional Handling try, catch, throw and Generic catch.
• Theory Exam
• Lab exam
Nourishing the Programmer in you!
schoolofseedprogramming@gmail.com
query@seedprogramming.org