

Date 
Topic 
Reading 
Assigned 
Due 
1 
T 
Jan 14 
Introduction to course 
Chapter 1, 2 of AoPL 


2 
Th 
Jan 16 
Topdown Parsing 



3 
T 
Jan 21 
Bottomup Parsing 


HW#0 

Th 
Jan 23 
Haskell Introduction 
* Haskell
Platform 
Task #1: Get started running Haskell (not graded) 

4 
T 
Jan 28 
NO CLASS – bad weather 



5 
Th 
Jan 30 
More Haskell  Type classes 



6 
T 
Feb 04 
Expressions and substitution 
Chapter 3 of AoPL 
HW
#2: Basic Interpreter: 
HW #1 
7 
Th 
Feb 06 
NO CLASS – bad weather 



8 
T 
Feb 11 
Firstclass functions 
Chapter 4 of AoPL 


9 
Th 
Feb 13 
Closures 
Chapter 4.5 of AoPL 
HW
#3: FirstClass Functions and Patterns 
HW #2 
10 
T 
Feb 18 
Data Abstraction & Representing data as functions 
Chapter 4.4.3, 4.4.5 of AoPL 


11 
Th 
Feb 20 
Environment Diagrams 
Chapter 4.6 of AoPL 


12 
T 
Feb 25 
Closures and Environments 


HW #3 
13 
Th 
Feb 27 
Recursion and fixed points 
Chapter 5 of AoPL 


14 
T 
Mar 04 
Error Propagation 
Chapter 6.1 of AoPL 


15 
Th 
Mar 06 
Mutable State (part 1) 
Chapter 6.2 of AoPL 

HW#4 

T 
Mar 11 
Spring Break 




Th 
Mar 13 
Spring Break 



16 
T 
Mar 18 
Midterm 



17 
Th 
Mar 20 
Mutable State (part 2) 
Chapter 6.3 of AoPL 
HW #5: Error Handling (Exercise 6.1 and 6.2 of AoPL) 

18 
T 
Mar 25 
Objects 
On
Understanding Data Abstraction, Revisited (paper) 


19 
Th 
Mar 27 
No Class 



20 
T 
Apr 01 
Inheritance 



21 
Th 
Apr 03 
Typing 


HW#5 Due 
22 
T 
Apr 08 
Typing 



23 
Th 
Apr 10 
Type Inference 



24 
T 
Apr 15 
Partial Evaluation 
* Haskell
code 


25 
Th 
Apr 17 
JavaScript monad 



26 
T 
Apr 22 
Partial Evaluation part 2 


HW#6
due 
27 
Th 
Apr 24 




28 
T 
Apr 29 




29 
W 
May 1 



HW#7 Due May 2 at 5pm 