| ses # | topics | key Dates |
|---|---|---|
| Week 1 | ||
| L1 | Introduction | Problem set 0 out |
| L2 | Object Semantics | |
| Week 2 | ||
| L3 | Subclassing | |
| L4 | Specifications | |
| L5 | Testing | Problem set 1 out |
| R1 | Specification and Testing | Problem set 0 due |
| Week 3 | ||
| L6 | Object Model Notations Code Summary | |
| L7 | Introduction to ADTs | Problem set 2 out |
| R2 | ADT, Rep Exposure, and Object Model Diagrams | Problem set 1 due |
| Week 4 | ||
| L8 | Representation Invariants | |
| L9 | Abstraction Functions | |
| L10 | Dependencies and Decoupling | Problem set 3 out |
| R3 | Abstraction Functions and Representation Invariants | Problem set 2 due |
| Week 5 | ||
| L11 | Exceptions | |
| L12 | Equality | |
| L13 | Polymorphism | Problem set 4 out |
| R4 | Equality and Hashing | Problem set 3 due |
| Week 6 | ||
| L14 | Subtypes and Subclasses | Problem set 5 out |
| R5 | True Subtyping and the Substitution Principle | Problem set 4 due |
| Week 7 | ||
| L15 | Classes and Interfaces | |
| L16 | Usability 1 | Problem set 6 out |
| L17 | Usability 2 | Problem set 5 due |
| Week 8 | ||
| L18 | Design Patterns | |
| L19 | Design Project Experiences 1 | |
| L20 | Design Project Experiences 2 | |
| R6 | Design Patterns | |
| Week 9 | ||
| P1 | Project Implementation and Review | |
| Q1 | Quiz | |
| P2-P3 | Project Implementation and Review (cont.) | Problem set 6 due in P2 |
| Week 10 | ||
| P4-P5 | Project Implementation and Review (cont.) | |
| L21 | Lecture on Final Project | First deliverable due |
| P6 | Project Implementation and Review (cont.) | |
| Week 11 | ||
| P7-P9 | Project Implementation and Review (cont.) | |
| L22 | Guest Lecture - Joshua Bloch and Neal Gafter | |
| Week 12 | ||
| P10-P12 | Project Implementation and Review (cont.) | Second deliverable due in P10 |
| Week 13 | ||
| P13-P16 | Project Implementation and Review (cont.) | |
| Week 14 | ||
| P17-P20 | Project Implementation and Review (cont.) | |
| Week 15 | ||
| Demo Fair | Final project due | |
| Award Presentations | ||