The due dates for each assignment are in Gradescope.

Date Notes
Tuesday, Sep 4 Lecture 1. Out: Functional Programming (intro-to-fp.ml).
Thursday, Sep 6 Lecture 2.
Tuesday, Sep 11 Lecture 3.
Thursday, Sep 14 Lecture 4. Out: Interpreter (interp.ml).
Tuesday, Sep 18 Lecture: Type Checking (Part 1).
Thursday, Sep 20 Lecture: Type Checking (Part 2). Out: Type Checker. (tc.ml).
Tuesday, Sep 25 Type Soundness. Recommended Reading: A Syntactic Approach to Type Soundness
Thursday, Sep 27 Lecture: Type Inference.
Tuesday, Oct 2 Lecture: Dafny and Axiomatic Semantics
Thursday, Oct 4  
Tuesday, Oct 9 No class. (Monday schedule.)
Thursday, Oct 12 Lecture: Weakest Preconditions. Out: Verification. (verif.ml, z3_debug.sh)
Tuesday, Oct 16 Lecture: Verification with Z3.
Thursday, Oct 18 Refinement Types.
Tuesday, Oct 23 Refinement Types.
Thursday, Oct 25 A Tutorial Implementation of a Dependently Typed Lambda Calculus
Tuesday, Oct 30 Dependent Types.
Thursday, Nov 1 Dependent Types.
Tuesday, Nov 6 Class cancelled. (Arjun at SPLASH.)
Thursday, Nov 8 Lecture: Continuations
Tuesday, Nov 13 Lecture: Continuation Passing Style
Thursday, Nov 15 Reading: Closure Conversion. Out: Compiler (compiler.ml)
Tuesday, Nov 20 No class. (Thanksgiving Recess.)
Thursday, Nov 22 No class. (Thanksgiving Recess.)
Tuesday, Nov 27 Probabilitic Programming
Thursday, Nov 29 Functional Reactive Programming
Tuesday, Dec 4 Class cancelled.
Thursday, Dec 6 Class cancelled.
Tuesday, Dec 11 Last class. Garbage Collection