CS 152: Programming Languages

NOTE: The current schedule is tentative and subject to change. Nonetheless it gives an idea of the material to be covered in this course. See last year's schedule for lecture notes to get a better idea.

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
Semantics
1Tue 28-Jan Intro to semantics
Small-step semantics
W 2,3,4
P 2.4, 3
H 2
PDF Assignment 0 released
2Thu 30-Jan Inductive definitions and proof PDF
3Tue 4-Feb Large-step semantics
IMP: a simple imperative language
PDF Assignment 1 released
4Thu 6-Feb IMP PDF
5Tue 11-Feb Denotational semantics W 5
M 4.3
PDF
Lambda calculus
6Thu 13-Feb Lambda calculus P 5
M 4.2
K 22
PDF Assignment 1 due
Assignment 2 released
7Tue 18-Feb Lambda calculus encodings and Recursion PDF
8Thu 20-Feb Definitional translations PDF
9Tue 25-Feb References and continuations P 13
M 5,4, 8.3.2
H 29, 36
K 18-20
PDF Assignment 2 due
Types
10Thu 27-Feb Simply-typed lambda calculus
Type soundness
P 9
M 6.1, 6.2
K 24-26
PDF
11Tue 4-Mar MID-TERM EXAM Assignment 3 released
12Thu 6-Mar More types P 11, 13 PDF
13Tue 11-Mar Type inference P 22 PDF
14Thu 13-Mar Polymorphism P 23
M 6.4
PDF
Spring Recess
15Tue 25-Mar Records and Subtyping P 11.8, 15 PDF Assignment 3 due
Assignment 4 released
16Thu 27-Mar Curry-Howard isomorphism P 9.4 PDF
17Tue 1-Apr Existential types and modules P 24 PDF
18Thu 3-Apr Dynamic types K2nd 17 PDF
19Tue 8-Apr Algebraic structures PDF Assignment 4 due
Assignment 5 released
Reasoning about programs
20Thu 10-Apr Axiomatic semantics and Hoare logic W 6 PDF
21Tue 15-Apr Abstract interpretation PDF
22Thu 17-Apr Control-flow analysis PDF Assignment 5 due
Assignment 6 released
Miscellany
23Tue 22-Apr Logic programming K 33 PDF
24Thu 24-Apr Concurrency PDF
25Tue 29-Apr Some common mistakes in language design
Thu 1-May Assignment 6 due