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 | 1 | Jan. 19 | Course overview and motivation (PDF) | |||
| Jan. 21 | Guest Lecture: | |||||
| 2 | 2 | Jan. 26 | A Simple Imperative Language. Operational Semantics (PDF) |
|
Homework 1 | |
| 3 | Jan. 28 | Finish previous set of slides. Proof Techniques for Operational Semantics. Mathematical Induction (PDF) | Winskel, Ch.3. | |||
| 4 | Feb. 2 | Guest lecture: Sumit Gulwani, "Dimensions in Program Synthesis" | A | HMW1 | ||
| 4 | Feb. 4 | Continue Proof Techniques. Structural Induction. (PDF) | A | Homework 2 | ||
| 5 | 5 | Feb. 9 | Intro to Denotational Semantics and Domain Theory (PDF) | Winskel Ch. 8 and Ch 3 | ||
| 6 | Feb. 11 | Intro to Denotational Semantics and Domain Theory (PDF) | Winskel Ch. 8 and Ch 3 | Homework 3 | HMW2 | |
| 6 | 7 | Feb. 16 | Axiomatic Semantics (PDF) |
|
||
| 8 | Feb. 18 | Axiomatic semantics (same slides) | Homework 4 | HMW3 | ||
| 7 | 9 | Feb. 23 | Axiomatic semantics - Weakest Preconditions | Completeness proof | ||
| 10 | Feb. 25 | Axiomatic semantics - Verification Conditions | HMW4 | |||
| 8 | 11 | Mar. 2 | Abstract Interpretation (PDF) |
|
Homework 5 | |
| 12 | Mar. 4 | Abstract Interpretation (same slides) | ||||
| 9 | 13 | Mar. 9 | Introduction to Lambda Calculus (PDF) |
|
HMW5 | |
| Mar. 11 | Guest lecture: Arthur Whitney, "The K data parallel language" | 10 | 14 | Mar. 16 | Simply Typed Lambda Calculus (PDF) |
|
Homework 6 |
| 15 | Mar. 18 | Simply Typed Lambda Calculus. Continued |
|
|||
| 11 | Mar. 23 | No lecture. Spring break. | ||||
| Mar. 25 | No lecture. Spring break. | |||||
| 12 | 16 | Mar. 30 | Exceptions (same slides as above) | HMW6 | ||
| 17 | Apr. 1 | Continuations (same slides as above) | ||||
| 13 | 18 | Apr. 6 | Recursive Types and Subtyping (PDF) | Homework 7 | ||
| 19 | Apr. 8 | Finish subtyping. Polymorphism (PDF) | ||||
| 14 | 20 | Apr. 13 | Finish polymorphism | HMW7 | ||
| 21 | Apr. 15 | Dependent Types (PDF) | ||||
| 15 | 22 | Apr. 20 | Dependent-Types for Low-Level Languages (PDF) | |||
| 23 | Apr. 22 | A formalization of the Java Virtual Machine. (PDF) | Efficient Bytecode Verification | Final exam | ||
| 16 | 24 | Apr. 27 | Proof Practice. | Final exam | ||
| 25 | Apr. 29 | Project Presentations |