|
15-312 Foundations of Programming Languages
Schedule
- Lectures are Tuesday and Thursday, 1:30-2:50, Scaife Hall 224.
- Recitation is
- Section A, Wed 11:30-12:20, BH 235A
- Second session Wed 9:30-10:20, SH 324
-
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 |
Notes |
Additional Reading |
Code |
Assignment Due |
|
Tue | Aug | 26 |
Overview |
slides |
|
code |
|
Wed | Aug | 27 |
Concrete Syntax |
|
Part II, Ch. 3 |
|
|
Thu | Aug | 28 |
Inductive Definitions |
notes |
Part I, Ch. 1;
Part II, Ch. 3-4
|
|
|
|
Tue | Sep | 2 |
Abstract Syntax |
notes |
Part II, Ch. 4-5 |
|
|
Wed | Sep | 3 |
Rule Induction |
|
|
|
|
Thu | Sep | 4 |
Static and Dynamic Semantics |
notes |
Part II, Ch. 5.3-5.4, 6-7 |
|
Assignment 1 |
|
Tue | Sep | 9 |
A Functional Language |
notes |
Part III, Ch. 8 |
|
|
Wed | Sep | 10 |
De Bruijn Representation |
|
Part II, Ch. 5.4 |
|
|
Thu | Sep | 11 |
Type Safety |
notes |
Part III, Ch. 9.1-9.2 |
|
|
|
Tue | Sep | 16 |
Aggregate Data Structures |
notes |
Part III, Ch. 9.3 |
code |
|
Wed | Sep | 17 |
Run-time Errors |
|
|
|
|
Thu | Sep | 18 |
An Abstract Machine |
notes |
Part V, Ch. 11.1 |
|
Assignment 2 |
|
Tue | Sep | 23 |
Exceptions |
notes |
Part V, Ch. 11.2 |
|
|
Wed | Sep | 24 |
Closures |
|
|
|
|
Thu | Sep | 25 |
Exceptions and Continuations |
notes |
Part V, Ch. 12-13 |
exn, cont |
Assignment 3 |
|
Tue | Sep | 30 |
Parametric Polymorphism |
notes |
Part VIII, Ch. 20 |
|
|
Wed | Oct | 1 |
Continuations |
|
|
|
|
Thu | Oct | 2 |
Data Abstraction |
notes |
Part VIII, Ch. 21 |
code |
|
|
Tue | Oct | 7 |
Recursive Types |
notes |
Part VIII, Ch. 19.3 |
|
|
Wed | Oct | 8 |
Recursive Types |
|
|
|
|
Thu | Oct | 9 |
Mutable Storage |
notes |
Part VI, Ch. 14 |
|
Assignment 4 |
|
Tue | Oct | 14 |
Monads |
notes |
Part VI, Ch. 15 |
|
|
Wed | Oct | 15 |
Review |
|
|
|
|
Thu | Oct | 16 |
Midterm Exam (in class) |
|
sample solution |
|
|
|
Tue | Oct | 21 |
Subtyping |
notes |
Part XI, Ch. 26 |
|
|
Wed | Oct | 22 |
Subtyping |
|
|
|
|
Thu | Oct | 23 |
Type Checking |
notes |
none |
|
Assignment 5 |
|
Tue | Oct | 28 |
Storage Management |
notes |
Part XIV, Ch. 31 |
|
|
Wed | Oct | 29 |
More on Storage |
|
|
|
|
Thu | Oct | 30 |
Type Inference |
notes |
Pierce, Ch. 22 |
|
|
|
|
Tue | Nov | 4 |
Objects |
notes |
EML paper (optional) |
EML |
|
Wed | Nov | 5 |
Type Checking and Inference |
|
|
|
|
Thu | Nov | 6 |
Objects (continued) |
|
|
|
Assignment 6 |
|
Tue | Nov | 11 |
Inheritance and Subtyping |
notes |
|
|
|
Wed | Nov | 12 |
Java and EML |
|
|
|
|
Thu | Nov | 13 |
Futures |
notes |
|
code |
Assignment 7 |
|
Tue | Nov | 18 |
Program Equivalence |
notes |
|
|
|
Wed | Nov | 19 |
Concurrency |
|
|
|
|
Thu | Nov | 20 |
Concurrent Processes |
notes |
|
|
|
|
Tue | Nov | 25 |
No Lecture (Project Day) |
|
|
|
|
Wed | Nov | 26 |
No Classes (Thanksgiving Holiday) |
|
|
|
|
Thu | Nov | 27 |
No Classes (Thanksgiving Holiday) |
|
|
|
|
|
Tue | Dec | 2 |
The Pi-Calculus and Concurrent ML |
notes |
|
code |
|
Wed | Dec | 3 |
The Pi-Calculus |
|
|
|
|
Thu | Dec | 4 |
The Curry-Howard Isomorphism |
notes |
|
|
Assignment 8 |
|
Mon | Dec | 15 |
Final Exam, 5:30pm-8:30pm, WeH 5403 |
|
|
|
|
[ Home
| Schedule
| Assignments
| Software
| Resources
]
fp@cs
Frank Pfenning
|