NOTE: Schedule is subject to change.
Key to readings: M = Mitchell; W = Winskel; K = Krishnamurthi; P = Pierce; H = Harper. The readings are not required, but may help your understanding of the lecture material.
The lecture notes here contain material from lecture notes of courses taught by Radu Rugina, Andrew Myers, and Nate Foster.
Videos of the lecture and section are available here. You can live stream lectures and sections here.
For background material on sets, relations, functions, and induction, see: W 2, H 2, H Appendix, and/or P 2.
Lec. | Date | Topic | Readings | Notes | Assignments | Semantics |
---|---|---|---|---|---|
1 | Tue 29-Jan | Intro to semantics Small-step semantics |
W 2,3,4 P 2.4, 3 H 2 | Assignment 0 released | |
2 | Thu 31-Jan | Inductive definitions and proof | PDF (slide) | ||
3 | Tue 5-Feb | Large-step semantics IMP: a simple imperative language |
Assignment 1 released | ||
4 | Thu 7-Feb | IMP | |||
5 | Tue 12-Feb | Denotational semantics | W 5 M 4.3 | ||
6 | Thu 14-Feb | Axiomatic semantics and Hoare logic | W 6 | Assignment 1 due Assignment 2 released |
Lambda calculus |
7 | Tue 19-Feb | Lambda calculus | P 5 M 4.2 K 22 | ||
8 | Thu 21-Feb | Lambda calculus encodings and Recursion | |||
9 | Tue 26-Feb | Definitional translations | Assignment 2 due Assignment 3 released |
||
10 | Thu 28-Feb | References and continuations | P 13 M 5,4, 8.3.2 H 29, 36 K 18-20 | Types | |
11 | Tue 5-Mar | Simply-typed lambda calculus Type soundness |
P 9 M 6.1, 6.2 K 24-26 | ||
12 | Thu 7-Mar | More types | P 11, 13 | Assignment 3 due | |
13 | Tue 12-Mar | Type inference | P 22 | ||
14 | Thu 14-Mar | MID-TERM EXAM | Spring Recess | ||
15 | Tue 26-Mar | Polymorphism | P 23 M 6.4 | Assignment 4 released | |
16 | Thu 28-Mar | Records and Subtyping | P 11.8, 15 | ||
17 | Tue 2-Apr | Curry-Howard isomorphism | P 9.4 | ||
18 | Thu 4-Apr | Existential types and modules | P 24 | Assignment 4 due Assignment 5 released |
|
19 | Tue 9-Apr | Dynamic types | |||
20 | Thu 11-Apr | Monads | monads.hs | Language features and programming paradigms | |
21 | Tue 16-Apr | Objects | Assignment 5 due Assignment 6 released |
||
22 | Thu 18-Apr | Objects | |||
23 | Tue 23-Apr | Concurrency | |||
24 | Thu 25-Apr | Communication | |||
25 | Tue 30-Apr | Current trends in PL | Assignment 6 due |