
As for the previous two volumes, my greatest debts are to Hal Abelson and Paul Goldenberg. Both of them read the manuscript carefully through several drafts. Hal is great at noticing the large problems; he makes comments like "throw out this whole chapter" and "you are putting the cart before the horse here." Paul's comments were generally on a more detailed level, pointing out sections in which potentially valuable content was sabotaged by a presentation that nobody would understand. Together they have improved the book enormously.
Some of the examples in this book are ones that were posed to me by other people in other contexts. Horacio Reggini raised the issue of listing (not merely counting) the combinations of r elements of a list; Dick White asked me to investigate just how secure the Simplex lock is; Chris Anderson taught the probability class where the question about multinomial expansions arose. I'm grateful to Anita Harnadek, whom I've never met, for a logic problem I use to demonstrate inference systems. (She is, by the way, the author of a fantastic textbook called Critical Thinking that I recommend to teachers of almost any subject: math, English, or social studies.) Jim Davis's Logo interpreter in Logo (in the LogoWorks anthology I coedited) was an inspiration for the Pascal compiler.
I'm grateful to Dan Bobrow, Sherry Turkle, and Terry Winograd for permission to quote from their work here. In particular, Bobrow's doctoral thesis forms the basis for my chapter on artificial intelligence, and I'm grateful for the program design as well as my extensive quotations from the thesis itself. He was also very patient in answering technical questions about details of a program he wrote over 20 years ago.
Mike Clancy taught me about generating functions and used them to find the
closed form definition for the multinomial problem; Michael Somos,
via the sci.math
newsgroup, provided the closed form solution to
the Simplex lock problem. Paul Hilfinger straightened me out
about parser complexity.
Brian Harvey,
bh@cs.berkeley.edu