210 Sample Schedule

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