Syllabus
Week |
| Topic |
| ||
| ||
| ||
| Readings: 2, 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: Realm of Racket, Chapter 15 | |
| ||
| 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
Wednesday, 9pm
c
is due on
Friday, 9pm
Day |
|
| ||||
01 |
| 09/06 |
| `hello world' | ||
02 |
| 09/07 |
| Algebra and Arithmetic, Information vs Data |
| |
| ||||||
Day |
|
| ||||
03 |
| 09/11 |
| Designing Functions: the Overview |
| |
04 |
| 09/13 |
| Designing Functions: Some Practice |
| |
05 |
| 09/14 |
| Desiging Programs: the Basics |
| |
| ||||||
Day |
|
| ||||
Midterm coming up: 09/20 @ 9:15-10:20am | ||||||
06 |
| 09/18 |
| Designing Programs: Some Practice |
| |
07 |
| 09/20 |
| Exam 0: are you better Off In Regular Fundamentals I? |
| |
08 |
| 09/21 |
| Representing Arbitrarily Large Data |
| |
| ||||||
Day |
|
| ||||
09 |
| 09/25 |
| Designing Functions: Arbitrarily Large Data |
| |
10 |
| 09/27 |
| Arbitrarily Large Data: Practice Design |
| |
11 |
| 09/28 |
| Designing Functions via Composition |
| |
| ||||||
Day |
|
| ||||
12 |
| 10/02 |
| Designing Programs: Arbitrarily Large Data |
| |
13 |
| 10/04 |
| Local Definitions |
| |
14 |
| 10/05 |
| Similar Functions & Functions As Values |
| |
| ||||||
Day |
|
| ||||
15 |
| 10/09 |
| Columbus Day | ||
16 |
| 10/11 |
| Designing (with) Abstractions |
| |
17 |
| 10/12 |
| Designing (with) Abstractions: Practice |
| |
| ||||||
Day |
|
| ||||
Midterm coming up: 10/18 @ 6:00-9:00pm | ||||||
18 |
| 10/16 |
| Designing with Abstractions: More Practice |
| |
19 |
| 10/18 |
| Designing Programs: S--expressions, Trees, Forests |
| |
20 |
| 10/19 |
| Iterative Refinement: Programs as Data |
| |
| ||||||
Day |
|
| ||||
21 |
| 10/23 |
| Iterative Refinement: Arithmetic |
| |
7 Designing Functions for Mutually Recursive Data Definitions | ||||||
22 |
| 10/25 |
| Iterative Refinement: Representing Functions |
| |
23 |
| 10/26 |
| Iterative Refinement: BSL |
| |
| ||||||
Day |
|
| ||||
24 |
| 10/30 |
| Iterative Refinement: ISL with λ |
| |
25 |
| 11/01 |
| Designing For Multiple Arguments |
| |
26 |
| 11/02 |
| Designing Generative Recursive Functions |
| |
| ||||||
Day |
|
| ||||
27 |
| 11/06 |
| Designing Generative Recursion, Practice |
| |
28 |
| 11/08 |
| The Need For Accumulator Design |
| |
29 |
| 11/09 |
| Accumulators In Data: Example |
| |
| ||||||
Day |
|
| ||||
Midterm coming up: 11/15 @ 6:00-9:00pm | ||||||
30 |
| 11/13 |
| More Practice with Accumulators |
| |
31 |
| 11/15 |
| Yet More Practice with Accumulators |
| |
32 |
| 11/16 |
| Design Review |
| |
| ||||||
Day |
|
| ||||
33 |
| 11/20 |
| The Basic Anatomy of Programming Languages |
| |
34 |
| 11/22 |
| Thanksgiving Day | ||
35 |
| 11/23 |
| Thanksgiving Day | ||
| ||||||
Day |
|
| ||||
36 |
| 11/27 |
| The Anatomy of an Extensible Programming Language |
| |
37 |
| 11/29 |
| Racket's Syntax Transformers |
| |
38 |
| 11/30 |
| Racket Interposition |
| |
| ||||||
Day |
|
| ||||
39 |
| 12/04 |
| Morse Code | ||
40 |
| 12/06 |
| Mark Down |
| |
|