Tentative Schedule
| Date | Topic |
| 1/9 | Introduction; ML; Induction (Ch. 1) |
| 1/11 | Concrete and Abstract Syntax (Ch. 2) |
| 1/16 | No class |
| 1/18 | No class |
| 1/23 | MiniML Syntax (Ch. 3) |
| 1/25 | MiniML Types (Ch. 4) |
| 1/30 | MiniML Dynamic Semantics (Ch. 5) |
| 2/1 | MiniML Type Safety (Ch. 6) |
| 2/6 | Products, Sums, and Recursive Types (Ch. 7) |
| 2/8 | Products, Sums, and Recursive Types (Ch. 7) |
| 2/13 | Evaluation Semantics and Dynamic Typing (Ch. 8) |
| 2/15 | Java Type Safety; Security |
| 2/20 | Computational Effects (Ch. 10) |
| 2/22 | Computational Effects (Ch. 10) |
| 2/27 | Monads (Introduction) |
| 3/1 | Monads (Theory) |
| 3/6 | Monads (Haskell and lazy evaluation) |
| 3/8 | Monads (Haskell and type classes; encapsulation) |
| 3/13 | Spring break |
| 3/15 | Spring break |
| 3/20 | Type Reconstruction (Ch. 13) |
| 3/22 | Type Reconstruction (Ch. 13) |
| 3/27 | Expression Equivalence (Ch. 14) |
| 3/29 | Expression Equivalence (Ch. 14) |
| 4/3 | Polymorphism (Ch. 15) |
| 4/5 | Polymorphism (Ch. 15) |
| 4/10 | Data Abstraction (Ch. 16) |
| 4/12 | Data Abstraction (Ch. 16) |
| 4/17 | Inheritance and Subtyping (Ch. 17) |
| 4/19 | Inheritance and Subtyping (Ch. 17) |
| 4/24 | Featherweight Java (Ch. 18) |
| 4/26 | Featherweight Java (Ch. 18) |
| 5/1 | Final exam from 8:00 to 10:00 |