PFPL = Practical Foundations for Programming Languages, TAPL = Types and Programming Languages
| Date | Topic | PFPL Chapters | TAPL Chapters | Homework | |
|---|---|---|---|---|---|
| Jan | 13 | Overview | 1-3 | 1-2 | |
| 14 | Getting Started | Assignment 1 Out | |||
| 15 | Inductive Definitions | 1-3 | 1-2 | ||
| 20 | Concrete and Abstract Syntax | 5-8 | Assignment 1 Due | ||
| 21 | Parsing, Binding, and Scope | Assignment 2 Out | |||
| 22 | Binding and Scope | 5-8 | 3-4, 6-7 | Solution 1 Out | |
| 27 | Static and Dynamic Semantics | 9-12 | 8 | Assignment 2 Due | |
| 28 | Proof Structure, Run-time Errors | Assignment 3 Out | |||
| 29 | Type Safety | Solution 2 Out | |||
| Feb | 3 | Higher-Order Languages | 13-15 | 9-10 | Assignment 3 Due |
| 4 | Gödel's T (txt) | Assignment 4 Out | |||
| 5 | Primitive and General Recursion | 11 | Solution 3 Out | ||
| 10 | Products and Sums | 16-18 | 11 | ||
| 11 | Algebraic Data Types | ||||
| 12 | Recursive Types | 20 | 20 | ||
| 17 | Dynamic Languages | 21-22 | 5, 20 | Assignment 4 Due | |
| 18 | Self-reference | Assignment 5 Out | |||
| 20 | Hybrid Typing | Solution 4 Out | |||
| 24 | Polymorphism | 23 | 23 | ||
| 25 | Polymorphic Programming | ||||
| 26 | Data Abstraction | 24 | 24-25 | ||
| Mar | 3 | Propositions as Types | 24 | Assignment 5 Due | |
| 4 | Review | ||||
| 5 | Midterm Examination | Solution 5 Out | |||
| 10 | (Spring Break) | ||||
| 11 | (Spring Break) | ||||
| 12 | (Spring Break) | ||||
| 17 | Control Stacks | 27 | 14 | Assignment 6 Out | |
| 18 | Control Effects | ||||
| 19 | Exceptions | 28 | |||
| 24 | Continuations | 29 | |||
| 25 | Continuations and Control (pdf) | ||||
| 26 | Subtyping | 30 | 15-16 | ||
| 31 | Subtyping | 32 | 15-16 | Assignment 6 Due | |
| Apr | 1 | Subtyping | Assignment 7 Out | ||
| Apr | 2 | References | 34-35 | 13 | Solution 6 Out |
| 7 | Monadic State | 37-39 | |||
| 8 | Subtyping and state | ||||
| 9 | Laziness and Futures | 41-42 | |||
| 14 | Cost Semantics and Parallelism | 43 | Assignment 7 Due | ||
| 15 | Work and Depth | Assignment 8 Out | |||
| 16 | (Spring Carnival) | Solution 7 Out | |||
| 21 | Parallelism | 44 | |||
| 22 | Coroutines and Threads | ||||
| 23 | Non-Determinism and Processes | 45 | |||
| Apr | 28 | Concurrency | 46 | Assignment 8 Due | |
| 29 | Concurrent ML | ||||
| Apr | 30 | Advanced Topic | Solution 8 Out | ||