| Date | Topic | Extra Notes | Homework |
| Introduction |
| Jan 6 | Sets, relations, and languages | code , how to run | Course notes: exercises 1.x |
| Jan 8 | Class cancelled | | |
| Jan 10 | Class cancelled | | |
| Jan 13 | Structural induction | | Course notes: exercises 2.1-2.3 |
| Jan 15 | Diamond property | | Course notes: exercises 2.4, 2.6 |
| Lambda calculus |
| Jan 17 | Lambda calculus | Gordon | Course notes: exercises 4.1-4.2 |
| Jan 20 | Holiday | | |
| Jan 22 | Church numerals | | Course notes: exercises 4.4, 4.5, 4.9, 4.10 |
| Jan 24 | Recursion | | Course notes: exercises 4.13-4.14 |
| Jan 27 | ISWIM | | Course notes: exercises 5.1-5.2 |
| Jan 29 | Observational equivalence | lc.ss, iswim.ss | Course notes: exercises 5.6 |
| Jan 31 | Standard reduction | | Course notes: exercises 6.1-6.2 |
| Machines, and modelling realistic languages |
| Feb 3 | CC | | Course notes: exercises 7.1 |
| Feb 5 | Implementing CC | Teach Yourself Scheme | Course notes: exercises 6.1, CC |
| Feb 7 | SCC, CK | scc.scm | CK |
| Feb 10 | CEK | | CEK |
| Feb 12 | SECD, tail recusion | | none |
| Feb 14 | Continuations | | Course notes: exercises 8.3-8.5 |
| Feb 17 | Holiday | | |
| Feb 19 | Continuation-passing style | notes | Notes: exercise 3.1 |
| Feb 21 | Class cancelled | | |
| Feb 24 | Robby Findler talk | Contracts | |
| Feb 26 | State, CS | | none |
| Feb 28 | CEKS, garbage collection | | Mid-term exam |
| Types |
| Mar 3 | Typed Arithmetic | | Course notes: exercises 11.1, 11.6 |
| Mar 5 | Simply Typed ISWIM | | Course notes: exercises 12.1, 12.2 |
| Mar 7 | Strong Normalization | | Course notes: exercises 12.3 |
| Mar 10 | More typed lambda calculi | | Course notes: exercises 13.1-13.3 |
| Mar 12 | Polymorphism | | Course notes: exercises 14.1 |
| Mar 14 | Recursive and existential types | | none |
| Mar 17 | Spring Break | | |
| Mar 19 | Spring Break | | |
| Mar 21 | Spring Break | | |
| Mar 24 | Type inference | | Course notes: exercises 15.1, 15.2 |
| Mar 26 | ML | tutorial, demo | ML |
| Mar 28 | Subtyping | | none |
| Project |
| Mar 31 | Project Intro | suggested papers | |
| Apr 2 | MiniJava part I | minijava.ss, red-sem.plt | pick a paper and grammar |
| Apr 4 | Class cancelled | | |
| Apr 7 | MiniJava part II | minijava-run.ss, minijava-test.ss | implement reduction rules |
| Apr 9 | Class cancelled | | |
| Apr 11 | MiniJava part III | minijava-check.ss | implement type checker |
| Apr 14 | Appointments | | |
| Apr 16 | Appointments | | |
| Apr 18 | Project wrap-up | minijava-explore.ss | |
| Denotational semantics |
| Apr 21 | Denotational semantics | notes | Lecture notes: exercise 4 |
| Apr 23 | Domain theory | notes | |