Sections are held on:
- Thursdays, 2pm-3pm in Cruft 403.
- Fridays, 1pm-2pm in MD 223.
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 |
|
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 |