|
The people who read and commented on early drafts of this book include Hal Abelson, Sharon Yoder, Michael Clancy, Jim Davis, Batya Friedman, Paul Goldenberg, Tessa Harvey, Phil Lewis, Margaret Minsky, and Cynthia Solomon. I am especially grateful to Paul Goldenberg and Cindy Carter for their professional, financial, and emotional support during the months I spent as a guest in their home while working on this project, keeping them from their own work and tying up Paul's computer equipment. This book wouldn't exist without them. Special mention also goes to Hal Abelson, without whose support this book wouldn't have found a publisher.
The main ideas in this book, and some of the specific examples, first surfaced in the form of self-paced curriculum units for a programming class at the Lincoln-Sudbury Regional High School, in Sudbury, Massachusetts. Alison Birch, Larry Davidson, and Phil Lewis were my colleagues there. (So, later, was Paul.) All of them helped debug the curriculum by finding mistakes and by pointing out the parts that were correct but incomprehensible. Larry, especially, was my mentor and untiring collaborator, helping me survive my first real teaching job, even though he had his own work and wasn't officially part of the computer department at all. I'm also grateful to the many students who served as guinea pigs for the curriculum, and to David Levington, then the district superintendent, who was generous with equipment and with administrative freedom in support of an untested idea.
My work at Lincoln-Sudbury would not have been possible without the strong support of computer scientists at the Massachusetts Institute of Technology, especially but not only the ones at the Logo Laboratory. Equipment grants from the Digital Equipment Corporation and from Atari, Inc., were also crucial to this work.
And thanks, also, to my faculty supervisors in the Graduate Group in Science and Mathematics Education, at the University of California at Berkeley, for their patience and understanding while I worked on this instead of my thesis.
In 1992 one of my then-undergraduate students, Matt Wright, suggested that we collaborate on a textbook for Berkeley's introductory programming course for non-majors. The book would use Scheme, the same language used in our first course for students in the computer science major, but would be based on the ideas in the first edition of this book. The result of that collaboration, Simply Scheme, was published in 1994.
In writing Simply Scheme, Matt and I reconsidered every detail of the presentation used in Computer Science Logo Style. We added a greater emphasis on higher order functions, and we completely reorganized the chapters on recursion. Large example programs were added to the text, along with suggestions for student projects.
Most of the changes in this second edition were inspired by the work that Matt and I did together for the Scheme book. In a few cases I have lifted entire paragraphs from it! Matt also read early drafts of some of the new chapters in this edition, and this text benefits from his comments.
Berkeley Logo, the interpreter used in this edition, is a collective effort of many people, both at Berkeley and across the Internet. My main debt in that project is to three former students: Dan van Blerkom, Michael Katz, and Doug Orleans. At the risk of missing someone, I also want to acknowledge substantial contributions by Freeman Deutsch, Khang Dao, Fred Gilham, Yehuda Katz, George Mills, Sanford Owings, and Randy Sargent.
Brian Harvey,
bh@cs.berkeley.edu