Build a deep understanding of object-oriented programming from the ground up. Start with classes and objects, progress through encapsulation, inheritance, and polymorphism, then master abstract classes, SOLID principles, and common design patterns. All exercises use Python with multi-language comparisons in readings to show how OOP concepts translate across Java, TypeScript, and beyond.
Understand the building blocks of OOP: classes, instances, attributes, and methods
Protect object internals and expose clean interfaces using encapsulation techniques
Build class hierarchies and understand when to use inheritance vs composition
Write flexible code that works with different types through polymorphism and duck typing
Define contracts and interfaces that enforce structure in your class hierarchies
Apply the five SOLID principles to write maintainable, extensible object-oriented code
Apply OOP to real-world problems with common patterns, modern Python features, and testing strategies
Comprehensive assessment covering classes, encapsulation, inheritance, polymorphism, abstract classes, SOLID principles, and OOP in practice