Schedule
Date | Lecture | Code | Homework |
---|---|---|---|
August 23 | Introduction Functional Programming; Proofs; ADTs | ||
August 25 | Functional Programming; Proofs; ADTs | Lecture.v, InClass.v | |
August 30 | Functional Programming; Proofs; ADTs | InClass2.v, InClass3.v | |
September 1 | Semantics via Interpreters | Lecture.v, InClass1.v | |
September 6 | Semantics via Interpreters | InClass2.v | HW0 due |
September 8 | Interpreters in Practice: Rosette | racket.rkt, rosette.rkt | |
September 13 | Transition Systems | Lecture.v, InClass.v | |
September 15 | Transition Systems | ||
September 20 | Transition Systems | ||
September 22 | IMP and Operational Semantics | Lecture.v, InClass.v | HW1 due |
September 27 | IMP and Operational Semantics | ||
September 29 | IMP and Operational Semantics | Project proposal due | |
October 4 | IMP and Operational Semantics | ||
October 6 | Axiomatic Semantics; Hoare Logic | Lecture.v | |
October 11 | Hoare Logic in Practice: Dafny | Lecture.dfy | |
October 13 | Hoare Logic in Practice: Dafny | InClass.dfy | HW2 due |
October 18 | Lambda Calculus | ||
October 20 | Lambda Calculus | ||
October 25 | Simply-Typed Lambda Calculus; Type Safety | Lecture.v | |
October 27 | Simply-Typed Lambda Calculus; Type Safety | ||
November 1 | Polymorphism and System F | ||
November 3 | Polymorphism and System F | ||
No class (election day—go vote!) | |||
November 10 | Types in Practice: Linear Types and Rust | lecture.rs | HW3 due |
November 15 | Types Potpourri: Products and Sums | ||
No class | |||
No class (fall break) | |||
No class (fall break) | |||
November 29 | Readings: CompCert | ||
December 1 | Readings: Trusting trust; Victory Lap | HW4 due Project report due | |
December 8–10 | Final exam (take home) |