|
15-312 Foundations of Programming Languages
Schedule
- Lectures are Tuesday and Thursday, 1:30-2:50, Wean Hall 5403.
- Recitations are
- Section A, Wed 8:30-9:20, BH 255A
- Section B, Wed 1:30-2:20, PH 226A
-
The course notes provide additional reading material.
They complement, but do not replace the lecture.
- The schedule is subject to change throughout the semester.
Date |
Lecture or Recitation |
Reading |
Code |
Assignment Due |
|
Tue | Aug | 27 |
Overview |
slides |
code |
|
Wed | Aug | 28 |
Context-Free Grammars |
Part II, Ch. 3 |
|
|
Thu | Aug | 29 |
Inductive Definitions |
Part I, Ch. 1;
Part II, Ch. 3-4;
notes |
|
|
|
Tue | Sep | 3 |
Abstract Syntax |
Part II, Ch. 4-5;
notes |
|
|
Wed | Sep | 4 |
Inductive Proofs |
|
|
|
Thu | Sep | 5 |
Static and Dynamic Semantics |
Part II, Ch. 5.3-5.4, 6-7;
notes |
|
Assignment 1 |
|
Tue | Sep | 10 |
A Functional Language |
Part III, Ch. 8;
notes |
|
|
Wed | Sep | 11 |
De Bruijn Representation |
|
|
|
Thu | Sep | 12 |
Type Safety |
Part III, Ch. 9.1-9.2;
notes |
|
|
|
Tue | Sep | 17 |
Aggregate Data Structures |
Part III, Ch. 9.3;
notes |
|
|
Wed | Sep | 18 |
Runtime Errors |
|
|
|
Thu | Sep | 19 |
An Abstract Machine |
Part V, Ch. 11.1;
notes |
|
Assignment 2 |
|
Tue | Sep | 24 |
Exceptions |
Part V, Ch. 13;
notes |
code |
|
Wed | Sep | 25 |
Escaping Exceptions |
|
examples |
|
Thu | Sep | 26 |
Continuations |
Part V, Ch. 12;
notes |
code |
Assignment 3 |
|
Tue | Oct | 1 |
Parametric Polymorphism |
Part VIII, Ch. 20;
notes |
|
|
Wed | Oct | 2 |
The Curry-Howard Isomorphism |
|
|
|
Thu | Oct | 3 |
Data Abstraction |
Part VIII, Ch. 21;
notes |
code |
|
|
Tue | Oct | 8 |
Recursive Types |
Part VIII, Ch. 19.3;
notes |
code |
|
Wed | Oct | 9 |
Recursive Types |
|
code |
|
Thu | Oct | 10 |
Mutable Storage |
Part VI, Ch. 14;
notes |
code |
Assignment 4 |
|
Tue | Oct | 15 |
Monads |
Part VI, Ch. 15;
notes |
code |
|
Wed | Oct | 16 |
Review |
|
|
|
Thu | Oct | 17 |
Midterm Exam (in class) |
sample solution |
|
|
|
Tue | Oct | 22 |
Subtyping |
Part XI, Ch. 26;
notes |
|
|
Wed | Oct | 23 |
Subtyping and Intersection Types |
|
|
|
Thu | Oct | 24 |
Bidirectional Typing |
notes |
|
Assignment 5 |
|
Tue | Oct | 29 |
Records |
Pierce, Ch. 15;
notes |
code |
|
Wed | Oct | 30 |
Monads and Objects |
|
|
|
Thu | Oct | 31 |
Objects |
Pierce, Ch. 18;
notes |
pseudo-code |
|
|
Tue | Nov | 5 |
Dynamic Typing |
Part X, Ch. 24;
notes |
code |
|
Wed | Nov | 6 |
Polymorphism in Java |
|
|
|
Thu | Nov | 7 |
Futures |
notes |
code |
Assignment 6 |
|
Tue | Nov | 12 |
Program Equivalence |
notes |
|
|
Wed | Nov | 13 |
Parallelism with Futures |
|
|
|
Thu | Nov | 14 |
Concurrent Processes |
notes |
|
Assignment 7 |
|
Tue | Nov | 19 |
The Pi-Calculus |
notes |
|
|
Wed | Nov | 20 |
Data in the Pi-Calculus |
|
|
|
Thu | Nov | 21 |
Concurrent ML |
notes |
code |
|
|
Tue | Nov | 26 |
No Lecture (Project Day) |
|
|
|
Wed | Nov | 27 |
No Classes (Thanksgiving Holiday) |
|
|
|
Thu | Nov | 28 |
No Classes (Thanksgiving Holiday) |
|
|
|
|
Tue | Dec | 3 |
Environments |
Part V, Ch. 11.2;
notes |
|
|
Wed | Dec | 4 |
Review |
|
|
|
Thu | Dec | 5 |
Storage Management |
Part XIV, Ch. 31;
notes |
|
Assignment 8 |
|
Tue | Dec | 17 |
Final Exam, 1:00-4:00, WeH 5403 |
sample solution |
|
|
|
[ Home
| Schedule
| Assignments
| Software
| Resources
]
fp@cs
Frank Pfenning
|