What you need to do each week
September 5 to September 11: What you need to do
Tuesday 
Scan the syllabus 
Get the textbook Programming Languages: Build, Prove, and Compare, from Donna Cirelli 

Consider ordering the Ullman book in time for early October 

Wednesday 
Attend lecture on programming with proof systems and laws (notes, slides) 
Take a first look at CQs and homework for programming with proof systems and laws 

Thursday or Friday 
Attend recitation: Datadriven, ruledriven programming process 
Friday 
Read about the experiences of successful students, and read the tips for CS 105 students 
Pick up model solutions for recitation (after 2:30pm) 
September 12 to September 18: What you need to do
Monday 

Tuesday 
Submit CQs and homework for programming with proof systems and laws (or use an extension token to submit on Wednesday) 
Wednesday 

Take a first look at CQs and homework for operational semantics 

Thursday 
Model solutions to programming with proof systems and laws are released 
Thursday or Friday 
Attend recitation: Derivation trees, semantic rules, preview of metatheory 
Friday 
Get the takehome handout on metatheory 
Pick up model solutions for recitation (after 2:30pm) 
September 19 to September 25: What you need to do
Monday 

Tuesday 
Submit CQs and homework for operational semantics (or use an extension token to submit on Wednesday) 
Wednesday 

Thursday 
Model solutions to operational semantics are released 
Thursday or Friday 
Attend recitation: Scheme list functions, calculational proofs, functions with accumulating parameters 
Friday 
Pick up model solutions for recitation (after 2:30pm) 
September 26 to October 2: What you need to do
Monday 
Attend 1st lecture on higherorder functions (notes, slides) 
Tuesday 
Submit CQs and homework for Scheme (or use an extension token to submit on Wednesday) 
Wednesday 
Attend 2nd lecture on higherorder functions (notes, slides) 
Take a first look at CQs and homework for higherorder functions 

Thursday 
Model solutions to Scheme are released 
Thursday or Friday 
Attend recitation: Higherorder functions on lists, abstracting over comparison functions 
Friday 
Pick up model solutions for recitation (after 2:30pm) 
October 3 to October 9: What you need to do
Monday 

Tuesday 
Submit CQs and homework for higherorder functions (or use an extension token to submit on Wednesday) 
Wednesday 

Thursday 
Model solutions to higherorder functions are released 
Thursday or Friday 
Attend recitation: Searching with success and failure continuations 
Friday 
Pick up model solutions for recitation (after 2:30pm) 
October 10 to October 16: What you need to do
Monday 
No class (Indigenous Peoples' Day) 
Tuesday 
Submit CQs and homework for continuations (or use an extension token to submit on Wednesday) 
Wednesday 

Thursday 
No recitations this week 
Model solutions to continuations are released 

Friday 
No recitations this week 
October 17 to October 23: What you need to do
Monday 

Wednesday 

Thursday or Friday 
Attend recitation: Patterns and types in Standard ML 
Friday 
Pick up model solutions for recitation (after 2:30pm) 
October 24 to October 30: What you need to do
Any day 
If you haven't already, visit the instructor's office hours for five minutes (deadline is October 31). 
Monday 

Tuesday 
Submit CQs and homework for ML (or use an extension token to submit on Wednesday) 
Wednesday 

Thursday 
Model solutions to ML are released 
Thursday or Friday 
Attend recitation: Type rules and type checking 
Friday 
Pick up model solutions for recitation (after 2:30pm) 
October 31 to November 6: What you need to do
Monday 

Wednesday 

Thursday 
Submit CQs and homework for type systems (or use an extension token to submit on Friday) 
Thursday or Friday 
Attend recitation: Programming Typed uScheme or regression testing of type checker 
Friday 

Pick up model solutions for recitation (after 2:30pm) 

Saturday 
Model solutions to type systems are released 
November 7 to November 13: What you need to do
Monday 

Tuesday 
Attend recitation: Solving conjunction constraints 
Wednesday 

Thursday 
Attend recitation: Solving conjunction constraints 
Pick up model solutions for recitation (after 2:30pm) 

Friday 
No recitations (Veterans' Day) (makeup Tuesday) 
November 14 to November 20: What you need to do
Monday 

Tuesday 
Submit CQs and homework for type inference (or if you have an extension token left, use it to submit on Wednesday) 
Wednesday 

Thursday 
Model solutions to type inference are released 
Thursday or Friday 
Attend recitation: Modules: Abstraction functions, representation invariants 
Friday 
Pick up model solutions for recitation (after 2:30pm) 
November 21 to November 27: What you need to do
Monday 

Tuesday 
Submit CQs and homework for modules (or if you have an extension token left, use it to submit on Wednesday) 
Wednesday 
No class (Thanksgiving Break) 
Thursday 
Model solutions to modules are released 
November 28 to December 4: What you need to do
Monday 

Wednesday 

Thursday or Friday 
Attend recitation: Getting started with Smalltalk 
Friday 
Pick up model solutions for recitation (after 2:30pm) 
December 5 to December 11: What you need to do
Monday 

Wednesday 

Thursday or Friday 
Attend recitation: Abstract base classes, double dispatch 
Friday 
Pick up model solutions for recitation (after 2:30pm) 
December 12 to December 18: What you need to do
Monday 
Attend lecture on my answers to your questions (notes, slides) 
Tuesday 
Submit CQs and homework for Smalltalk (or if you have an extension token left, use it to submit on Wednesday) 
Thursday 
Model solutions to Smalltalk are released 