CS 345H: Programming Languages (Honors) Spring 2024

Schedule

DateLectureCodeHomework
January 16Introduction
Functional Programming; Proofs; ADTs
January 18Functional Programming; Proofs; ADTsLecture.v, InClass.v
January 23Functional Programming; Proofs; ADTs
January 25Semantics via InterpretersLecture.v, InClass.v
January 30Semantics via InterpretersHW0 due
February 1Interpreters in Practice: Rosetteracket.rkt, rosette.rkt
February 6Transition SystemsLecture.v, InClass.v
February 8Transition Systems
February 13Transition Systems
February 15IMP and Operational SemanticsLecture.vHW1 due
February 20IMP and Operational Semantics
February 22IMP and Operational SemanticsProject proposal due
February 27Axiomatic Semantics; Hoare LogicLecture.v
February 29Hoare Logic in Practice: DafnyLecture.dfy
March 5HW2 hack day
March 7No classHW2 due
March 12No class (spring break)
March 14No class (spring break)
March 19Lambda Calculus
March 21Lambda Calculus
March 26Simply-Typed Lambda Calculus; Type SafetyLecture.v
March 28Simply-Typed Lambda Calculus; Type Safety
April 2HW3 hack day
April 4No class (James is traveling)HW3 due
April 9Types in Practice: Linear Types and Rustlecture.rs
April 11Polymorphism and System F
April 16Polymorphism and System F
April 18Types Potpourri: Products and Sums
April 23Readings: CompCert
April 25Readings: Trusting trust; Victory LapHW4 due
Project report due
May 2–4Final exam (take home)