Lecture Topics

Readings: EJ numbers refer to Items, not chapters, in Effective Java 3rd edition
PP numbers refer to Topics, not chapters, in Pragmatic Programmer 2nd (20th Anniversary) edition

DateDescription
March 27 Correctness
March 29 Testing
March 31 Data Types
April 3 Inductive Data and Recursion
April 5 Proof by Calculation
April 7 Trees
April 10 Structural Induction
April 12 Exceptions and Generics
April 14 Procedural Abstraction
April 17 Data Abstraction
April 19 Abstraction Functions and Representation Invariants
April 21 Floyd Logic for Straight-line Code
April 24 Floyd Logic for Loops
April 26 Loops and Recursion
April 28 Arrays
May 1 Array Loops
May 3 Servers and Routes
May 5 Aliasing
May 8 Mutable ADTs
May 10 Debugging
May 12 Stateful UI in React
To Do List (code)
May 15 Full-Stack Apps
To Do Client (code), To Do Server (code)
May 17 App Design
Auction Client (code), Auction Server (code), Quarter Picker (code)
May 22 Subtypes
May 24 Equality
May 26 Design Patterns
May 31 Startups
June 2 Course Review