...
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 | Aug 30Sep 01 | Conditionals, Function Definitions and Computation by Reduction | Review Ch 8 HTDP Part 2 (Ch 9-10) | Sep 08 | |||||
3 | Th | Sep 0103 | 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 06 | Data Definitions, Data-driven Structural Recursion, | HTDP Part 3 | Sep 15 | |||||
5 | Th | Sep 08 | Mutually Recursive Definitions and Help Functions | HTDP Ch 15-17 | Sep 1715 | ||||
Tu | Sep 13 | Local Definitions and Lexical Scope | HW03.txt in GitHub Classroom Repository (private)Homework 3 HTDP Parts 5-6 | Sep 22 | |||||
Th | Sep 15 | Lambda the Ultimate and Reduction Semantics | LawsOfEvaluation | Sep 2622 | |||||
8 | Tu | Sep 20
| Functional Abstraction and Polymorphism | Oct | 6Sep 29 | ||||
9 | Th | Sep 22 | Functions as Values | Homework 4 | Oct 5Sep 29 | ||||
10 | Tu | Sep 27 | 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 | ||||||
| Tu | Oct 1311 | FP in Racket Review | ||||||
13 | Th | Oct 1513 | On to Java! | OO Design Notes | Fri | Oct 16 | Midterm | ||
14 | 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 10 | Core Haskell (call-by-name, lazy constructors) (Agnishom) | 08 | Functional Rust II | Homework 9 | Nov 15 | ||
21 | Th | Nov 12 | Haskell Pattern Matching (Agnishom) | Homework 9 | 10 | OO Rust Using Only Traits | Nov 19 | ||
22 | Tu | Nov 17 | Haskell Type Classes (Agnishom) | 15 | Rust ... | Homework 10* | Dec 2Dec 16 | ||
23 | Th | Nov 17 | Rust ...
| ||||||
24 | Tu | Nov | 1924 | Rust ... | 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.
...