| Date | Topic | PFPL Chapters | Homework | |
|---|---|---|---|---|
| Jan | 17 | What Is A Programming Language? | 1-3; 17 | |
| 18 | Inductive Definitions; λ-terms; α-equivalence | Assignment 1 Out | ||
| 19 | The Untyped λ-Calculus | 17 | ||
| 24 | Y combinator; universality | 17 | Assignment 1 Due | |
| 25 | General recursion; Reduction and Conversion | 17 | Assignment 2 Out | |
| 26 | (No Class) | Solution 1 Out | ||
| 31 | Dynamic Languages as Enriched λ-Calculus | 18 | ||
| Feb | 1 | Dynamics of Dynamic Languages | 6 | |
| 2 | Static Languages: Plotkin's PCF | 8,10 | ||
| 7 | Type Safety | 4-6,10 | Assignment 2 Due | |
| 8 | Progress and Preservation Proofs | 6,10 | Assignment 3 Out | |
| 9 | Checked and Unchecked Errors | 6 | Solution 2 Out | |
| 14 | Products and Sums | 11-12 | ||
| 15 | Pattern Matching | 13 | ||
| 16 | Classes and Methods | 25 | ||
| 21 | Recursive Types | 16 | Assignment 3 Due | |
| 22 | Self-Reference | 16 | ||
| 23 | Dynamic as Static Typing | 19 | Solution 3 Out | |
| 28 | Polymorphic Types | 20 | ||
| Mar | 1 | Generics and Polymorphism | 14,20 | |
| 2 | Abstract Types | 21 | ||
| 6 | Propositions-as-Types, Proofs-as-Programs | 30 | ||
| 7 | Midterm Review | |||
| 8 | Midterm Examination | |||
| 13 | (No Class) | |||
| 14 | (No Class) | |||
| 15 | (No Class) | |||
| 20 | Modernized Algol | 35 | ||
| 21 | Monadic Imperative Programming | 35 | Assignment 4 Out | |
| 22 | References, Benign Effects | 36 | ||
| 27 | Lazy Languages and Lazy Types | 37 | ||
| 28 | By-Need Evaluation | 37 | ||
| 29 | Deterministic Parallelism | 39 | ||
| Apr | 3 | Cost Semantics + Brent's Principle | 39 | Assignment 4 Due |
| 4 | Parallel Scheduling | 39 | Assignment 5 Out | |
| 5 | Speculation and Futures | 40 | Solution 4 Out | |
| 10 | Concurrency: π-Calculus | |||
| 11 | Non-Deterministic Computation | |||
| 12 | Concurrency: π-Calculus | |||
| 17 | Concurrency ≠ Parallelism | 41 | Assignment 5 Due | |
| 18 | Implementing Parallelism | Assignment 6 Out | ||
| 19 | Concurrent Algol | 42 | Solution 5 Out | |
| 24 | Basic Modules | 44-45 | ||
| 25 | Linking | 30,44 | ||
| 26 | (No Class) | |||
| May | 1 | Hierarchical and Parameterized Modules | 46 | Assignment 6 Due |
| 2 | Final Review | |||
| 3 | Summary and Prospectus | Solution 6 Out | ||