'(1 2 3)
at the prompt.
Date | Topic | Required Reading | Notes | Assignments Out | Slides |
---|---|---|---|---|---|
8/24 | Introduction | code | slides | ||
8/29 | Functions, pairs, lists | code | slides | ||
8/31 | Lists, box-and-pointer diagrams | code | slides | ||
9/5 | Recursive function practice | code partial solutions |
Project 1, due on Moodle 9/13, 11:59pm | slides | |
9/7 | Local bindings, benefits of no mutation | code | slides | ||
9/12 | Tail recursion | code | slides | ||
9/14 | First class functions I | code | slides | ||
9/19 | First class functions II | code | slides | ||
9/21 | Practice | Project 2, due on Moodle Wed 10/4, 11:59pm | |||
9/26 | Motivation and foldr | motivation slides foldr slides |
|||
9/28 | Lexical scope and environment diagrams | code | slides | ||
10/3 | Lexical scope and environment diagrams II | code | slides | ||
10/5 | Lexical vs dynamic scope, currying | code | slides | ||
10/10 | Closure idioms: ADTs, introduce mutation | code | slides | ||
10/12 | Delayed evaluation and streams | code | Project 3, due on Moodle Mon 10/30, 11:59pm | slides | |
10/17 | Fall break | ||||
10/19 | Review for midterm | ||||
10/24 | Midterm | ||||
10/26 | More streams & practice | slides | |||
10/31 | Stream wrapup, intro to proj4 | code | Project 4, due on Moodle Tue 11/14, 11:59pm | slides | |
11/2 | Introduction to Java | code | slides | ||
11/7 | Java collections & practice | handout, lab | (see previous slides) | ||
11/9 | Java exceptions & threading | code | Project 5, due on Moodle Tue 11/21, 5:00pm | slides | |
11/14 | Java threading II | code | (see previous slides) | ||
11/16 | Late binding and dynamic dispatch | code | slides | ||
11/21 | Interpreters I | code | Project 6, due on Moodle Mon 12/4, 11:59pm | slides | |
11/23 | Thanksgiving break | ||||
11/28 | Interpreters II | start code end code | (see previous slides) | ||
11/30 | Event-driven programming | code | Project 7, due on Moodle Wed 12/13, 5:00pm | slides | |
12/5 | Victory lab | slides |