Schedule
Date | Lecture | Code | Homework |
---|---|---|---|
January 16 | Introduction Functional Programming; Proofs; ADTs | ||
January 18 | Functional Programming; Proofs; ADTs | Lecture.v, InClass.v | |
January 23 | Functional Programming; Proofs; ADTs | ||
January 25 | Semantics via Interpreters | Lecture.v, InClass.v | |
January 30 | Semantics via Interpreters | HW0 due | |
February 1 | Interpreters in Practice: Rosette | racket.rkt, rosette.rkt | |
February 6 | Transition Systems | Lecture.v, InClass.v | |
February 8 | Transition Systems | ||
February 13 | Transition Systems | ||
February 15 | IMP and Operational Semantics | Lecture.v | HW1 due |
February 20 | IMP and Operational Semantics | ||
February 22 | IMP and Operational Semantics | Project proposal due | |
February 27 | Axiomatic Semantics; Hoare Logic | Lecture.v | |
February 29 | Hoare Logic in Practice: Dafny | Lecture.dfy | |
March 5 | HW2 hack day | ||
No class | HW2 due | ||
No class (spring break) | |||
No class (spring break) | |||
March 19 | Lambda Calculus | ||
March 21 | Lambda Calculus | ||
March 26 | Simply-Typed Lambda Calculus; Type Safety | Lecture.v | |
March 28 | Simply-Typed Lambda Calculus; Type Safety | ||
April 2 | HW3 hack day | ||
No class (James is traveling) | HW3 due | ||
April 9 | Types in Practice: Linear Types and Rust | lecture.rs | |
April 11 | Polymorphism and System F | ||
April 16 | Polymorphism and System F | ||
April 18 | Types Potpourri: Products and Sums | ||
April 23 | Readings: CompCert | ||
April 25 | Readings: Trusting trust; Victory Lap | HW4 due Project report due | |
May 2–4 | Final exam (take home) |