...
Week | Day | Date | Lecture Topic and Resources | Work Assigned | Work Due | ||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Tu | Aug 23 | Motivation and the Elements (Constants) of Racket | Skim HTDP First Edition, Part 1 (Ch 1-8), Part 2 (Ch 9-10) | Sep 01 | |||||||
Th | Aug 25 | Conditionals, Function Definitions and Computation by Reduction | Sep 03 | ||||||||
Tu | Sep 01 | Conditionals, Function Definitions and Computation by Reduction | Review Ch 8 HTDP Part 2 (Ch 9-10) | Sep 08 | |||||||
3 | Th | Sep 03 | The Program Design Recipe for Racket focusing on using recursion to process lists and natural numbers | Preface, 9.4 HTDP Part 2 (Ch 11-13) | Sep 10 | ||||||
Tu | Sep 0806 | Data Definitions, Data-driven Structural Recursion, | HTDP Part 3 | Sep 15 | |||||||
5 | Th | Sep 1008 | Mutually Recursive Definitions and Help Functions | HTDP Ch 15-17 | Sep 1715 | ||||||
Tu | Sep 1513 | Local Definitions and Lexical Scope | HTDP Parts 5-6 | Sep 22 | |||||||
Th | Sep 1715 | Lambda the Ultimate and Reduction Semantics | LawsOfEvaluation | Sep 2622 | |||||||
8 | Tu | Sep 1920
| Functional Abstraction and Polymorphism | Oct | 6Sep 29 | ||||||
9 | Th | Sep 2422 | Functions as Values | Homework 4 | Oct 5Sep 29 | ||||||
10 | Tu | Sep 2927 | Generative (Non-structural) Recursion
| Oct 6 | |||||||
11 | Th | Oct 01Sep 29 | Lazy Evaluation and Non-strict Constructors | Homework 5* | Oct 11 | ||||||
12 | Tu | Oct 0604 | Techniques for Implementing Lazy Evaluation | Homework 5* | Oct 14 | ||||||
13 | Th | Oct 0806 | A Glimpse at Imperative Racket and Memoization | Sample Exam | |||||||
| Tu | Oct 13 | Racket Review | Sample Exam11 | Fall Recess | ||||||
13 | Th | Oct 1513 | On to Java! | OO Design Notes | Fri | Oct 16 | Midterm | ||||
Tu | Oct 2218 | Adapting the HTDP Design Recipe to Java Midterm (Through Lecture 13 and HW 5) 7-10pm | Homework 6 | Oct 2725 | |||||||
15 | Th | Oct 2420 | Higher-order Functional Programming in Java | Oct 31 | |||||||
16 | Tu | Oct 2925 | Four Key Idioms for Encoding FP in Java | Homework 7 | Nov 61 | ||||||
17 | Th | Oct 3127 | The Singleton and Visitor Patterns | ||||||||
18 | Tu | Nov 0301 | Java Generics and Their Role in FP in Java | Homework 8* | Nov 1610 | ||||||
19 | Th | Nov 0503 | Functional Rust IThe Strategy Pattern: Functions as Arguments in Java | ||||||||
20 | Tu | Nov 1008 | Functional Rust IICore Haskell (call-by-name, lazy constructors) (Agnishom) | Nov 15 | |||||||
21 | Th | Nov 12Haskell Pattern Matching (Agnishom)10 | OO Rust Using Only Traits | Homework 9 | Nov 19 | ||||||
22 | Tu | Nov 1715 | Rust ...Haskell Type Classes (Agnishom) | Dec 16 | |||||||
23 | Th | Nov 17 | Rust ...
| Homework 10 | Nov 29 | ||||||
24 | Tu | Nov | 1922 | Rust ... | Homework 11* | Dec 2 | |||||
25 | Tu | Nov 29 | Rust Concurrency | ||||||||
26 | Th | Dec 1 | Future of FP | Haskell Monads (Agnishom) | Final Project** |
*Assignments marked with * are double assignments that count twice as much as regular assignments. **indicates the project in lieu of a final examination.
...