Schedule (subject to change)

EOPL = Essentials of Programming Languages, 2nd edition
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