| Date | Description |
|---|---|
| March 31 |
Introduction PP preface, 1-2, 5, 31, 35 |
| April 2 |
Reasoning about code I notes |
| April 4 |
Reasoning about code II - loops notes |
| April 7 | Proof rules for if (details); loop development |
| April 9 | Loops (concl.) |
| April 11 |
Specifications related notes PP 21, 44 |
| April 14 |
Data abstractions (ADTs) related notes (same as previous lecture) EJ 15, 39, 44 |
| April 16 |
Representation invariants (RI) related notes |
| April 18 |
Abstraction Functions (AF) related notes (same as previous lecture) |
| April 21 |
Testing PP 34, 43 |
| April 23 | Testing (concl.) |
| April 25 |
Module design and general style EJ 10, 13-15, 40-41, 45, 56; PP 4, 7-8, 26, 33 |
| April 28 |
Identity and equality, hashCode EJ 8-9, 11-12 |
| April 30 |
hashCode (concl.); Exceptions and assertions EJ 38, 57-62, 65; PP 22-24 |
| May 2 | Exceptions & assertions (cont.) |
| May 5 |
Exceptions (concl.); Subtypes and subclasses EJ 16-20, 36, 52 |
| May 7 | Subtypes and subclasses |
| May 12 |
Generics and polymorphism EJ 23-28 |
| May 14 | Generics (cont.); |
| May 16 |
Generics (wrapup) Debugging PP 18 |
| May 19 |
Debugging (concl.) Events, listeners, and callbacks PP 27, 29 |
| May 21 |
Listeners & callbacks (concl.) Graphics and GUIs (sample code) |
| May 23 | Graphics (concl.) |
| May 28 | Event-driven GUI programming (sample code) |
| May 30 |
Design patterns 1 EJ 1-6 |
| June 2 | Design patterns 2 |
| June 4 | System integration |
| June 6 | Demos, wrapup |