| Week |
Topic |
Reading |
Notes |
| 1 |
introduction; ML |
introduction
to ML
using
SML/NJ
Pierce 4
|
course-intro,
ML-intro,
intro2
|
| 2 |
inductive definitions; syntax, scope, substitution |
Pierce (skim 2),3,5 |
inductive defs,
lambda calculus |
| 3 |
typed lambda calculus, MinML |
Pierce 1,8 |
dynamics,
statics |
| 4 |
type safety, typing data structures |
Pierce 9, 11 |
safety,
sums & products |
| 5 |
recursive types, exceptions |
Pierce 20-20.2; Pierce 14 |
recursive
types, exceptions |
| 6 |
references and stateful programming
languages |
Pierce 13; Harper 10 |
references,
tinyC |
| mid-term break |
|
|
|
| 7 |
midterm handed
out;
dynamic typing; polymorphism
|
Harper 24; Pierce 23 |
dynamic
typing; polymorphism |
| 8 |
existentials; type inference |
Pierce 24; Pierce 22 |
existential
types; type inference |
| 9 |
type inference; subtyping |
Pierce 22; Pierce 15 |
subtyping |
| 10 |
algorithmic subtyping |
Pierce 16 |
algorithmic subtyping |
| 11 |
Java |
Pierce 19 |
FJ;
Java |
| 12 |
continuations; linear typing |
Harper ; Walker |
continuations; continuations 2; |