| Week |
Dates |
Topics |
Readings |
| 1 |
8/30 |
Intro; Math Preliminaries |
Ch2 |
| 9/1 |
OCaml quick overview |
Chapter 2 of "Developing Applications with Objective Caml"
|
| 2 |
9/6, 9/8 |
Formalizing syntax and semantics |
Ch3, Ch4 |
| 3 |
9/13, 9/15 |
Lambda calculus |
Ch5 |
| 4 |
9/20, 9/22 |
Type safety |
Ch8 |
| 5 |
9/27, 9/29 |
Simply typed lambda calculus; type extensions |
Ch9, Ch11 |
| 6 |
10/4, 10/6 |
Type extensions |
Ch11 |
| 7 |
10/11 |
Pacing break |
|
| 10/13 |
Mutable references |
Ch13 |
| 8 |
10/18 |
Midterm exam |
|
| 10/20 |
Subtyping |
Ch15 |
| 9 |
10/25 |
Subtyping |
Ch15 |
| 10/27 |
Polymorphic types |
Ch23 |
| 10 |
11/1 |
Class canceled due to a power outage |
|
| 10 |
11/3 |
Existential types |
Ch24 |
| 11 |
11/8, 11/10 |
Type inference |
Ch22
|
| 12 |
11/15 |
CIL |
|
| 11/17 |
Recursive types |
Ch20
|
| 13 |
11/22 |
Exceptions |
|
| 11/24 |
Thanksgiving break |
Thank you! |
| 14 |
11/29, 12/1 |
Continuations
|
| 15 |
12/6, 12/8 |
Continuations |
|