fall 2003 61A organization ideas
- schedule
- discussion sections follow the Monday lecture; lab sections follow the Wednesday lecture
- holidays
- Labor Day (Monday, week 2)
- Veterans Day (Tuesday, week 12)
- Thanksgiving (Thursday+Friday, week 14)
- religious stuff
- Yom Kippur (October 6: Monday, week 7)
- should we replace discussion sections with lab for the first couple of weeks?
- what about exams?
- pedagogy
- peer instruction?
- face-to-face grading
- week 1
- topics
- working in the emacs/Scheme environment
- function definition and composition
- conditionals
- review of recursion
- lab
- learn emacs
- run Scheme
- define functions
- call them, with nested expressions
- experience and explain error messages
- use debugger (on "Difference Between Dates" (DBD) code?)
- use enscript
- homework/project
- fall 02 week 1 homework
- 1.6: rewrite if as a function
- determine if and and or are special forms
- other ideas
- checksum
- *2, /3
- rewrite DBD code to go month by month (flaw: this is clunky without a date type)
- week 2
- topics
- accumulating recursion
- tree recursion
- hairy recursion
- trace
- lab
- f02 week 3 exercises 1, 2, and 3
- need to use trace
- homework/project
- f02 week 3 problems
- 1.16: write accumulating fast-expt
- perfect number computation (solved in Concrete Abstractions)
- analyze a modified change counting function
- relate the values of expt and exp-iter
- other ideas
- Concrete Abstractions 4.15: detecting a single fake coin thatŐs too light
- week 3
- topics
- higher-order functions
- let
- lab
- f02 week 3 exercises
- give definitions so that the given expressions donŐt cause errors
- variations on #2 and #3: fill in the blanks?
- f02 week 2 exercises
- fill in the blanks in a let
- write make-tester
- homework/project
- f02 week 3 problems
- 1.35: compute golden ratio using fixed-point
- 1.37: implement continued fractions
- #4, 5: implement type-checked functions
- f02 week 2 problems
- 1.31: write product of values of a given function over a given range
- 1.32: write accumulate
- 1.33: write filtered-accumulate
- 1.40: write cubic
- 1.41: write double, which returns a procedure that applies its argument twice
- 1.43: write repeated
- 1.46: write iterative-improve
- other ideas
- something with graphing a function
- need analysis problems!
- 21 project seems good
- week 4
- topics
- lab
- homework/project
- ideas
- install date abstraction in DBD code?
- week 5
- topics
- hierarchical data
- lists, trees
- higher-order functions on lists and trees
- lists of functions
- testing
- abstraction examples
- lab
- homework/project
- week 6
- topics
- types
- Scheme interpreter
- pattern matching
- rule-based programming?
- lab
- homework/project
- week 7
- topics
- lab
- homework/project
- week 8 (s03 61A introduced OOP here)
- topics
- lab
- homework/project
- s03 61A schedule
- 1. functional programming
- 2. higher-order functions
- 3. recursion and iteration
- 4. programming methodology
- 5. data abstraction
- 6. hierarchical data
- 7. representing abstract data (data-directed programming, generic operations and coercion)
- 8. OOP
- 9. assignment, state, environments
- 10. mutable data, queues, tables
- 11. networks, client/server
- 12. metacircular evaluator
- 13. concurrency
- 14. streams
- 15. logic programming
- subsequent stuff
- topics
- local state, assignment
- mutable data, queues, tables
- memoization
- OOP
- inheritance hierarchies
- data invariants
- streams and iterators?