# Month Date Day Topic Homework Assigned Optional Texts Optional Notes
1 May 9 Mon Racket & Recursion Homework 1 Chs 1 & 2, SAOP Ch 4, SAOP  
2 May 10 Tue letrec, quasiquote & match   Ch 5.1-5.2, SAOP  
3 May 11 Wed free and bound variables, lexical address Homework 2   Wand’s notes (Sections 4.1-4.2)
4 May 12 Thu Intro. to Interpreters   Chs 2 & 3, EOPL  
5 May 16 Mon Rep. Independence wrt Environments, Closures Homework 3   in-class RI Notes RI Interpreter
6 May 17 Tue ≡α/β/η, reductions, universality of λ-calc     TAPL 5.2
7 May 18 Wed Dynamic and Lexical Scope Homework 4   Wand’s notes (Revisit section 4.1)
8 May 19 Thu Higher-Order Abstraction & Primitive Recursion   Ch 7, SAOP ack.rkt , ack-etc.rkt
9 May 23 Mon Parameter-Passing Style Homework 5 Ch 4.5, EOPL call-by notes in-class REPL in-class notes
10 May 24 Tue Intro to continations and CPS Homework 6 Chs 16 & 17, SAOP, Ch 6.1-6.3 EOPL, 4.2 cps notes , cps lecture
11 May 25 Wed Exam Review      
12 May 26 Thu Exam 1      
NC May 30 Mon NC      
13 May 31 Tue Re-intro to continations and CPS   Chs 16 & 17, SAOP, Ch 6.1-6.3 EOPL, 4.2 cps notes , cps lecture
14 June 1 Wed CPS/CPS interpreters Homework 7, Pt 1 Ch 5.1, EOPL  
15 June 2 Thu Rep. independence wrt continuations Homework 7   ri-k, how to ri k
16 June 6 Mon Registerization & Trampolining Homework 8 Ch 5.2, EOPL, Ch 5.3, EOPL registerization notes reg and tramp
17 June 7 Tue Macros   Ch 14, SAOP Syntax-rules for the Merely Eccentric class-macros
18 June 8 Wed ParentheC Homework 9   ParentheC pc2c.rkt parenthec.rkt xform code
19 June 9 Thu Exam Review      
20 June 13 Mon Exam 2 Bonus    
21 June 14 Tue OOP Homework 10 Ch 12, SAOP  
22 June 15 Wed Types     Type rules explained Pfenning’s notes on CH
22 June 16 Thu Type Inference Homework 11    
NC June 20 Mon NC      
23 June 21 Tue Monads      
24 June 22 Wed More Monads      
25 June 23 Thu Closing Lecture      

Texts

EOPL “Essentials of Programming Languages”
SAOP “Scheme and the Art of Programming”