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