Object-Oriented Programming - CS 202

Explains classes, objects, encapsulation, inheritance, polymorphism, interfaces, composition, and object-oriented design.

Study Tools

All

Study guides

9

5 Polymorphism and Substitutability

Learn how polymorphism, dynamic dispatch, interfaces, and behavioral contracts enable flexible object-oriented designs whose implementations can be substituted safely.
Study guide · Updated

9 Designing Object-Oriented Systems

A practical guide to designing object-oriented systems by identifying domain concepts, assigning responsibilities, defining collaborations, and choosing abstractions that remain cohesive, loosely coupled, testable, and adaptable.
Study guide · Updated

2 Classes and Objects

Build a practical understanding of Python classes and objects, including instance creation, state, methods, initialization, identity, references, and independent object behavior.
Study guide · Updated

8 Object-Oriented Design Principles

A structured guide to assigning responsibilities, managing dependencies, and designing object-oriented systems that remain understandable, testable, and adaptable to change.
Study guide · Updated

7 Composition and Delegation

Learn how composition and delegation distribute responsibilities among objects, support flexible collaboration, and guide the choice between composition and inheritance in Java design.
Study guide · Updated

4 Inheritance and Class Hierarchies

Learn how inheritance organizes related classes, enables polymorphism, and should be designed around genuine specialization rather than convenient code reuse.
Study guide · Updated

3 Encapsulation and Information Hiding

A progressive guide to using encapsulation, access control, properties, invariants, and information hiding to design safer and more maintainable object-oriented classes.
Study guide · Updated

1 Object-Oriented Programming Foundations

A structured guide to the core concepts, relationships, and design principles of object-oriented programming, from objects and classes through polymorphism and composition.
Study guide · Updated

6 Interfaces and Abstractions

A progressive guide to interfaces, abstract classes, polymorphism, dependency direction, and the design of focused abstractions in object-oriented software.
Study guide · Updated

Quizzes

9

7 Composition and Delegation

A 14-question quiz on composition, delegation, interfaces, encapsulation, dependency injection, inheritance, strategy design, and the trade-offs involved in choosing object relationships in Java.
Quiz · Updated

3 Encapsulation and Information Hiding

A 14-question quiz on encapsulation and information hiding, covering access control, properties, invariants, validation, public interfaces, mutability, and implementation independence. Questions progress from foundational understanding to practical design application.
Quiz · Updated

5 Polymorphism and Substitutability

A medium-difficulty quiz on polymorphism, dynamic dispatch, method overriding, substitutability, interface contracts, and abstraction-oriented design. Questions progress from identifying the behavior of simple examples to applying behavioral-subtyping principles in design scenarios.
Quiz · Updated

6 Interfaces and Abstractions

A medium-difficulty quiz on interfaces, abstractions, abstract classes, polymorphism, dependency direction, dependency injection, and contract design. The quiz includes 12 required candidates and 2 additional alternate candidates.
Quiz · Updated

9 Designing Object-Oriented Systems

A 14-question quiz on designing object-oriented systems, covering responsibilities, encapsulation, interfaces, inheritance, polymorphism, composition, collaborations, and design trade-offs through conceptual and applied questions.
Quiz · Updated

4 Inheritance and Class Hierarchies

A medium-difficulty quiz on inheritance, class hierarchies, overriding, polymorphism, abstraction, and careful hierarchy design. Questions progress from foundational understanding to applied design reasoning.
Quiz · Updated

8 Object-Oriented Design Principles

A 14-question quiz on object-oriented design principles, including encapsulation, responsibility assignment, cohesion, coupling, polymorphism, composition, dependency management, and practical design evaluation.
Quiz · Updated

2 Classes and Objects

A medium-difficulty quiz on Python classes and objects, emphasizing distinctions among classes, instances, state, methods, initialization, identity, and references.
Quiz · Updated

1 Object-Oriented Programming Foundations

A medium-difficulty quiz on object-oriented programming foundations, emphasizing design reasoning, relationships among OOP concepts, and practical application.
Quiz · Updated

Flashcards

9

2 Classes and Objects

A focused review of Python and general object-oriented programming concepts, including classes, instances, state, methods, initialization, identity, and references.
Flashcards · Updated

7 Composition and Delegation

Learn how Java composition and delegation distribute responsibilities, support flexible collaboration, and guide the choice between composition and inheritance.
Flashcards · Updated

6 Interfaces and Abstractions

Learn how interfaces, abstract classes, polymorphism, and dependency inversion create flexible, testable object-oriented designs.
Flashcards · Updated

9 Designing Object-Oriented Systems

A focused set of flashcards on designing object-oriented systems through responsibilities, encapsulation, abstractions, collaborations, and design trade-offs.
Flashcards · Updated

5 Polymorphism and Substitutability

Learn how polymorphism, dynamic dispatch, overriding, interfaces, and behavioral contracts support substitutable and extensible object-oriented designs.
Flashcards · Updated

8 Object-Oriented Design Principles

A focused review of object-oriented concepts, responsibility assignment, modularity, and dependency management for designing understandable and changeable software.
Flashcards · Updated

3 Encapsulation and Information Hiding

A focused review of encapsulation, information hiding, access control, properties, invariants, validation, and clear public interface design.
Flashcards · Updated

4 Inheritance and Class Hierarchies

A focused review of inheritance, class hierarchies, overriding, polymorphism, and careful object-oriented design.
Flashcards · Updated

1 Object-Oriented Programming Foundations

Learn the core concepts and design practices of object-oriented programming, including objects, classes, encapsulation, inheritance, polymorphism, interfaces, composition, and dependency injection.
Flashcards · Updated