CS 227 lecture -*- Outline -*- * Summary ** why scheme? still the wrong question. We learned in this class about: thinking about programs as relations (input to output) programming (patterns, skills) thinking symbolically programming ideas (helping procedures, abstraction, ADTs, recursion, tool making and use) elegance (how to evaluate programs) so we learned about set! and while-proc not because they are in Scheme, but because they are important programming patterns didn't learn them first, because easier to reason (with =) without set! ** what we learned in this class Have the students take 4 minutes, and write down as many ideas as they can that they learned this semester (about the course content). Have them take three minutes to rank order their ideas, in order of most important (1) to least (2, 3, ...) (may want to show the table of contents slide here) Take survey of the most important ideas, get out the 3 most important. my votes: 1. abstraction (never write the same thing twice) procedural, data, higher-order 2. programming is relationships between inputs and outputs, between initial and final states 3. programming patterns flat-recur, deep-recur-abs, vector-generator, while-proc also iteration, numerical recursion, ... 4. programs can be beautiful ** where to go from here next class is 228: introduction to data structures *** other CS classes point out ones that may use Scheme (342, 472), and concepts that we have touched on that they will see later *** other CE classes point out ones that may use Scheme (342, 472), and concepts that we have touched on that they will see later *** other things in the book Chapters 12 and 13: OOP Chapters 14 and 15: extending the language (macros) Chapters 16 and 17: control (continuations, coroutines) *** readings don't forget the readings in the "How to become a CS" handout, now would be a good time to read Abelson and Sussman, see how to organize programs for maximum utility. read other things related to topics that have piqued your interest ** thanks *** to the student management team *** to the TAs