CS202
Object-Oriented Programming
Organizing large programs around objects: classes, encapsulation, inheritance, and polymorphism.
8 modules · 40 lessons · Practice after every lesson
Syllabus
Module 1
Objects and Data Abstraction
- Objects as State and Behavior
- Classes, Instances, and Constructors
- Fields, Methods, and Object Identity
- Encapsulation and Representation Invariants
- Designing Stable Public Interfaces
Module 2
Class Relationships
- Association, Aggregation, and Composition
- Inheritance and Subtyping
- Method Overriding and Dynamic Dispatch
- Abstract Classes and Interfaces
- Favoring Composition Over Inheritance
Module 3
Polymorphic Design
- Subtype Polymorphism
- Parametric Polymorphism and Generics
- Ad Hoc Polymorphism and Overloading
- Behavioral Subtyping and the Liskov Principle
- Designing Against Interfaces
Module 4
Object Lifecycle and Resources
- Construction Invariants
- Object Ownership and Aliasing
- Copying, Equality, and Hash Codes
- Immutability and Value Objects
- Resource Management and Deterministic Cleanup
Module 5
Errors and Contracts
- Exceptions as Part of an API
- Checked and Unchecked Failure Models
- Defensive Copying and Validation
- Assertions, Preconditions, and Postconditions
- Design by Contract in Object Systems
Module 6
Collections and Generic Components
- Generic Containers
- Iterators and Iterable Protocols
- Comparators and Ordering Strategies
- Collection Views and Encapsulation
- Covariance, Contravariance, and Type Safety
Module 7
Design Principles and Patterns
- Single Responsibility and Cohesion
- Open–Closed and Dependency Inversion
- Factory and Builder Patterns
- Strategy, State, and Command Patterns
- Observer, Adapter, and Decorator Patterns
Module 8
Evolution of Object-Oriented Code
- Unit Testing Object Collaborations
- Test Doubles and Dependency Injection
- Refactoring Class Structures
- Recognizing Code Smells
- Balancing Extensibility, Simplicity, and Performance
Start Object-Oriented Programming.
No setup, nothing to install. Try the first lessons before you sign up.