15-814 Types and Programming Languages
Schedule

  • The lecture notes provide additional reading material that complements, but do not replaces the lecture.
  • The schedule is subject to change throughout the semester
  • Chapter references are to the textbook
  • Further references can be found in the lecture notes and textbook
Date Lecture Notes Additional Reading Code Due

Tue Aug 26 The Lambda Calculus bool.lam
Thu Aug 28 Recursion rec.lam

Tue Sep 2 Simple Types
Thu Sep 4 Parametric Polymorphism nat.poly

Tue Sep 9 From λ-Calculus to Programming Languages Asst 1
Thu Sep 11 Preservation and Progress rule sheet

Tue Sep 16 Type Isomorphisms rule sheet Asst 2
Thu Sep 18 Recursive Types rule sheet rec.cbv

Tue Sep 23 Bidirectional Type Checking lec9.cbv Asst 3
Thu Sep 25 Interpreters eval.cbv   cps.cbv

Tue Sep 30 Existential Types lec11.cbv Asst 4
Thu Oct 2 Subtyping lec12.cbv   cps.cbv

Tue Oct 7 Midsemester Review Asst 5
Thu Oct 9 Midterm Exam (in class) midterm18.pdf
midterm19.pdf
midterm21.pdf
midterm25.pdf
(sample solution)
(sample solution)
(sample solution)
(sample solution)

Tue Oct 14 Fall Break
Thu Oct 16 Fall Break

Tue Oct 21 Termination
Thu Oct 23 Parametricity Asst 6

Tue Oct 28 Theorems for Free
Thu Oct 30 Representation Independence lec16.cbv Asst 6

Tue Nov 4 Democracy Day (no class)
Thu Nov 6 Types as Propositions lec17.prf Asst 7

Tue Nov 11 Linear Logic
Thu Nov 13 Linear Functional Programming lec19.adj1  lec19.adj Asst 8

Tue Nov 18 Indexed Types
Thu Nov 20 Logical Frameworks lambda.elf

Tue Nov 25 Project Day (no class)
Thu Nov 27 Thanksgiving Break (no class)

Tue Dec 2 Monads (lecture by Hemant Gouni) [Moggi89] [Wadler95] lec22.ml
Thu Dec 4 Call-by-Push-Value (lecture by Hemant Gouni) MP


[ Home | Schedule | Assignments | Resources | Software ]

fp@cs
Frank Pfenning