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