Functional Design |
|
Week 1: Basic Scheme, Basic Design Recipes
[Lab topic: ] |
|
------------ Martin Luther King Day (no class) ------------------ |
|
1 |
What is Computation? What is Programming? Processing Numbers |
2 |
Processing Intervals (Conditionals) |
|
Week 2: Compound Data with Structures
[Lab topic: ] |
3 |
Symbolic Information |
|
4 |
Defining Simple Compound Data (Lists of Finite Length) |
5 |
Processing Structures |
|
Week 3: Simple Recursive Recipes
[Lab topic: ] |
6 |
Defining Lists of Arbitrary Length |
7 |
Processing Lists of Arbitrary Length |
|
8 |
Processing Lists of Arbitrary Length, Continued |
|
Week 4: Complex Recursive Recipes
[Lab topic: ] |
9 |
Processing Lists of Mixed Data ; Programs that Construct Lists |
10 |
Programs over Natural Numbers |
|
------------ Exam 1 (in class) ------------------ |
|
Week 5: Program Composition
[Lab topic: ] |
11 |
Processing Family Tree |
12 |
More Family Trees |
13 |
Family Trees, part III |
|
Week 6: More Mutual Recursion and Local
[Lab topic: ] |
14 |
Files and Directories |
15 |
Functions that Process Two Complex Arguments |
16 |
The Scope of Things and LOCAL |
Functional Abstraction |
|
Week 7: Abstraction, Functions as Values
[Lab topic: ] |
17 |
Functional Abstraction |
18 |
Practice with Using Functional Abstractions; Contracts with Variables |
19 |
Functions as Values; Functions that Return Functions |
|
Week 8: Mid-Term Recess |
|
------------ Mid-Term Recess ------------------ |
|
------------ Mid-Term Recess ------------------ |
|
------------ Mid-Term Recess ------------------ |
Generative Recursion, Accumulation |
|
Week 9: Generative Recursion
[Lab topic: ] |
20 |
Quick Sort; Sierpinski |
21 |
The Design Recipe for Generative Recursion |
22 |
Gaussian Elimination |
|
Week 10: Generate and Recur [Lab topic: ] |
23 |
Finding Routes |
24 |
Accumulators |
25 |
Designing Programs with Accumulators |
|
Week 11: More on Accumulators
[Lab topic: ] |
26 |
When to Use Accumulators |
27 |
Accumulators on Trees |
|
---------------- Spring Recess (no class) ----------------- |
Imperative Program Design |
|
Week 12: State
[Lab topic: ] |
28 |
Memoization |
29 |
When to Use set! |
30 |
Set! and Objects |
|
Week 13: More State; Vectors
[Lab topic: ] |
31 |
Updating structures |
32 |
More on updating structures |
33 |
Vectors |
|
Week 14: More Vectors; Inside the Machine
[Lab topic: ] |
34 |
Vectors and Practice |
35 |
How DrScheme Really Works |
37 |
Simple Machine-Level Programs |
What is Computer Science? |
|
Week 15: A Model of the Real Machine; What is Computer Science?
[Lab topic: ] |
38 |
Modeling a Machine |
39 |
Marx and Hegel: From Scheme to the Machine and back |
40 |
The Halting Problem |