| Date | Description | 
|---|---|
| March 26 | L0 Introduction; L1 Reasoning about code A1, A2, A3; EJ 3.10, 3.12, 7.41, 8.45-8.46, 8.50, 8.56; PP 1.1-1.2, 1.5, 3.14-3.16; no reading quiz for today | 
| March 28 | L2 Invariants C1, C2 (first half); PP 3.17; RQ2 due @2am | 
| March 30 | L3 Loop development and reasoning C2 (second half); PP 6.31; RQ3 due @2am | 
| April 2 | L4 Specifications C5; PP 7.39; RQ4 due | 
| April 4 | L5 Satisfying a specification PP 4.21; RQ5 due | 
| April 6 | L6 Data abstraction (ADTs) PP 2.7-2.9; C3; RQ6 due | 
| April 9 | L7 Abstraction functions and representation invariants C7; RQ7 | 
| April 11 | L7 continued | 
| April 13 | L8 Testing C6; PP 6.34, 8.43; RQ8 | 
| April 16 | L9 Exceptions J exceptions; EJ 7.38-7.39, ch 9; PP 4.22-4.24; RQ9 | 
| April 18 | L10 Subclasses and subtypes J classes; EJ 4.16-4.20, 8.48, 8.52; RQ10 | 
| April 20 | L11 Identity, equality, and copying EJ 3.8-3.9,3.11-3.12, 4.15; PP 3.18, 6.31; RQ11 | 
| April 23 | L13 Design patterns 1 EJ 2.1-2.2, 2.4; RQ13 | 
| April 25 | L14 Generics and polymorphism J generics; EJ ch 5; RQ14 | 
| April 27 | L15 Debugging no RQ | 
| April 30 | L16 Design patterns 2 PP 6.33; RQ16 | 
| May 2 | Catch up and review | 
| May 7 | L17 Reasoning about ADTs | 
| May 9 | L18 Events, module dependences, and decoupling EJ 4.13-4.14, 7.40; PP 5.26, 5.29, 8.44; RQ12 (already completed) | 
| May 11 | More on reasoning and generics (see L14 and L17 slides) | 
| May 14 | L20 Design patterns 3 | 
| May 16 | L21 Usability 1 | 
| May 18 | L21 Usability 2 | 
| May 21 | L22 System integration and software process EJ 8.41, 8.42; RQ22 | 
| May 23 | L23 GUI programming 1, example code | 
| May 25 | L24 GUI programming 2, example code | 
| June 1 | L25 GUI demos and wrapup |