...
Lecture Schedule (In Progress)
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 | ||
Tu | Sep 19 | Functional Abstraction and Polymorphism | |||
9 | Th | Sep 21 | Functions as Values | Homework 4 | Sep 28 |
10 | Tu | Sep |
26 | Generative (Non-structural) Recursion | Homework 5 (long)* | Oct 11 |
11 | Th | Sep |
28 | Lazy Evaluation and Non-strict Constructors |
12 | Tu | Oct |
03 | Techniques for Implementing Lazy Evaluation | ||
13 | Th | Oct |
05 | A Glimpse at Imperative Racket and Memoization | Sample Exam | |
Tu | Oct |
10 | Fall Recess |
14 | Th | Oct |
12 | On to Java! Midterm (Through Lecture 13 and HW 5) 7-10pm | Oct 18 | |
Tu | Oct |
17 | Adapting the HTDP Design Recipe to Java |
Midterm (Through Lecture 13 and HW 5) 7-10pm
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.
...