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