15-312 Principles of Programming Languages


Calendar

Schedule of Lectures

Week/Date Topic PFPL Chapters Homework
1 Jan 17 Inductive Definitions; Abstract and Concrete Syntax 1-3
Jan 18 Rule Induction; Structural Induction Homework 0 Out
Jan 19 Binding & Scope; Statics and Dynamics 4-5
2 Jan 24 Type Safety: Preservation and Progress 6
Jan 25 Proving Safety Homework 0 Due Homework 1 Out
Jan 26 Higher-Order Total Computation: Gödel's T 8-9
3 Jan 31 Finite data structures: products. 10
Feb 1 Higher-order programming; products and sums
Feb 2 Finite data structures: sums. 11
4 Feb 7 Generic programming 14
Feb 8 Type operators; inductive types Homework 1 Due Homework 2 Out
Feb 9 Generic prog. / Ind. and coind. types 15
5 Feb 14 Inductive and coinductive types 16
Feb 15 Polymorphic programming; parametricity
Feb 16 Polymorphism 17
6 Feb 21 Abstract types 19
Feb 22 Fixed points and self-reference Homework 2 Due Homework 3 Out
Feb 23 Higher-order partial computation: PCF 20
7 Feb 28 Recursive types: FPC 20
Mar 1 Self-reference and universality
Mar 2 Dynamic Languages: DPCF 22
8 Mar 7 Dynamic dispatch
Mar 8 Midterm Review 23 Homework 3 Due (extended to Mar 11)
Mar 9 Midterm examination (in-class & open-book)
9 Mar 14 (Spring break)
Mar 15 (Spring break)
Mar 16 (Spring break) 28-29
10 Mar 21 Parallelism: Work and Span 6;37
Mar 22 Dynamic typing Homework 4 Out
Mar 23 Parallelism: Brent's Theorem 37
11 Mar 28 Exceptions
Mar 29 Brent's Theorem
Mar 30 Continuations 30
12 Apr 4 Imperative programming: MA 34
Apr 5 Modernized Algol: commands and expressions Homework 4 Due Homework 5 Out
Apr 6 Capabilities and references; benign effects 35
13 Apr 11 Lazy evaluation and memoization 36
Apr 12 Lazy vs Eager
Apr 13 Dynamic classification 36
14 Apr 18 Concurrency: process calculus 39
Apr 19 Concurrent interaction 40 Homework 5 Due Homework 6 Out
Apr 20 (No class)
15 Apr 25 Concurrent programming: CA 40
Apr 26 Implementing parallelism
Apr 27 Distributed programming: DA 41
16 May 2 Modules: interfaces and implementations 42-43
May 3 Modular programming Homework 6 Due
May 4 Modules: hierarchy and parameterization 44

Robert Harper
Last modified: Mon Dec 12 11:54:59 EST 2016

Valid XHTML 1.0!