210 Lecture Notes



Fall 2001 Lecture Notes

These are the notes that I lecture from in class. They may be a bit cryptic, as they are intended to prompt me, and do not, of course, contain everything said in class. They are no substitute for attendance.

  1. Lecture 1: Computing as pre-algebra
  2. Lecture 2: Conditioner (design recipe; cond)
  3. Lecture 3: Symbols; intro to structures
  4. Lecture 4: Structures, placeholders (sample problem)
  5. Lecture 5: structure within structure (with summary of templates and the design recipe)
  6. Lecture 6: structures within (same) structures: lists intro
  7. Lecture 7: Lists: from template to function in 90 seconds
  8. Lecture 8: The Law of Scheme, revealed; lists of mixed data
  9. Lecture 9: natural numbers
  10. Lecture 10: family trees
  11. Lecture 11: functions accepting two interesting arguments
  12. Lecture 12: mutual recurrence (descendent trees)
  13. Lecture 13: mutual recurrence II.
  14. Lecture 14: local. (spanned over two classtimes)
  15. Lecture 16: accumulators. (spanned over two classtimes) (related notes from 01.spring (pdf))
  16. Lecture 17: finish accumulators; higher-order functions.
  17. Abstracting out more patterns, w/ higher-order functions; see 01.spring notes (pdf): higher orders.
  18. Lecture 18: and highest (?)
  19. Lecture 20: (finish discussing foldr from lect 18, and start discussing hilo from lect 21)
  20. Lecture 21: termination of hi-lo; drawing triangles; mergesort.
  21. Lecture 22: Generative recursion cont.: quicksort; the template for generative recursion
  22. ; week 9
  23. Lecture 23: Extended example: the card game "war"
  24. Lecture 24, 25, 26; 27!: finding paths (pdf)
  25. Lecture 28: Changing the world.
  26. Lecture 29: More on mutating structures; equal? vs eq?; shared.
  27. Lecture 30: Reviewing struct-set-field!; find-path the right way.
  28. Lecture 31, 32, 33: Recap lect 30's closing example, and draw parallels to missionaries&cannibals; Vectors, loops.
  29. Lecture 34: set!
  30. Lecture 35: Interactions of set!, local, and lambda: Objects, and object-oriented intro.
  31. Lecture 36: imperative programming; (and, for fun: variable arguments, overloading, macros?)
  32. Lectures 37-39: Jam2000: Assembly language
  33. Lectures 40, 41: Object-oriented programming intro (Updated dec.05)
    (not on exam)
  34. Lecture 42: where we've been, where to go, a fundamental limit on computing (Halting Problem)


This page maintained by Ian Barland.