15-312 Principles of Programming Languages
Calendar
Schedule of Lectures
| Week/Date | Topic | PFPL Chapters | Homework | |
|---|---|---|---|---|
| 1 | Aug 28 | Inductive definitions; abstract syntax; binding and scope | 1-3 | |
| Aug 29 | Judgments; Inference; Induction Supplement on Simultaneous Induction | Homework 0 Out | ||
| Aug 30 | Church's λ-Calculus | HW0 Writeup | ||
| 2 | Sep 4 | Static and dynamic semantics; type safety. | 4-6 | |
| Sep 5 | Binding; Semantics; Safety | Homework 0 Due; Homework 1 Out | ||
| Sep 6 | Proving safety: progress and preservation | 4-6 | ||
| 3 | Sep 11 | Higher-Order total computation: Gödel's T | 8-9 | |
| Sep 12 | Higher-Order Programming in T | |||
| Sep 13 | Finite data structures: Products and Sums | 10-11 | ||
| 4 | Sep 18 | Generic programming | 14 | |
| Sep 19 | Finite Data Structures; Generic Programming | Homework 1 Due; Homework 2 Out | ||
| Sep 20 | Inductive and coinductive types | 15 | ||
| 5 | Sep 25 | Polymorphism; Genericity | 16 | |
| Sep 26 | Inductive and Coinductive Types | |||
| Sep 27 | Existential types; Data Abstraction | 17 | ||
| 6 | Oct 2 | Parametricity: Verification of ADT's | 17 | |
| Oct 3 | Polymorphism and Existential Types | Homework 2 Due; Homework 3 Out | ||
| Oct 4 | Higher-order partial computation: Plotkin's PCF | 19 | ||
| 7 | Oct 9 | General recursive types: FPC | 20 | |
| Oct 10 | Partiality and Recursive Types | |||
| Oct 11 | Dynamic languages: DPCF | 22 | ||
| 8 | Oct 16 | Dynamic dispatch: classes and methods | 26 | |
| Oct 17 | λ-Calculus and DPCF | Homework 3 Due | ||
| Oct 18 | Midterm examination (in-class & open-book) | |||
| 9 | Oct 23 | Exceptions: control and data | 28-29 | |
| Oct 24 | Exceptions and Control Stacks | Homework 4 Out | ||
| Oct 25 | Continuations | 30 | ||
| 10 | Oct 30 | Parallelism: work and span | 6; 37 | |
| Oct 31 | Continuations and Parallelism | |||
| Nov 1 | Parallelism: Brent's Theorem | 37 | ||
| 11 | Nov 6 | Imperative Programming: Modernized Algol | 34 | |
| Nov 7 | Modal Separation | Homework 4 Due; Homework 5 Out | ||
| Nov 8 | Capabilities and References | 37 | ||
| 12 | Nov 13 | Dynamic Classification; Confidentiality and Integrity | 33 | |
| Nov 14 | MA and references; Dynamic classification | |||
| Nov 15 | Laziness: Call-by-Need; Benign Effects | 36 | ||
| 13 | Nov 20 | Haskell and ML | ||
| Nov 21 | (Thanksgiving Break) | Homework 5 Due | ||
| Nov 22 | (Thanksgiving Break) | |||
| 14 | Nov 27 | Concurrency: π-Calculus | 33 | Homework 6 Out |
| Nov 28 | Concurrent interaction | |||
| Nov 29 | Concurrent Programming: Concurrent Algol | |||
| 15 | Dec 4 | Modularity and Linking | 33 | |
| Dec 5 | (Modules and Sharing) | Home 6 Due | ||
| Dec 6 | Type Abstractions and Type Classes | |||
Author: Robert Harper
Last modified: Mon Dec 12 11:54:59 EST 2016