Syllabus
Week |
| Topic |
| ||
| Readings: 2 | |
| ||
| 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 problem sets 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 problem sets, if any, will be based on this material.
Details
a
is due on
Monday, 9pm
b
is due on
Thursday, 9pm
Day |
|
| ||||
01 |
| 09/05 |
| `hello world' | ||
02 |
| 09/06 |
| Algebra and Arithmetic, Information vs Data |
| |
| ||||||
Day |
|
| ||||
03 |
| 09/10 |
| Designing Functions: the Overview |
| |
04 |
| 09/12 |
| Designing Functions: Some Practice | ||
05 |
| 09/13 |
| Desiging Programs: the Basics |
| |
Lab 2 | ||||||
| ||||||
Day |
|
| ||||
Midterm coming up: 09/19 @ 1:35-2:40pm | ||||||
06 |
| 09/17 |
| Designing Programs: Some Practice |
| |
07 |
| 09/19 |
| Exam 0: are you better Off In Regular Fundamentals I? | ||
08 |
| 09/20 |
| Representing Arbitrarily Large Data |
| |
Lab 3 | ||||||
| ||||||
Day |
|
| ||||
09 |
| 09/24 |
| Designing Functions: Arbitrarily Large Data |
| |
10 |
| 09/26 |
| Arbitrarily Large Data: Practice Design | ||
11 |
| 09/27 |
| Designing Functions via Composition |
| |
Lab 4 | ||||||
| ||||||
Day |
|
| ||||
12 |
| 10/01 |
| Designing Programs: Arbitrarily Large Data |
| |
13 |
| 10/03 |
| Local Definitions | ||
14 |
| 10/04 |
| Similar Functions & Functions As Values |
| |
Lab 5 | ||||||
| ||||||
Day |
|
| ||||
15 |
| 10/08 |
| Columbus Day | ||
16 |
| 10/10 |
| Designing (with) Abstractions | ||
17 |
| 10/11 |
| Designing (with) Abstractions: Practice |
| |
Lab 6 | ||||||
| ||||||
Day |
|
| ||||
Midterm coming up: 10/17 @ 6:00-9:00pm | ||||||
18 |
| 10/15 |
| Designing with Abstractions: More Practice |
| |
19 |
| 10/17 |
| Designing Programs: S--expressions | ||
20 |
| 10/18 |
| Designing Programs: Trees |
| |
Lab 7 | ||||||
| ||||||
Day |
|
| ||||
21 |
| 10/22 |
| Designing Programs: Binary Search Trees |
| |
22 |
| 10/24 |
| Designing for Multiple Complex Arguments | ||
23 |
| 10/25 |
| Big-bang, Universe, and Client-Server Programs |
| |
Lab 8 | ||||||
| ||||||
Day |
|
| ||||
24 |
| 10/29 |
| Designing Client-Server Programs |
| |
25 |
| 10/31 |
| Enforcing Signatures | ||
26 |
| 11/01 |
| Graphs with Generative Recursion and Accumulators |
| |
Lab 9 | ||||||
| ||||||
Day |
|
| ||||
27 |
| 11/05 |
| Designing Generative Recursive Functions |
| |
28 |
| 11/07 |
| Designing Generative Recursion, Practice | ||
29 |
| 11/08 |
| The Need For Accumulator Design |
| |
Lab 10 | ||||||
| ||||||
Day |
|
| ||||
30 |
| 11/12 |
| Veterans Day | ||
31 |
| 11/14 |
| More Practice with Accumulators | ||
32 |
| 11/15 |
| Design Review |
| |
Lab 11 | ||||||
| ||||||
Day |
|
| ||||
33 |
| 11/19 |
| Typed Programming Languages |
| |
34 |
| 11/21 |
| Thanksgiving | ||
35 |
| 11/22 |
| Thanksgiving Day | ||
| ||||||
Day |
|
| ||||
Midterm coming up: 11/27 @ 6:00-9:00pm | ||||||
36 |
| 11/26 |
| Type Checking TypeLang |
| |
37 |
| 11/28 |
| Design of StackLang | ||
38 |
| 11/29 |
| Interpreter for StackLang |
| |
Lab 12 | ||||||
| ||||||
Day |
|
| ||||
39 |
| 12/03 |
| Compiling TypeLang to StackLang | ||
40 |
| 12/05 |
| Compiling TypeLang to StackLang II |
| |
|