...
Lecture Schedule (In Progress)
Tu | Aug |
27 | Motivation and the Elements (Constants) of Racket | Skim HTDP First Edition, Part 1 (Ch 1-8), Part 2 (Ch 9-10) | |
Th | Aug |
29 | Conditionals, Function Definitions, and Computation by Reduction | ||
Tu |
Sep 03 | Conditionals, Function Definitions, and Computation by Reduction | Review Ch 8 HTDP Part 2 (Ch 9-10) | Sep |
09 | |
3 | Th |
Sep 05 | 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 |
10 | Data Definitions, Data-driven Structural Recursion, | HTDP Part 3 | Sep 11 |
5 | Th | Sep |
12 | Mutually Recursive Definitions and Help Functions | HTDP Ch 15-17 | |
Tu | Sep |
17 | Local Definitions and Lexical Scope | HTDP Parts 5-6 | Sep |
23 | ||
Th | Sep |
19 | Lambda the Ultimate and Reduction Semantics |
Laws Of Evaluation | ||
Tu | Sep |
24 | Functional Abstraction and Polymorphism | ||
Th | Sep |
26 | Functions as Values | Homework 4 |
Oct 02 | |
10 | Tu |
Oct 01 | Generative (Non-structural) Recursion | Homework 5 (long)* | Oct |
16 | |
11 | Th |
Oct 03 | Lazy Evaluation and Non-strict Constructors | ||
12 | Tu | Oct |
08 | Techniques for Implementing Lazy Evaluation | ||
13 | Th | Oct |
10 | A Glimpse at Imperative Racket and Memoization | Sample Exam | |
Tu | Oct |
15 | Fall Recess | ||
14 | Th | Oct |
17 | On to Java! Midterm (Through Lecture 13 and HW 5) 7-10 pm | Oct 23 | |||
Tu | Oct 17 | Adapting the HTDP Design Recipe to Java | |||
15 | Th | Oct 19 | Higher-order Functional Programming in Java | Homework 7 | Oct 26 |
16 | Tu | Oct 24 | Four Key Idioms for Encoding FP in Java | ||
17 | Th | Oct 26 | The Singleton and Visitor Patterns | Homework 8 | Nov 1 |
18 | Tu | Oct 31 | Java Generics and Their Role in FP in Java | ||
19 | Th | Nov 02 | Reasoning About Functional Programs | Homework 9* | Nov 8 |
20 | Tu | Nov 07 | First-order Programming Logic (an analog of ACL2 [UT Austin]) | ||
21 | Th | Nov 09 | Theorem Proving Strategies | Homework 10 | Nov 15 |
22 | Tu | Nov 14 | Hoare Logic | ||
23 | Th | Nov 16 | imperative Loop Invariants vs. Contracts for Help Functions | Homework 11 | Nov 27 |
24 | Tu | Nov 21 | Reasoning About Procedure Calls | ||
25 | Tu | Nov 28 | Hoare Logic Applied to OO Code | ||
26 | Th | Nov 30 | The Future of FP and Programming Logic |
*Assignments marked with * are double assignments that count twice as much as regular assignments.
...