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. 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 26-Jan Intro to semantics W 2,3,4
P 2.4, 3
H 2
PDF
2Thu 28-Jan Small-step semantics
Inductive definitions
PDF Assignment 0 released
3Tue 2-Feb Inductive proofs; Large-step semantics PDF
4Thu 4-Feb Large-step semantics, ctd. PDF Assignment 1 released
5Tue 9-Feb IMP: a simple imperative language PDF
6Thu 11-Feb Denotational semantics W 5
M 4.3
PDF
Lambda calculus
7Tue 16-Feb Lambda calculus P 5
M 4.2
K 22
PDF Assignment 1 due
Assignment 2 released
8Thu 18-Feb Lambda calculus encodings and Recursion PDF
9Tue 23-Feb Definitional translations PDF
10Thu 25-Feb References and continuations P 13
M 5,4, 8.3.2
H 29, 36
K 18-20
PDF
Types
11Tue 1-Mar Simply-typed lambda calculus
Type soundness
P 9
M 6.1, 6.2
K 24-26
PDF Assignment 2 due
Assignment 3 released
12Thu 3-Mar MID-TERM EXAM
(Covers lectures 1-10)
13Tue 8-Mar More types P 11, 13 PDF
14Thu 10-Mar Type inference P 22
K 30
PDF
Spring Recess
15Tue 22-Mar Parameteric Polymorphism, Records and Subtyping P 23
M 6.4
P 11.8, 15
PDF Assignment 3 due
Assignment 4 released
16Thu 24-Mar Curry-Howard isomorphism; Existential types P 9.4 PDF
17Tue 29-Mar Sub-structural type systems PDF
18Thu 31-Mar Algebraic structures PDF
Logic Programming
19Tue 5-Apr Logic Programming M 15
K32-34
PDF Assignment 4 due
Assignment 5 released
Concurrency
20Thu 7-Apr Semantics of concurrency M 14 PDF
21Tue 12-Apr Language abstractions for concurrency PDF
Contracts and control
22Thu 14-Apr Dynamic types PDF
23Tue 19-Apr Lambda calculus machines PDF Assignment 5 due
Assignment 6 released
24Thu 21-Apr Control-flow analysis PDF
Tail call
25Tue 26-Apr Issues in language design Assignment 6 due
Thu 5-May FINAL EXAM, 9am