| September 28 |
Reasoning about Straight-line Code PP 38
|
| September 30 |
Reasoning about Loops
|
| October 3 |
Writing Loops
|
| October 5 |
Reasoning Wrap-up
|
| October 7 |
Specifications PP 23
|
| October 10 |
Data Abstraction (ADTs)
|
| October 12 |
Abstraction Functions (AFs)
|
| October 14 |
Representation Invariants (RIs) EJ 49, 50, 17, 52
|
| October 17 |
Testing PP 41
|
| October 19 |
More Testing
|
| October 21 |
Identity, Equality, and Hashing EJ 10, 11
|
| October 24 |
Exceptions and Assertions
|
| October 26 |
Module Design and Style PP 25
|
| October 28 |
More Module Design (same slides)
|
| October 31 |
Subtypes EJ 40, 18, 19
|
| November 2 |
More Subtypes
|
| November 7 |
Generics EJ 28, 30
|
| November 9 |
More Generics
|
| November 14 |
User Interfaces and Event-Driven Programming Code Examples
|
| November 16 |
Javascript
|
| November 18 |
ES6 and TypeScript Code Examples
|
| November 21 |
JSX and React Code Examples
|
| November 28 |
Basic Servers and Clients Code Examples
|
| November 30 |
HTTP Servers and Web Clients Code Examples
|
| December 2 |
Debugging
|
| December 5 |
Design Patterns
|
| December 7 |
More Design Patterns
|
| December 9 |
Startups
|