Syllabus
Week |
| Topic |
| ||
| ||
| ||
| Readings: 3.1, 3.3, 3.4, 3.5, 4.3, 4.4, 4.5, 5.4, 5.7, 4.6, 5.8, 6.1, 3.6 | |
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| ||
| Readings: 3.1, 3.4, 3.6, 4.6, 5.8, 6.1, 9, 11, 15, 16.6, 19.4, 20, 26, 32, 33.1 | |
| ||
| Readings: none | |
| ||
| Readings: none | |
| ||
| Readings: none |
The topics are linked to detailed weekly lecture plans below. The readings point into the on-line version of the text book.
You are primarily responsible for the readings. The lectures will help you understand those and will occasionally add highly pragmatic tips. But, the weekly homeworks and the exams will cover the reading material.
A semester tends to unfold in unpredictable ways, meaning the syllabus is subject to change. The most likely change concerns the last two weeks, which cover material that varies from semester to semester. Extra-credit homeworks, if any, will be based on this material.
Details
Homeworks are due Tuesdays at 9pm.
| ||||||
09/08 |
| `hello world' | ||||
09/09 |
| Algebra and Arithmetic, Information vs Data | ||||
Lab 1 | ||||||
| ||||||
| ||||||
09/13 |
| Designing Functions: the Overview | ||||
09/14 |
| Homework due at 9pm |
| |||
09/15 |
| Designing Functions: Some Practice | ||||
09/16 |
| Desiging Programs: the Basics | ||||
Lab 2 | ||||||
| ||||||
| ||||||
Midterm coming up: 09/22 @ 10:30am-11:35am | ||||||
09/20 |
| Designing Programs: Some Practice | ||||
09/21 |
| Homework due at 9pm |
| |||
09/22 |
| Exam 0: are you better off In Regular Fundamentals I? | ||||
09/23 |
| Representing Arbitrarily Large Data | ||||
Lab 3 | ||||||
| ||||||
| ||||||
09/27 |
| Designing Functions: Arbitrarily Large Data | ||||
09/28 |
| Homework due at 9pm |
| |||
09/29 |
| Arbitrarily Large Data: Practice Design | ||||
09/30 |
| Designing Functions via Composition | ||||
Lab 4 | ||||||
| ||||||
| ||||||
10/04 |
| Designing Programs: Arbitrarily Large Data | ||||
10/05 |
| Homework due at 9pm |
| |||
10/06 |
| Local Definitions | ||||
10/07 |
| Similar Functions & Functions As Values | ||||
Lab 5 | ||||||
| ||||||
| ||||||
10/11 |
| Columbus Day | ||||
10/12 |
| Homework due at 9pm |
| |||
10/13 |
| Designing (with) Abstractions | ||||
10/14 |
| Designing (with) Abstractions: Practice | ||||
Lab 6 | ||||||
| ||||||
| ||||||
Midterm coming up: 10/21 @ 6:00-9:00pm | ||||||
10/18 |
| Designing with Abstractions: More Practice | ||||
10/19 |
| Homework due at 9pm |
| |||
10/20 |
| Designing Programs: S-expressions | ||||
10/21 |
| Designing Programs: Trees | ||||
Lab 7 | ||||||
| ||||||
| ||||||
10/25 |
| Designing Programs: Binary Search Trees | ||||
10/26 |
| Homework due at 9pm |
| |||
10/27 |
| Designing for Multiple Complex Arguments | ||||
10/28 |
| Designing for Multiple Complex Arguments, Practice | ||||
Lab 8 | ||||||
| ||||||
| ||||||
11/01 |
| Enforcing Signatures | ||||
11/02 |
| Homework due at 9pm |
| |||
11/03 |
| Designing Client-Server Programs | ||||
11/04 |
| Graphs with Generative Recursion and Accumulators | ||||
Lab 9 | ||||||
| ||||||
| ||||||
11/08 |
| Designing Generative Recursive Functions | ||||
11/09 |
| Homework due at 9pm |
| |||
11/10 |
| Designing Generative Recursion, Practice | ||||
11/11 |
| Veterans Day | ||||
Lab 10 | ||||||
| ||||||
| ||||||
11/15 |
| The Need For Accumulator Design | ||||
11/16 |
| Homework due at 9pm |
| |||
11/17 |
| More Practice with Accumulators | ||||
11/18 |
| Design Review | ||||
Lab 11 | ||||||
| ||||||
| ||||||
11/22 |
| Typed Programming Languages | ||||
11/23 |
| Homework due at 9pm |
| |||
11/24 |
| Thanksgiving | ||||
11/25 |
| Thanksgiving Day | ||||
| ||||||
| ||||||
Midterm coming up: 11/30 @ 6:00-9:00pm | ||||||
11/29 |
| Type Checking TypeLang | ||||
11/29 |
| Homework due at 6pm, to be done individually |
| |||
12/01 |
| Design of StackLang | ||||
12/02 |
| Interpreter for StackLang | ||||
Lab 12 | ||||||
| ||||||
| ||||||
12/06 |
| Compiling TypeLang to StackLang | ||||
12/08 |
| Compiling TypeLang to StackLang II |
| |||
|