January 24: Getting started: in which we open up the kit and heft some of the useful instruments therein
January 25: Beginning Scheme: in which we begin to model the world between parentheses
January 26: Editing Scheme programs: in which we stylishly combine two contrasting literary genres, to wit, the essay and the computer program
January 28: Symbols and lists: in which nameful but opaque entities are serried and defiled
January 31: Procedure definitions: in which the virtues of abstraction from action are expounded
February 1: Conditional evaluation: in which we look before deciding which way to leap
February 2 and 4: Recursion with lists: in which we do things by positing that they have already been done
February 7: Numbers: in which the computer does all the tricky calculations
February 8: Recursion with integers: in which we count things by positing that they have already been counted
February 9: Preconditions and postconditions: in which we receive guarantees and make promises
February 11: Project #1: mixing organic fertilizers
February 14 and 15: Deep recursion: in which we fearlessly plunge to unknown depths
February 16: Pairs and pair structures: in which we house data in duplexes
February 18: Association lists: in which the items march in two by two
February 21: Local bindings: in which we confer names that outsiders are not allowed to know
February 22: Indefinite recursion: in which we learn why we should confine the genie to its bottle
February 23: Local binding and recursion: in which we put the kernel back in its husk
February 25 and 28: Project #2: The prisoner's dilemma
March 1: Characters: in which we look at some unusual characters and check their serial numbers
March 2: Strings: in which we pick the characters out of line-ups
March 4 and 7: Procedures as values: in which we perform computations on computations, and abstract from abstractions
March 8: Folding: in which the program figures out for itself how to do things by positing them done
March 9: Variable arity: in which our procedures receive as many data as we choose to give them
March 11, 14, and 15: Project #3: Summarizing poll responses
March 16: Vectors: in which we access values randomly.
March 18: Side effects: in which we descend from Plato's heaven into the flux
April 4: Structure mutation: in which data structures become storage structures and lists become circular
April 5: Iteration: in which the side effects accumulate
April 6: Sorting by insertion: in which we impose order on the unruly
April 8: Sorting by merging: in which we impose order more efficiently
April 11: Searching: in which we find that computers can ferret more quickly among orderly data
April 12: Input and output under program control: in which we take over interactions with the user from DrScheme
April 13 and 15: Project #4: Programming the Common Gateway Interface
April 18: Files: in which we take the interactivity out of input and output
April 19: Recursion with files: in which we read and write files by positing that they have already been read and written
April 20: Records: in which we customize our data models
April 22 and 25: Metaprogramming: in which a program customizes our data models for us
April 26: Syntactic extensions: in which we develop our own dialects of Scheme
April 27: Assignment: in which we learn why variables are so called
April 29: Modules: in which we climb onto the shoulders of giants
May 2: Object-oriented programming: in which we learn how protective about its data a procedure can be
May 3: Stacks: in which we learn how a sequence of procedure calls is like a spring-loaded rack for cafeteria trays
May 4: Queues: in which our data are made to wait in line without cutting
May 6: Classes and objects in DrScheme: in which we catch a glimpse of how a big, complicated graphical user interface might be constructed
May 9: Windowing classes: in which we lay out some widgets
May 10: Drawing classes: in which we stretch some canvases, prepare our brushes, mix our colors, and start painting
May 11: Project #5
May 13: Power and authority: in which the troubling dual nature of our instruments is described, with a lesson for the willful