15-814: Types and Programming Languages (F24)

Schedule

This is a tentative schedule. There will likely be changes and we will try to keep this page up to date.

Week Date Event Topic Assignments
1
Aug 27 Lecture 01 Overview / Lambda Calculus
Aug 29 Lecture 02 Programming in the Lambda Calculus
2
Sep 3 Lecture 03 Recursion in the Lambda Calculus Hw 1 out
Sep 5 Lecture 04 Inference Rules and Definition of Substitution
3
Sep 10 Lecture 05 System T: Static Semantics and Type Soundness Hw 1 due / Hw 2 out
Sep 12 Lecture 06 Normalization, Definability, Undefinability
4
Sep 17 Lecture 07 Products and Sums Hw 2 due / Hw 3 out
Sep 19 Lecture 08 Inductive Data Types
5
Sep 24 Lecture 09 Parametric Polymorphism: System F Hw 3 due / Hw 4 out
Sep 26 Lecture 10 System F; Co-Inductive Data Types
6
Oct 1 Lecture 11 Eager and Lazy Evaluation: PCF Hw 4 due / Hw 5 out
Oct 3 Lecture 12 Recursive Types
7
Oct 8 Lecture 13 Dynamic Types Hw 5 due
Oct 10 Midterm Open book; during class
Oct 15 Fall Break
Oct 17 Fall Break
8
Oct 22 Lecture 14 Evaluation Dynamics and the K Machine Hw 6 out
Oct 24 Lecture 15 Exceptions in the K Machine
9
Oct 29 Lecture 16 Parametricity Hw 6 due / Hw 7 out
Oct 31 Lecture 17 Applications of Parametricity
10
Nov 5 Democracy Day
Nov 7 Lecture 18 Types as Propositions Hw 7 due / Hw 8 out
11
Nov 12 Lecture 19 Substructural Type Systems
Nov 14 Lecture 20 Characterizing PTIME with LFPL Hw 8 due / Select MP
12
Nov 19 Lecture 21 Automatic Amortized Resource Analysis
Nov 21 Lecture 22 Resource Aware ML
13
Nov 26 Thanksgiving Break
Nov 28 Thanksgiving Break
14
Dec 3 Lecture 23 Session Types
Dec 5 Project Day MPs are due on Dec 7