...
General Information
Course Syllabus | |||||||||||||||||||||
Homework Submission Guide | |||||||||||||||||||||
Office Hours |
| ||||||||||||||||||||
Textbooks | There is no required textbook. We will follow the pedagogic approach of "How to Design Programs" and extend it to other languages. We will also draw material from a variety of sources, including:
| ||||||||||||||||||||
Recommended Videos | |||||||||||||||||||||
Development Environment |
|
Lecture Schedule (
...
In Progress)
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 | Sep 03 |
Th | Aug 29 | Conditionals, Function Definitions and Computation by Reduction | Homework 1 | Sep 05 | |
2 | Tu | Sep 03 | The Program Design Recipe for Racket | HTDP Part 2 | Sep 10 |
Th | Sep 05 | Inductively Defined Data and Structural Templates | Homework 2 | Sep 12 | |
3 | Tu | Sep 10 | Functions as Data and Customizers | HTDP Part 3 | Sep 17 |
Th | Sep 12 | Nameless Functions | Homework 2 | Sep 19 | |
4 | Tu | Sep 17 | Generative Recursion | HTDP Parts 5-6 | Sep 24 |
| Th | Sep 19 | Accumulators | Homework 3* | Sep 26 |
5 | Tu | Sep 24 | Macros and Lazy Evaluation | ? | |
| Th | Sep 26 | Abstract Syntax and Term Rewriting | Homework 4* | |
6 | Tu | Oct 01 | Functional Design Patterns in OOP | ||
| Th | Oct 03 | OOP as an Extension of FP | Homework 5 | |
7 | Tu | Oct 08 | Typed Lambda Calculus | ||
| Th | Oct 10 | Polymorphic Lambda Calculus | ||
8 | Tu | Oct 15 | Midterm Recess (no classes) | ||
| Th | Oct 17 | Homework 3 | Homework 2 | |
9 | Tu | Oct 22 | Monads, For-expression desugaring | ||
| Th | Oct 24 | Operators, Accumulators | ||
10 | Tu | Oct 29 | Video: Growing a Language, by Guy L. Steele, Jr. | ||
| Th | Oct 31 | |||
11 | Tu | Nov 05 | |||
| Th | Nov 07 | Homework 4 | Homework 3 | |
12 | Tu | Nov 12 | Traits and Mixins | ||
| Th | Nov 14 | |||
13 | Tu | Nov 19 | State Monad | ||
| Th | Nov 21 | Video: What to Leave Implicit, by Martin Odersky | Homework 5 | Homework 4 |
14 | Tu | Nov 26 | No Class | ||
| Th | Nov 28 | Thanksgiving Holiday (no classes) | ||
15 | Tu | Dec 03 | Course Wrap-Up | ||
Th | Dec 05 | Exam 2 (in class) | Homework 5 | ||
16 | Tu | Dec 10 | Study Day (no classes) | ||
| Sat | Dec 14 | Final exam/project date scheduled by university |
...