...
Tu | Aug 22 | Motivation and the Elements (Constants) of Racket | Skim HTDP First Edition, Part 1 (Ch 1-8), Part 2 (Ch 9-10) | |||
Th | Aug 24 | Conditionals, Function Definitions, and Computation by Reduction | ||||
Tu | Aug 29 | Conditionals, Function Definitions, and Computation by Reduction | Review Ch 8 HTDP Part 2 (Ch 9-10) | Sep 04 | ||
3 | Th | Aug 31 | The Program Design Recipe for Racket, which focuses on using recursion to process lists and natural numbers | Preface, 9.4 HTDP Part 2 (Ch 11-13) | ||
Tu | Sep 05 | Data Definitions, Data-driven Structural Recursion, | HTDP Part 3 | Sep 11 | ||
5 | Th | Sep 07 | Mutually Recursive Definitions and Help Functions | HTDP Ch 15-17 | ||
Tu | Sep 12 | Local Definitions and Lexical Scope | HTDP Parts 5-6 | Sep 18 | ||
Th | Sep 14 | Lambda the Ultimate and Reduction Semantics | LawsOfEvaluation | |||
8 | Tu | Sep 19 | Functional Abstraction and Polymorphism | |||
9 | Th | Sep 21 | Functions as Values | Homework 4 | Sep 28 | |
10 | Tu | Sep 27 | Generative (Non-structural) Recursion | |||
11 | Th | Sep 29 | Lazy Evaluation and Non-strict Constructors | Homework 5 (long)* | Oct 11 | |
12 | Tu | Oct 04 | Techniques for Implementing Lazy Evaluation | |||
13 | Th | Oct 06 | A Glimpse at Imperative Racket and Memoization | Sample Exam | ||
Tu | Oct 11 | Fall Recess | ||||
13 | Th | Oct 13 | On to Java! | OO Design Notes | ||
Tu | Oct 18 | Adapting the HTDP Design Recipe to Java Midterm (Through Lecture 13 and HW 5) 7-10pm | Homework 6 | Oct 25 | ||
15 | Th | Oct 20 | Higher-order Functional Programming in Java | Oct 31 | ||
16 | Tu | Oct 25 | Four Key Idioms for Encoding FP in Java | Homework 7 | Nov 1 | |
17 | Th | Oct 27 | The Singleton and Visitor Patterns | |||
18 | Tu | Nov 01 | Java Generics and Their Role in FP in Java | Homework 8* | Nov 10 | |
19 | Th | Nov 03 | Reasoning About Functional Rust IPrograms | |||
20 | Tu | Nov 08 | Functional Rust II | Nov 15 | ||
21 | Th | Nov 10 | OO Rust Using Only Traits | Homework 9 | ||
22 | Tu | Nov 15 | Rust ... | |||
23 | Th | Nov 17 Rust ... | Homework 10 | Nov 29 | ||
24 | Tu | Nov 22Rust ... | Homework 11* | Dec 2 | ||
25 | Tu | Nov 29Rust Concurrency | ||||
26 | Th | Dec 1 | Future of FP |
*Assignments marked with * are double assignments that count twice as much as regular assignments. **indicates the project in lieu of a final examination.
...