...
Week | Day | Date | Lecture Topic and Resources | Work Assigned | Work Due | |||
---|---|---|---|---|---|---|---|---|
1 | Tu | Aug 27 | Motivation and the Elements (Constants) of Racket | HTDP Part 1 (Ch 1-8) | Sep 03 | |||
Th | Aug 29 | [Canceled for Hurricane Laura] | Sep 05 | |||||
2 | Tu | Sep 01 | Conditionals, Function Definitions and Computation by Reduction | Homework 1 Review Ch 8 HTDP Part 2 (Ch 9-10) | Sep 08 | |||
3 | Th | Sep 03 | The Program Design Recipe for Racket focusing on recursion on processing lists and natural numbers | Preface, 9.4 HTDP Part 2 (Ch 11-13) | Sep 10 | |||
4 | Tu | Sep 08 | Data Definitions, Data-driven Structural Recursion, and Help Functions | Homework 2 HTDP Part 3 | Sep 15 | |||
5 | Th | Sep 10 | Mutually Recursive Definitions | HTDP Ch 15-17 | Sep 17 | |||
6 | Tu | Sep 15 | Generative Recursion | Homework 3 HTDP Parts 5-6 | Sep 22 | |||
7 | Th | Sep 17 | Accumulators and Tail Recursion | HTDP ? | Sep 26 | |||
8 | Tu | Sep 19
| Functions as Values and Anonymous Functions | Homework 4!* | Oct 6 | |||
9 | Th | Sep 24 | Local Definitions and Lexical Scope | |||||
10 | Tu | Sep 29 | Abstracting Computational Patterns as Functions | Homework 5*5# | ||||
11 | Th | Oct 01 | Macros and Lazy Evaluation;Memoization; Review; Functional Design Patterns in OOP | |||||
12 | Tu | Oct 06 | Java Design Recipe: OOP as an Extension of FPMemoization | Homework 6 | Oct | |||
13 | Th | Oct 08 | Functional JavaRacket Review | Mid-term [Oct 09[] | ||||
| Tu | Oct 13 | Midterm Recess (no classes) | |||||
13 | Th | Oct 15Core Haskell | Functional Design Patterns in OOP | Homework 2 | ||||
914 | Tu | Oct 22 | Java Design Recipe, Data-driven Structural Recursion | Homework 87 | Oct 29 | |||
15 | Th | Oct 24 | Anonymous class instances vs anonymous functions | |||||
1016 | Tu | Oct 29 |
| Functional Java & OOP as an Extension of FP | Homework 8* | Nov 12 | ||
17 | Th | Oct 31 | Pure Lambda Calculus; Call-by-value vs call-by-name | |||||
1118 | Tu | Nov 05 |
| Typed Lambda Calculus | Homework 9# | Nov 12 | ||
19 | Th | Nov 07 | Polymorphic Lambda Calculus & Implicitly Polymorphic Lambda Calculus | Homework 4 | Homework 3 | |||
2012 | Tu | Nov 12 | Core Haskell (call-by-name) | Homework 10 | Nov 19 | |||
21 | Th | Nov 14 | Haskell Pattern Matching | |||||
1322 | Tu | Nov 19 | Haskell Type Classes | Homework 11 | Dec 16 | |||
23 | Th | Nov 21 | Racket letcc; Semantics of Haskell Exceptions | Homework 5 Homework 4 |
* Lectures slides not yet updated from last year are marked with an asterisk.