| Week | Dates | Topics | Readings and Important Dates |
|---|---|---|---|
| 1 | Jan. 18 | NO CLASS | |
| 2 | Jan. 23-25 | Introduction to Scheme | EOPL sections 1.1, 1.2 |
| 3 | Jan. 30-Feb. 1 | Abstraction and representation Scope and lexical address |
Last day to add: Monday,
Jan. 30 EOPL 1.3, 2.1 |
| 4 | Feb. 6-8 | Lambda calculus | EOPL 2.2 |
| 5 | Feb. 13-15 | Scanning and parsing Environment-passing interpreters |
EOPL 3.1-3.5, Appendix A |
| 6 | Feb. 20-22 | Environment-passing interpreters | EOPL 2.3, 3.6 |
| EXAM 1: February 22 | |||
| 7 | Feb. 27-March 1 | Assignments and top-level definitions Dynamic binding |
EOPL 3.7 |
| 8 | March 6-8 | Syntactic extensions (macros) | Last day to drop: Thursday, March 9 |
| S P R I N G B R E A K | |||
| 9 | March 20-22 | Type checking and type inference | EOPL 4.1-4.2, 4.4 |
| 10 | March 27-29 | Continuation-passing style | |
| 11 | April 3-5 | Continuation-passing interpreters First-order tail form |
EOPL 7.1-7.2 |
| 12 | April 10-12 | Exception handling | EOPL 7.4 |
| EXAM 2: April 12 | |||
| 13 | April 17-19 | Register machines Multithreading |
EOPL 7.3, 7.5 |
| 14 | April 24-26 | Nondeterministic evaluation | |
| 15 | May 1-3 | Lazy evaluation and streams | |
| FINAL EXAM: Thursday, May 11, 2:00 PM | |||