CS 345H: Programming Languages (Honors) Fall 2022

Schedule

DateLectureCodeHomework
August 23Introduction
Functional Programming; Proofs; ADTs
August 25Functional Programming; Proofs; ADTsLecture.v, InClass.v
August 30Functional Programming; Proofs; ADTsInClass2.v, InClass3.v
September 1Semantics via InterpretersLecture.v, InClass1.v
September 6Semantics via InterpretersInClass2.vHW0 due
September 8Interpreters in Practice: Rosetteracket.rkt, rosette.rkt
September 13Transition SystemsLecture.v, InClass.v
September 15Transition Systems
September 20Transition Systems
September 22IMP and Operational SemanticsLecture.v, InClass.vHW1 due
September 27IMP and Operational Semantics
September 29IMP and Operational SemanticsProject proposal due
October 4IMP and Operational Semantics
October 6Axiomatic Semantics; Hoare LogicLecture.v
October 11Hoare Logic in Practice: DafnyLecture.dfy
October 13Hoare Logic in Practice: DafnyInClass.dfyHW2 due
October 18Lambda Calculus
October 20Lambda Calculus
October 25Simply-Typed Lambda Calculus; Type SafetyLecture.v
October 27Simply-Typed Lambda Calculus; Type Safety
November 1Polymorphism and System F
November 3Polymorphism and System F
November 8No class (election day—go vote!)
November 10Types in Practice: Linear Types and Rustlecture.rsHW3 due
November 15Types Potpourri: Products and Sums
November 17No class
November 22No class (fall break)
November 24No class (fall break)
November 29Readings: CompCert
December 1Readings: Trusting trust; Victory LapHW4 due
Project report due
December 8–10Final exam (take home)