Date | Topic | Extra Notes | Homework |
Introduction |
Jan 3 | Sets, relations, and languages | | Course notes: exercises 1.x |
Jan 8 | Structural induction, diamond property | | Course notes: exercises 2.1-2.5 |
Lambda calculus |
Jan 10 | Lambda calculus | Gordon | Course notes: exercises 4.1-4.5, 4.9-4.10 |
Jan 15 | Recursion | The Why of Y from The Little Schemer | Course notes: exercises 4.11-4.14 |
Jan 17 | Class cancelled | | |
Jan 22 | ISWIM | | Course notes: exercises 5.1, 5.6 |
Jan 24 | Standard reduction | | Course notes: exercises 4.15, 5.2, 6.1-6.2 |
Machines, and modelling realistic languages |
Jan 29 | CC | | Course notes: exercises 7.1 |
Jan 31 | SCC, CK, CEK | Teach Yourself Scheme | HW8 (due Mar 5) |
Feb 5 | Olympic Break | | |
Feb 7 | Olympic Break | | |
Feb 12 | Olympic Break | | |
Feb 14 | Olympic Break | | |
Feb 19 | Olympic Break | | |
Feb 21 | Olympic Break | | |
Feb 26 | Olympic Break | | |
Feb 28 | SECD, tail recusion, continuations | | Course notes: exercises 8.1, 8.2, 8.5 |
Mar 5 | Errors and exceptions | | Course notes: exercises 9.1, 9.5, 9.6, 9.9 |
Mar 7 | State, garbage collection, CEKS | | Course notes: exercises 10.1, 10.2 |
Mar 12 | Review and summary | | Mid-term (due Mar 19) |
Types |
Mar 14 | Typed Arithmetic | | Course notes: exercises 11.1, 11.6 |
Mar 19 | Simply Typed ISWIM | | Course notes: exercises 12.1 |
Mar 21 | More typed lambda calculi | | Course notes: exercises 13.2-13.4 |
Mar 26 | Polymorphism and ML | OCaml manual, demo transcript | HW15 (Due Apr 9) |
Mar 28 | Type inference | | Course notes: exercises 15.1, 15.2 |
Apr 2 | Recursive and existential types | | Course notes: exercises 16.3 |
Apr 4 | No lecture | | No homework |
Object-oriented languages |
Apr 9 | Subtyping | | Course notes: exercises 18.1 |
Apr 11 | MiniJava | | Course notes: exercises 19.1, 19.3 |
Denotational semantics |
Apr 16 | Continuation-passing style | notes | Lecture notes: exercise 3.1 |
Apr 18 | Denotational semantics | notes | Lecture notes: exercise 4 |
Apr 23 | Domain theory | notes | Lecture notes: exercises 6.x |
Apr 25 | Class cancelled | | No homework |
Apr 30 | Full abstraction, recursive domain equations | | No homework |
May 2 | Review and summary | | |