...
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 HTDP Parts 5-6 | Sep 22 | ||||||
Th | Sep 1715 | Lambda the Ultimate and Reduction Semantics | LawsOfEval.pdfLawsOfEvaluation | 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 1917 | Rust ...
| Homework 10 | Nov 29 | |||||
24 | Tu | Nov 22 | 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.
...