CS 5500: Object-Oriented Programming

Module Overview

This week you will review object-oriented programming. We'll start with some historical context in the form of my personal opinions. You will then learn how object-oriented languages provide special support for extensible sum-of-product types. You will learn to distinguish three varieties of polymorphism (parametric, inclusion, and ad hoc) and how each variety interacts with subtyping and reuse. Finally, you will learn some pitfalls of object-oriented programming that warn against over-reliance upon inheritance.

Course Map

highlighting module content within context of course

Readings

No readings.

Resources

No resources yet.

Lessons

  1. Philosophical Musings
  2. Sum Types and Product Types
  3. Varieties of Polymorphism
  4. Subtyping and Reuse
  5. Pitfalls

Homework Assignments

For debugging: Click here to validate.