| Week 1 |
| L1 |
Introduction (PDF) |
| L2 |
Object Semantics (PDF) |
| Week 2 |
| L3 |
Subclassing (PDF) |
| L4 |
Specifications (PDF) |
| L5 |
Testing (PDF) |
| Week 3 |
| L6 |
Object Model Notations (PDF)
Code Summary (PDF) |
| L7 |
Introduction to ADTs (PDF) |
| Week 4 |
| L8 |
Representation Invariants (PDF) |
| L9 |
Abstraction Functions (PDF) |
| L10 |
Dependencies and Decoupling (PDF) |
| Week 5 |
| L11 |
Exceptions (PDF) |
| L12 |
Equality (PDF) |
| L13 |
Polymorphism - Guest lecture by Gilad Bracha |
| Week 6 |
| L14 |
Subtypes and Subclasses (PDF) |
| Week 7 |
| L15 |
Classes and Interfaces (PDF) |
| L16 |
Usability 1 (PDF) (Courtesy of Prof. Robert Miller. Used with permission.) |
| L17 |
Usability 2 (PDF) (Courtesy of Prof. Robert Miller. Used with permission.) |
| Week 8 |
| L18 |
Design Patterns (PDF) |
| L19 |
Design Project Experiences 1 (PDF) |
| L20 |
Design Project Experiences 2 (PDF) |
| Week 10 |
| L21 |
Lecture on Final Project (PDF) (Courtesy of Corey McCaffrey. Used with permission.) |
| Week 11 |
| L22 |
Guest Lecture - Joshua Bloch and Neal Gafter |