15-312 Principles of Programming Languages


Schedule of Lectures

Date Topic PFPL Chapters Homework
Jan 12 Inductive Definitions 1-3 Assignment 0 Out
13 Rule Induction 1-3 Recitation 1 Notes
14 Statics and Dynamics 4-5
19 Type Safety; Run-Time Errors 6 Assignment 0 Due, Assignment 1 Out
20 Implementing ABT's 1-3
21 (No Class)
26 System T 8-9 Solution 0 Out
27 Type Safety for System T 9
28 Products 10
Feb 2 Sums 11 Assignment 1 Due
3 Uses of Sums 11
4 Inductive and Coinductive Types 15 Assignment 2 Out, Solution 1 Out
9 Polymorphism 16
10 Polymorphic Programming 16
11 Abstract Types 17
16 Dynamic Dispatch 26
17 Representation Independence 19-20
18 System PCF 19 Assignment 2 Due, Assignment 3 Out
23 System FPC 20
24 Recursive Types and Self-Reference 20
25 Dynamic Typing 22
Mar 1 Dynamic as Static Typing 23
2 Review for Midterm
3 Midterm Examination (Solutions) Assignment 3 Due (Fri)
8 (Spring Break)
9 (Spring Break)
10 (Spring Break)
15 Exceptions 28-29 Solution 3 Out, Assignment 4 Out; PCF Rules
16 Exceptions; K Machine 35; 33
17 Continuations 33
22 Cost Semantics and Parallelism 37
23 Cost Graphs; Work and Span 37
24 Brent's Principle 37 Assignment 4 Due, Assignment 5 Out
29 Modernized Algol 34
30 Expressions and Commands 34
31 Scope-Free Assignables 35
Apr 5 Capabilities and References 35 Solution 4 Out
6 Backpatching, Benign Effects 39
7 Dynamic Classification 33
12 Lazy Evaluation 36
13 Memoization and By-Need Evaluation 40
14 (No Class) Assignment 5 Due, Assignment 6 Out
19 Concurrent Interaction 39 Solution 5 Out
20 Concurrent Programming 41
21 Concurrent Communication 39
26 Concurrent Algol 40
27 Concurent Algol
28 Summary and Review Assignment 6 Due

Robert Harper
Last modified: Fri Apr 8 14:57:15 EDT 2016

Valid XHTML 1.0!