15-312 Principles of Programming Languages


Schedule of Lectures

Date Topic PFPL Chapters Homework
Jan 17 What Is A Programming Language? 1-3; 17
18 Inductive Definitions; λ-terms; α-equivalence Assignment 1 Out
19 The Untyped λ-Calculus 17
24 Y combinator; universality 17 Assignment 1 Due
25 General recursion; Reduction and Conversion 17 Assignment 2 Out
26 (No Class) Solution 1 Out
31 Dynamic Languages as Enriched λ-Calculus 18
Feb 1 Dynamics of Dynamic Languages 6
2 Static Languages: Plotkin's PCF 8,10
7 Type Safety 4-6,10 Assignment 2 Due
8 Progress and Preservation Proofs 6,10 Assignment 3 Out
9 Checked and Unchecked Errors 6 Solution 2 Out
14 Products and Sums 11-12
15 Pattern Matching 13
16 Classes and Methods 25
21 Recursive Types 16 Assignment 3 Due
22 Self-Reference 16
23 Dynamic as Static Typing 19 Solution 3 Out
28 Polymorphic Types 20
Mar 1 Generics and Polymorphism 14,20
2 Abstract Types 21
6 Propositions-as-Types, Proofs-as-Programs 30
7 Midterm Review
8 Midterm Examination
13 (No Class)
14 (No Class)
15 (No Class)
20 Modernized Algol 35
21 Monadic Imperative Programming 35 Assignment 4 Out
22 References, Benign Effects 36
27 Lazy Languages and Lazy Types 37
28 By-Need Evaluation 37
29 Deterministic Parallelism 39
Apr 3 Cost Semantics + Brent's Principle 39 Assignment 4 Due
4 Parallel Scheduling 39 Assignment 5 Out
5 Speculation and Futures 40 Solution 4 Out
10 Concurrency: π-Calculus
11 Non-Deterministic Computation
12 Concurrency: π-Calculus
17 Concurrency ≠ Parallelism 41 Assignment 5 Due
18 Implementing Parallelism Assignment 6 Out
19 Concurrent Algol 42 Solution 5 Out
24 Basic Modules 44-45
25 Linking 30,44
26 (No Class)
May 1 Hierarchical and Parameterized Modules 46 Assignment 6 Due
2 Final Review
3 Summary and Prospectus Solution 6 Out

Robert Harper
Last modified: Mon Jan 30 11:55:39 EST 2012

Valid XHTML 1.0!