Goals for the first week of this class:
- General overview of the class, its structure and mission, and the kinds of things that we will be seeing and doing
- Review/introduction of abstract data types and linear data structures. In particular, by Friday 10 Sept you should be pretty comfortable with implementing, using, describing tradeoffs among:
- Arrays
- Linked Lists
- Collection ADT (Insert, Member?, Delete)
- Stack ADT (Push, Top, Pop)
- Queue ADT (Enqueue, Front, Dequeue)
- Introduction of orders of growth, O, Theta, Omega
- Be able to analyze the data structures and ADTs listed above
- Basic Scheme programming
- Be able to implement basic lisp programs including the above data structures/ADTs
Scheme references:
See also ResourcesOnScheme with an itemized listing of chapter/topic correspondence
- Dr Scheme (download this environment. We should build a wiki page on getting started with Dr Scheme.)
Already exists -- see DrschemeInstructions
- Books (good references):
Structure and Interpretation of Computer Programs is a masterpiece, definitely worth owning for the serious computer scientist, overkill for our use (but I'd love for everyone to read it anyway). Fully available on the web! (AKA the Wizard book)
How to Design Programs is beautiful, though I don't personally know it as well as SICP. HTDP is also available online, though -- like SICP -- also worth purchasing if it's the kind of thing you like to own (or read on paper). Again, overkill for this course, but not necessarily for your life.
Dybvig's book is also good but more advanced/referency.
Teach yourself Scheme in Fixnum Days by Dorai Sitaram. No opinion yet, but I like the joke. This is also included in DrScheme (help -> helpdesk -> program design).
- (brief) tutorials; no endorsement implied: