"With this book you can learn to write good programs that do interesting things right off the bat," writes software developer Julie Sussman. "This is the introductory [programming] text that I wish I had had"Scheme - a simple, learnable dialect of LISP has emerged as a popular educational language as well as a serious tool for producing applications and system software. "Programming in Scheme "provides an accessible introduction to Scheme that assumes no previous programming experience and covers all the basics of the language and many advanced topics as well. It gets readers on the machine early, teaches language structure and programming technique through extended examples an exercises, and emphasizes debugging throughout.Chapters are organized as a series of groups, or "layers," each of which advances the reader to a new level in Scheme. The first layer (chapters 2-7) introduces Scheme procedures - how to define, use, and debug them. The second layer (chapters 8-10) discusses lists and subprocedures. The third layer (chapters 11-15) provides a more elaborate and powerful model of the Scheme language. These last chapters also explore the notion of first-class procedure objects, one of the most fascinating ideas in computer science. Appendixes contain an Edwin mini-manual, answers to selected exercises, references and bibliography.Michael Eisenberg is a Ph.D candidate in Computer Science at MIT. Harold Abelson is Associate Professor of Computer Science and Engineering at MIT.