The following schedule is tentative. Most likely some of the topic will change during the semester. As the course progresses hyperlinks will be provided to the lecture notes. The project assignments are provided early so that you know what to expect. Those handouts are likely to change by the time the project stage is assigned.
| Week | Lec. | Date | Topic | Reading | Assigned | Due (in lecture, unless specified below) |
| 1 | Jan. 16 | No lecture | ||||
| Jan. 18 | No lecture | |||||
| 2 | 1 | Jan. 23 | Course overview and motivation (PDF) | |||
| 2 | Jan. 25 | A Simple Imperative Language. Operational Semantics (PDF) |
|
Homework 1 | ||
| 3 | 3 | Jan. 30 | Proof Techniques for Operational Semantics. Structural Induction (PDF) | Winskel, Ch.3. | ||
| 4 | Feb. 1 | Intro to Denotational Semantics and Domain Theory (PDF) | Winskel Ch. 8 and Ch 3 | Homework 2 | HMW1 | |
| 4 | 5 | Feb. 6 | Intro to DenotationalSemantics and Domain Theory (same slides as above) | |||
| 6 | Feb. 8 | Axiomatic Semantics (PDF) |
|
Homework 3 | HMW2 | |
| 5 | 7 | Feb. 13 | More axiomations semantics (same slides) | |||
| 8 | Feb. 15 | Finish axiomatic semantics | ||||
| 6 | 9 | Feb. 20 | Abstract Interpretation (PDF) |
|
||
| 10 | Feb. 22 | Abstract Interpretation (same slides) | Homework 4 | |||
| 7 | 11 | Feb. 27 | Introduction to Lambda Calculus (PDF) |
|
||
| 12 | Mar. 1 | Simply Typed Lambda Calculus (PDF) |
|
Homework 5 | HMW4 | |
| 8 | 13 | Mar. 6 | Simply Types Lambda Calculus. Continued |
|
||
| 14 | Mar. 7 | Exceptions and Continuations (same slides) | Homework 6 | HMW5 | ||
| 9 | 15 | Mar. 13 | Recursive Types and Subtyping (PDF) | |||
| 16 | Mar. 15 | Finish subtyping. Polymorphism (PDF) | HMW6 | |||
| 10 | 17 | Mar. 20 | Types for Data Abstraction
and Modularity
(same slides as above)
|
|||
| 18 | Mar. 22 | Dependent Types (PDF) | ||||
| 11 | Mar. 27 | No lecture. Spring break. | ||||
| Mar. 29 | No lecture. Spring break. | |||||
| 12 | 19 | Apr. 3 | Dependent Types | |||
| 20 | Apr. 5 | Types for Low-Level Languages | ||||
| 13 | 21 | Apr. 10 | Types and Effects. Types for Memory Management. | |||
| 22 | Apr. 12 | Shape analysis. | ||||
| 14 | 23 | Apr. 17 | No lecture | |||
| 24 | Apr. 19 | Dependent Types for Imperative Programming | ||||
| 15 | 25 | Apr. 24 | Design of Astree, an abstract interpretation-based static analyzer | Take home FINAL | ||
| 26 | Apr. 26 | No lecture. Faculty retreat. | ||||
| 16 | 27 | May. 1 | A formalization of the Java Virtual Machine. | |||
| 28 | May. 3 | Project presentations | ||||
| 17 | May. 8 | Project presentations | ||||