Syllabus
Week |
| Topic |
| Readings |
|
| |||
|
| |||
|
| |||
|
| |||
|
| |||
|
| |||
|
| |||
|
| |||
|
| |||
|
| |||
|
| |||
|
| |||
|
| |||
|
|
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
| ||||
09/07 |
| CS and programming & `hello world' | ||
09/08 |
| Animations |
| |
| ||||
| ||||
09/12 |
| Systematic design: functions |
| |
09/14 |
| Intervals, enumerations, & conditionals, |
| |
09/15 |
| Systematic design: workd programs "finite state" |
| |
| ||||
| ||||
09/19 |
| Structure types: Posns |
| |
09/21 |
| Structure type definitions |
| |
09/22 |
| Unions |
| |
| ||||
| ||||
09/26 |
| Self-referential data definition |
| |
09/28 |
| Designing functions on lists |
| |
09/29 |
| Non-empty lists |
| |
| ||||
| ||||
Midterm coming up: 10/06 @ 6:00-9:00pm | ||||
10/03 |
| Lists in lists, structures in lists |
| |
10/05 |
| Designing with wish lists |
| |
10/06 |
| Designing with hierarchical nests of data definitions |
| |
| ||||
| ||||
10/10 |
| Columbus Day |
| |
10/12 |
| Similar functions & functions as values |
| |
10/13 |
| Designing abstractions: functions |
| |
| ||||
| ||||
10/17 |
| Designing abstractions: data definitions, signatures |
| |
10/19 |
| Existing abstractions & local definitions |
| |
10/20 |
| Designing with abstractions |
| |
| ||||
| ||||
10/24 |
| Using Abstractions, folds |
| |
10/26 |
| Using Abstractions, nested 'loops' |
| |
10/27 |
| S-expressions |
| |
| ||||
| ||||
10/31 |
| Iterative refinement: idea, small example |
| |
11/02 |
| Iterative refinement: example 1 |
| |
11/03 |
| Iterative refinement: example 2 |
| |
| ||||
| ||||
11/07 |
| Graph representation, traversals |
| |
11/09 |
| Designing generative recursive functions |
| |
11/10 |
| Binary search, fractals |
| |
| ||||
| ||||
Midterm coming up: 11/17 @ Midterm: 6:00-9:00pm | ||||
11/14 |
| Mathematical example: Newton, Numeric Integration |
| |
11/16 |
| Mathematical example: Newton, Numeric Integration |
| |
11/17 |
| Accumulators: completing graph traversals |
| |
| ||||
| ||||
11/21 |
| Lambda and scope |
| |
11/23 |
| Thanksgiving Day | ||
11/24 |
| Thanksgiving Day | ||
| ||||
| ||||
11/28 |
| Designing with accumulators |
| |
11/30 |
| Accumulator-style functions |
| |
12/01 |
| Accumulators in data: example |
| |
| ||||
| ||||
12/05 |
| Traversing two pieces of data simultaneously | ||
12/07 |
| Designing functions that traverse data simultaneously |
| |
|