January 24 | Course Overview | notes | |
January 26 | λ-calculus | notes | |
January 29 | More λ-calculus | same notes | |
January 31 | λ-calculus Encodings | notes | A1 out |
February 2 | Reduction Strategies | notes | |
February 5 | Operational Semantics | same notes | |
February 7 | Fixed Points | notes | |
February 9 | Well-Founded Induction | notes | |
February 12 | Structural Induction | notes | |
February 14 | The IMP Language | notes | A1 due |
February 16 | More IMP | same notes | |
February 19 | No class (February Break) | |
February 21 | Big-Step Semantics | same notes | A2 out |
February 23 | Evaluation Contexts and Translational Semantics | notes | |
February 26 | More Translation and a Functional Language | same notes proof more | |
February 28 | Scope | notes | |
March 2 | Snow day! | |
March 5 | State | notes | |
March 7 | Continuations | notes | A2 due, Prelim out |
March 9 | No class (Preliminary Exam) | |
March 12 | First-Class Continuations | notes | |
March 14 | Axiomatic Semantics | notes | |
March 16 | Hoare Logic & Examples | same notes | Prelim due, A3 out |
March 19 | Predicate Transformers | notes | |
March 21 | Denotational Semantics | notes | |
March 23 | Typed λ-calculus | notes | |
March 26 | NetKAT (guest lecture by Steffen Smolka) | | |
March 28 | Products, Sums, and Datatypes (guest lecture by Daniel Sainati) | notes | A3 due |
March 30 | Type Soundness | notes | |
April 2 | No class (Spring Break) | |
April 4 | No class (Spring Break) | |
April 6 | No class (Spring Break) | |
April 9 | Strong Normalization | notes | |
April 11 | Subtyping | notes | A4 out |
April 13 | Type Inference | notes | |
April 16 | Polymorphic λ-calculus | notes | |
April 18 | More Polymorphism | same notes | |
April 20 | Recursive Types | notes | |
April 23 | Objects and Existential Types | notes | |
April 25 | Propositions as Types | notes more | A4 due; A5 out |
April 27 | Linear Types | notes | |
April 30 | Kinds | notes | |
May 2 | Dependent Types | notes | A5 proposal due |
May 4 | Guest Lecture by Andrew Myers | | |
May 7 | Theorem Provers | notes | |
May 9 | Program Synthesis | notes code | A5 due |
May 14 | Final Exam Available | |
May 21 | Final Exam Due | |