CS 152: Programming Languages

Key to readings: M = Mitchell; W = Winskel; K = Krishnamurthi 1st ed.; K2nd = Krishnamurthi 2nd ed.; 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. (Make sure to log in, and look on the left of the page for "Lecture Videos", etc.) The same site also provides live streams for lecture.

For background material on sets, relations, functions, and induction, see: W 1, H 2, H Appendix, and/or P 2.

Lec. Date Topic Readings Notes Assignments
Tue 26-Jan Class canceled due to weather
1Thu 28-Jan Intro to semantics
Small-step semantics
W 2,3,4
P 2.4, 3
H 2
PDF Assignment 0 released
2Tue 3-Feb Inductive definitions and proof PDF
3Thu 5-Feb Large-step semantics PDF Assignment 1 released
Tue 10-Feb Class canceled due to weather
4Thu 12-Feb IMP: a simple imperative language PDF Assignment 1 due
Assignment 2 released
5Fri 13-Feb Denotational semantics
Available on video only; video is from last year: ignore time-based information.
See above for link to videos.
W 5
M 4.3
Lambda calculus
6Tue 17-Feb Lambda calculus P 5
M 4.2
K 22
7Thu 19-Feb Lambda calculus encodings and Recursion PDF Assignment 2 due
Assignment 3 released
8Tue 24-Feb Definitional translations PDF
9Thu 26-Feb References and continuations P 13
M 5,4, 8.3.2
H 29, 36
K 18-20
PDF Assignment 3 due
Assignment 4 released
11Thu 5-Mar Simply-typed lambda calculus
Type soundness
P 9
M 6.1, 6.2
K 24-26
12Tue 10-Mar More types P 11, 13 PDF Assignment 4 due
Assignment 5 released
13Thu 12-Mar Type inference P 22 PDF
Spring Recess
14Tue 24-Mar Parameteric Polymorphism, Records and Subtyping P 23
M 6.4
P 11.8, 15
15Thu 26-Mar Curry-Howard isomorphism; Existential types P 9.4 PDF Assignment 5 due
Assignment 6 released
16Tue 31-Mar Algebraic structures PDF
17Thu 2-Apr Semantics of concurrency PDF Assignment 6 due
Assignment 7 released
18Tue 7-Apr Language abstractions for concurrency PDF
Contracts and control
19Thu 9-Apr Dynamic types PDF
Guest lecturer: Christos Dimoulas
Assignment 7 due
Assignment 8 released
20Tue 14-Apr Lambda calculus machines PDF
Guest lecturer: Christos Dimoulas
21Thu 16-Apr Delimited control PDF
Guest lecturer: Christos Dimoulas
22Tue 21-Apr Control-flow analysis PDF Assignment 8 due
23Thu 23-Apr Logic programming PDF Assignment 9 released
24Tue 28-Apr Functional Reactive Programming PDF
25Thu 30-Apr Reading period make-up lecture due to canceled classes
Common mistakes in programming language design
Assignment 9 due