| Date | Description |
|---|---|
| March 28 | Motivation and Administrivia |
| March 30 |
Reasoning about Straight-line Code PP 38 |
| April 1 | Reasoning about Loops |
| April 4 | Writing Loops |
| April 6 | Reasoning Wrap-up |
| April 8 |
Specifications PP 23 |
| April 11 | Data Abstraction (ADTs) |
| April 13 |
Abstraction Functions (AFs) Code Example |
| April 15 |
Representation Invariants (RIs) EJ 49, 50, 17, 52 |
| April 18 |
Testing PP 41 |
| April 20 | More Testing |
| April 22 |
Identity, Equality, and Hashing EJ 10, 11 |
| April 25 | More Equality and Hashing and Assertions |
| April 27 |
Exceptions PP 25 |
| April 29 | Module Design and Style |
| May 2 |
Subtypes EJ 40, 18, 19 |
| May 4 | More Subtypes |
| May 9 |
Generics EJ 28, 30 |
| May 11 |
More Generics Code Example |
| May 13 |
User Interfaces and Event-Driven Programming Code Examples |
| May 16 | Javascript |
| May 18 |
ES6, TypeScript, JSX, and React Code Examples |
| May 20 | Debugging |
| May 23 |
Basic Servers and Clients Code Examples |
| May 25 |
HTTP Servers and Web Clients Code Examples |
| May 27 | Design Patterns |
| June 1 | More Design Patterns |
| June 3 | Startups |