

Date 
Topic 
Reading 
Assigned 
Due 
1 
W 
Jan 21 
Introduction to course. 
Chapter 1, 2 of AoPL 


2 
M 
Jan 26 
Topdown Parsing 



3 
W 
Jan 28 
Bottomup Parsing 

Task #1: Get started running Haskell (not graded) 


M 
Feb 02 
Haskell Introduction 
* Haskell
Platform 
HW#0 

4 
W 
Feb 04 
More Haskell 



5 
M 
Feb 09 
More Haskell  Type classes 

HW #1A 

6 
W 
Feb 11 
Expressions and substitution 
Chapter 3 of AoPL 
HW
#2: Basic Interpreter: 
HW #1B 
7 
M 
Feb 16 
Firstclass functions 
Chapter 4 of AoPL 


8 
W 
Feb 18 
Closures 
Chapter 4.5 of AoPL 
HW
#3: FirstClass Functions and Patterns 
HW #2 
9 
M 
Feb 23 
Environment Diagrams 
Chapter 4.6 of AoPL 


10 
W 
Feb 25 
Closures and Environments 

HW #3 

11 
M 
Mar 02 
Recursion and fixed points 
Chapter 5 of AoPL 


12 
W 
Mar 04 
Error Propagation 
Chapter 6.1 of AoPL 
HW #5: Error Handling (Exercise 6.1 and 6.2 of AoPL) 
HW#4 
13 
M 
Mar 09 
Data Abstraction & Representing data as functions 
Chapter 4.4.3, 4.4.5 of AoPL 


14 
W 
Mar 11 



HW#5 Due 
15 
M 
Mar 16 
Spring Break 




W 
Mar 18 
Spring Break 




M 
Mar 23 
Midterm 



16 
W 
Mar 25 
Mutable State (part 1) 
Chapter 6.2 of AoPL 


17 
M 
Mar 30 
Mutable State (part 2) 
Chapter 6.3 of AoPL 


18 
W 
Apr 01 
Monads guest lecture 



19 
M 
Apr 06 
Objects 
On
Understanding Data Abstraction, Revisited (paper) 


20 
W 
Apr 08 
Inheritance 

HW#6 due 

21 
M 
Apr 13 
JavaScript monad 



22 
W 
Apr 15 
Typing 

HW#8 JavaScript 
HW#7 Due 
23 
M 
Apr 20 
Typing 



24 
W 
Apr 22 
Type Inference 



25 
M 
Apr 27 
Partial Evaluation 
* Haskell
code 
HW #9 Typing 
HW#8 Due 
26 
W 
Apr 29 
Partial Evaluation part 2 



27 
M 
May 04 




28 
W 
May 06 



HW#9 Due 