Functional Design |

Week 1: Basic Scheme, Basic Design Recipes [Lab topic: ] | ||

1 | What is Computation? What is Programming? Processing Numbers | |

2 | Processing Intervals (Conditionals) | |

3 | Symbolic Information |

Week 2: Compound Data with Structures [Lab topic: ] | ||

------------ Labor Day (no class) ------------------ | ||

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: Programs Composition [Lab topic: ] | ||

11 | Processing Family Trees | |

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: More on Functions; Generative Recursion [Lab topic: ] | ||

------------ Mid Term Recess ------------------ | ||

20 | Quick Sort; Sierpinski | |

21 | The Design Recipe for Generative Recursion |

Generative Recursion, Accumulation |

Week 9: Generate and Recur [Lab topic: ] | ||

22 | Gaussian Elimination | |

23 | Finding Routes | |

24 | Accumulators |

Week 10: More on Accumulators [Lab topic: ] | ||

25 | Designing Programs with Accumulators | |

26 | When to Use Accumulators | |

27 | Accumulators on Trees |

Imperative Program Design |

Week 11: State [Lab topic: ] | ||

28 | Memoization | |

29 | When to Use set! | |

30 | Set! and Objects |

Week 12: Functions and their History [Lab topic: ] | ||

31 | Updating structures | |

32 | More on updating structures | |

33 | Vectors |

Catching Up |

Week 13: Practice Problems [Lab topic: no lab] | ||

34 | Vectors and Practice | |

35 | Practice | |

------------ Thanksgiving Recess ------------------ |

Inside the Machine, Programming the Machine |

Week 14: A Model of the Real Machine [Lab topic: ] | ||

36 | How DrScheme Really Works | |

37 | Simple Machine-Level Programs | |

38 | Modeling a Machine |

What is Computer Science? |

Week 15: Many Levels of Abstraction [Lab topic: ] | ||

39 | Marx and Hegel: From Scheme to the Machine and back | |

40 | The Halting Problem | |

------------- no more classes ---------------------- |

Kathi Fisler | This page was generated on Mon Nov 22 12:16:28 CST 1999. |