|
15-312 Foundations of Programming Languages
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Date | Lecture or Recitation | Reading | Assignment Traffic | ||||
|---|---|---|---|---|---|---|---|
| |
|||||||
| Tue | Jan | 11 | Inductive Definitions | Part I, Ch. 1; Part II, Ch. 3-4; lecture notes, and more notes | |||
| Wed | Jan | 12 | Abstract Syntax | Part II, Ch. 4-5; lecture notes | |||
| Thu | Jan | 13 | Binding and Scope | Part II, Ch. 4-5; lecture notes (thru page L4.3) | |||
| |
|||||||
| Tue | Jan | 18 | Overview | ||||
| Wed | Jan | 19 | de Bruijn Notation | ||||
| Thu | Jan | 20 | Static and Dynamic Semantics | Part II, Ch. 5.3-5.4, 6-7 | Assignment 1 Out | ||
| |
|||||||
| Tue | Jan | 25 | A Functional Language | Part III, Ch. 8 | |||
| Wed | Jan | 26 | Inductive Proofs | ||||
| Thu | Jan | 27 | Type Safety | Part III, Ch. 9.1-9.2 | Assignment 1 Due Assignment 2 Out |
||
| |
|||||||
| Tue | Feb | 1 | Aggregate Data Structures | Part III, Ch. 9.3 | |||
| Wed | Feb | 2 | Type Safety Review | ||||
| Thu | Feb | 3 | An Abstract Machine | Part V, Ch. 11.1 | |||
| |
|||||||
| Tue | Feb | 8 | Exceptions | Part V, Ch. 13 | |||
| Wed | Feb | 9 | Assignments 1 and 2 | ||||
| Thu | Feb | 10 | Continuations | Part V, Ch. 12 | Assignment 2 Due
Assignment 3 Out |
||
| |
|||||||
| Tue | Feb | 15 | Parametric Polymorphism | Part VIII, Ch. 20 | |||
| Wed | Feb | 16 | TBA | ||||
| Thu | Feb | 17 | Data Abstraction | Part VIII, Ch. 21 | Assignment 3 Due
Assignment 4 Out |
||
| |
|||||||
| Tue | Feb | 22 | Recursive Types/Review | Part VIII, Ch. 19.3 | |||
| Wed | Feb | 23 | HW3 and Midterm Review | ||||
| Thu | Feb | 24 | Midterm Exam (tentative)
(in class) |
||||
| |
|||||||
| Tue | Mar | 1 | Mutable Storage | Part VI, Ch. 14 | |||
| Wed | Mar | 2 | Midterm post-mortem | ||||
| Thu | Mar | 3 | Monads | Assignment 4 Due | |||
| |
|||||||
| Tue | Mar | 8 | *** No Class (Spring Break) *** | ||||
| Wed | Mar | 9 | *** No Class (Spring Break) *** | ||||
| Thu | Mar | 10 | *** No Class (Spring Break) *** | ||||
| |
|||||||
| Tue | Mar | 15 | TBA | Assignment 5 Out | |||
| Wed | Mar | 16 | Mutable Storage | ||||
| Thu | Mar | 17 | Subtyping | Pierce, Ch. 15 | |||
| |
|||||||
| Tue | Mar | 22 | Records | Pierce, Chs. 11.8, 15 | |||
| Wed | Mar | 23 | Bidirectional Typechecking | ||||
| Thu | Mar | 24 | Objects | Pierce, Ch. 18 | Assignment 5 Due | ||
| |
|||||||
| Tue | Mar | 29 | Dynamic Typing | Part X, Ch. 24 | Assignment 6 Out | ||
| Wed | Mar | 30 | Coercion Elaboration | ||||
| Thu | Mar | 31 | Futures | ||||
| |
|||||||
| Tue | Apr | 5 | Concurrent ML | ||||
| Wed | Apr | 6 | Open Recursion in OOP | ||||
| Thu | Apr | 7 | First-Class Synchronization | Assignment 6 Due
Assignment 7 Out |
|||
| |
|||||||
| Tue | Apr | 12 | TBA | ||||
| Wed | Apr | 13 | Concurrent ML | ||||
| Thu | Apr | 14 | *** No Classes (Carnival) *** | Assignment 7 Due
(but turn in 4/19) Assignment 8 Out |
|||
| |
|||||||
| Tue | Apr | 19 | Environments | ||||
| Wed | Apr | 20 | The Pi-Calculus | ||||
| Thu | Apr | 21 | Storage Management | Part XIV, Ch. 31 | |||
| |
|||||||
| Tue | Apr | 26 | The Curry-Howard Isomorphism | ||||
| Wed | Apr | 27 | Linear Logic and Linear Types | ||||
| Thu | Apr | 28 | The Curry-Howard Isomorphism | ||||
| Fri | Apr | 29 | Assignment 8 Due | ||||
| |
|||||||
| TBA | Assignment 8 Presentations | ||||||
| |
|||||||
| TBA | Final Exam | ||||||
[ Home | Schedule | Assignments | Software | Resources ]