CS 152: Programming Languages

Sections are held on:

Section attendance is not required.

The following is a list of the sections that were held, and the topic/problems covered. Practice problems will be released a day or two before the first section.

Videos of the lecture and Thursday's section are available here. The same site also provides live streams for lecture.

Date Topic Practice problems
2/11-2/12 Lectures 1-5:
Induction
Small-step operational semantics
Large-step operational semantics
IMP
PDF
2/18-2/19 Lectures 6-7:
Denotational semantics
Lambda-calc basics
PDF and solutions
2/25-2/26 Lectures 8-9:
Lambda calculus encodings and Recursion
Definitional translations
Midterm review
PDF and solutions
3/3-3/4 Lectures 10-11:
References and continuations
Simply-typed lambda calculus
Type soundness
PDF and solutions
3/10-3/11 Lecture 13:
More types
PDF and solutions
3/24-3/25 Lectures 14-15:
Type inference
Parameteric Polymorphism
Records and Subtyping
PDF and solutions
3/31-4/1 Lectures 16-17:
Curry-Howard isomorphism
Existential types
Sub-structural type systems
PDF and solutions
4/7-4/8 Lectures 18-19:
Algebraic structures
Logic programming
Environment semantics
PDF and solutions
haskell-examples.hs, Prolog code, Datalog code.
4/14-4/15 Lectures 20-21:
Concurrency
PDF and solutions
4/21-4/22 Lectures 22-23:
Dynamic types
Lambda calculus machines
PDF and solutions
4/28-4/29 Lecture 24:
Control-flow analysis
Final exam review
PDF and solutions