Schedule
Date |
Topic | Notes |
1/12 |
Introduction | Hw 1 out |
1/14 |
BNF and ML syntax | |
1/16 |
ML syntax and recursive functions | Hw 1 (Part I) due |
1/19 |
No Class - MLK holiday | |
1/21 |
ML datatypes | |
1/23 |
Map/Fold | Hw 1 (Part II) due |
1/26 |
No Class | |
1/28 |
Side effects | Hw 2 out |
1/30 |
Modules in ML
(code examples from class) |
|
2/2 |
Static scoping | |
2/4 |
Substitution semantics for Mini-Scheme | |
2/6 |
Capture-avoiding substitution | Hw 2 due |
2/9 |
Lambda Calculus Why of Y |
Hw 3 out |
2/11 |
More lambda calculus and evaluation-based interpreter | |
2/13 |
Midterm I (review sheet) | |
2/16 |
Evaluation-based interpreter, environments (EOPL 3.5) | |
2/18 |
Recursive definitions (EOPL 3.6) | |
2/20 |
Mutation (EOPL 3.7) | |
2/23 |
Mutation and store passing | Hw 3 due/ Hw 4 out |
2/25 |
More store passing | |
2/27 |
Parameter passing (EOPL 3.8) | |
3/1 |
Call-by-need | |
3/3 |
Call-by-reference | |
3/5 |
Rescheduled to 3/16 | Hw 4 due |
3/8 |
Spring break! | |
3/10 |
||
3/12 |
||
3/15 | Types (EOPL 4.1) | Hw 5 out |
3/16 |
Designing a type checker (EOPL 4.2) | TUESDAY makeup |
3/17 |
Type soundness | |
3/19 |
Midterm II (review sheet) | |
3/22 |
Type soundness | |
3/24 |
Type soundness | |
3/26 |
Type soundness | |
3/29 |
Abstraction (EOPL 4.3) | Hw 5 due/Hw 6 out |
3/31 |
Implementing Lettype (ML implementation) |
|
4/2 |
Type inference (EOPL 4.4) | |
4/5 |
Type inference | Hw 6 due |
4/7 |
Let polymorphism | Hw 7 out |
4/9 |
Let polymorphism | |
4/12 |
Value restriction/Tail recursion | |
4/14 |
CPS interpreter (EOPL 7.1) | |
4/16 |
CPS interpreter (ML implementation) |
Hw 8 out |
4/19 |
Exceptions (EOPL 7.4) (ML implementation) |
Hw 7 due |
4/21 |
Multithreading (EOPL 7.5) (ML implementation) |
|
4/23 |
Review for final | Hw 8 due |
5/5 |
Final Exam - 1:30-3:30 - MEYH B4 (Review sheet) |
Current standings |