|
15-312 Foundations of Programming Languages
|
Date | Lecture or Recitation | Notes | Additional Reading | Code | Assignment Due | |||
---|---|---|---|---|---|---|---|---|
|
||||||||
Tue | Aug | 31 | Overview | slides | code | |||
Wed | Sep | 1 | Concrete Syntax | |||||
Thu | Sep | 2 | Inductive Definitions | notes | Ch.1; Ch.3 | |||
|
||||||||
Tue | Sep | 7 | Abstract Syntax | notes | Ch.4 | |||
Wed | Sep | 8 | Rule Induction | |||||
Thu | Sep | 9 | Static and Dynamic Semantics | notes | Chs.5-7 | Assignment 1 | ||
|
||||||||
Tue | Sep | 14 | A Functional Language | notes | Ch.9 | |||
Wed | Sep | 15 | De Bruijn Representation | |||||
Thu | Sep | 16 | Type Safety | notes | Chs.9,10 | |||
|
||||||||
Tue | Sep | 21 | Progress | notes | Ch.10 | |||
Wed | Sep | 22 | Miscellaneous | |||||
Thu | Sep | 23 | Aggregate Data Structures | notes | Ch.19.1-2 | Assignment 2 | ||
|
||||||||
Tue | Sep | 28 | An Abstract Machine | notes | Ch.11.1 | |||
Wed | Sep | 29 | Adding New Types to MinML | |||||
Thu | Sep | 30 | Continuations | notes | Chs.12,13 | code | Assignment 3 | |
|
||||||||
Tue | Oct | 5 | Parametric Polymorphism | notes | Ch.20 | |||
Wed | Oct | 6 | Continuations | |||||
Thu | Oct | 7 | Data Abstraction | notes | Ch.21 | |||
|
||||||||
Tue | Oct | 12 | Recursive Types | notes | Ch.19.3 | |||
Wed | Oct | 13 | Review | |||||
Thu | Oct | 14 | Midterm Exam (in class) | Assignment 4 | ||||
|
||||||||
Tue | Oct | 19 | Subtyping | notes | Ch.26 | |||
Wed | Oct | 20 | Midterm Solution Review | |||||
Thu | Oct | 21 | Bidirectional Type Checking | notes | none | Assignment 5 | ||
|
||||||||
Tue | Oct | 26 | Mutable Storage | notes | Chs.14,15 | |||
Wed | Oct | 27 | Coercion Examples | |||||
Thu | Oct | 28 | Monadic Input and Output | notes | none | |||
|
||||||||
Tue | Nov | 2 | Records and Variants | notes | Pierce Ch.11 | |||
Wed | Nov | 3 | Monads | |||||
Thu | Nov | 4 | An Object-Oriented Language I | notes | Assignment 6 | |||
|
||||||||
Tue | Nov | 9 | An Object-Oriented Language II | notes | ||||
Wed | Nov | 10 | OOP and EML | |||||
Thu | Nov | 11 | Storage Management | notes | Assignment 7 | |||
|
||||||||
Tue | Nov | 16 | Call-by-Need and Futures | notes | ||||
Wed | Nov | 17 | Storage Management Examples | |||||
Thu | Nov | 18 | The Curry-Howard Isomorphism | notes | ||||
|
||||||||
Tue | Nov | 23 | No Lecture (Project Day) | |||||
Wed | Nov | 24 | No Classes (Thanksgiving Holiday) | |||||
Thu | Nov | 25 | No Classes (Thanksgiving Holiday) | |||||
|
||||||||
Tue | Nov | 30 | Program Equivalence | notes | ||||
Wed | Dec | 1 | ||||||
Thu | Dec | 2 | Concurrent Processes | notes | Assignment 8(a) | |||
|
||||||||
Tue | Dec | 7 | The Pi-Calculus and Concurrent ML | notes | code | |||
Wed | Dec | 8 | ||||||
Thu | Dec | 9 | Dependent Types | none | Assignment 8(b) | |||
|
||||||||
Mon | Dec | 13 | Final Exam, 5:30pm-8:30pm, HH B131 |
[ Home | Schedule | Assignments | Software | Resources ]
fp@cs
Frank Pfenning