Have one to sell?
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See this image

Structure and Interpretation of Computer Programs, 2nd Edition Hardcover – Jul 25 1996


See all 3 formats and editions Hide other formats and editions
Amazon Price New from Used from
Hardcover, Jul 25 1996
CDN$ 342.89 CDN$ 96.15

2014 Books Gift Guide
Thug Kitchen, adapted from the wildly popular web site beloved by Gwyneth Paltrow ("This might be my favorite thing ever"), is featured in our 2014 Books Gift Guide. More gift ideas

Special Offers and Product Promotions

  • Join Amazon Student in Canada


Customers Who Bought This Item Also Bought



Hero Quick Promo
Boxing Day Kindle Deals
Load your library with over 30 popular fiction books and more, today only. Learn more

Product Details

  • Hardcover: 683 pages
  • Publisher: The MIT Press; 2 edition (July 25 1996)
  • Language: English
  • ISBN-10: 0262011530
  • ISBN-13: 978-0262011532
  • Product Dimensions: 16 x 3.7 x 22.7 cm
  • Shipping Weight: 1 Kg
  • Average Customer Review: 3.2 out of 5 stars  See all reviews (117 customer reviews)
  • Amazon Bestsellers Rank: #430,164 in Books (See Top 100 in Books)
  • See Complete Table of Contents

Product Description

From Amazon

Abelson and Sussman's classic Structure and Interpretation of Computer Programs teaches readers how to program by employing the tools of abstraction and modularity. The authors' central philosophy is that programming is the task of breaking large problems into small ones. The book spends a great deal of time considering both this decomposition and the process of knitting the smaller pieces back together.

The authors employ this philosophy in their writing technique. The text asks the broad question "What is programming?" Having come to the conclusion that programming consists of procedures and data, the authors set off to explore the related questions of "What is data?" and "What is a procedure?"

The authors build up the simple notion of a procedure to dizzying complexity. The discussion culminates in the description of the code behind the programming language Scheme. The authors finish with examples of how to implement some of the book's concepts on a register machine. Through this journey, the reader not only learns how to program, but also how to think about programming.

About the Author

Hal Abelson is Class of 1922 Professor of Computer Science and Engineering at Massachusetts Institute of Technology and a fellow of the IEEE. He is a founding director of Creative Commons, Public Knowledge, and the Free Software Foundation. Additionally, he serves as co-chair for the MIT Council on Educational Technology.

Gerald Jay Sussman is the Matsushita Professor of Electrical Engineering in the Department of Electrical Engineering and Computer Science, Massachusetts Institute of Technology. He is also the coauthor of Structure and Interpretation of Computer Programs (MIT Press, second edition, 1996).

Inside This Book (Learn More)
Browse and search another edition of this book.
Browse Sample Pages
Front Cover | Copyright | Table of Contents | Excerpt | Index | Back Cover
Search inside this book:

What Other Items Do Customers Buy After Viewing This Item?

Customer Reviews

3.2 out of 5 stars

Most helpful customer reviews

18 of 18 people found the following review helpful By paul graham on May 20 2000
Format: Hardcover
This is one of the great classics of computer science. I bought my first copy 15 years ago, and I still don't feel I have learned everything the book has to teach.
I have learned enough to write a couple books on Lisp that (currently) have four to five stars. Yet SICP, which is pretty much the bible of our world, has only three? How can this be?
Reading the reviews made it clear what happened. An optimistic professor somewhere has been feeding SICP to undergrads who are not ready for it. But it is encouraging to see how many thoughtful people have come forward to defend the book.
Let's see if we can put this in terms that the undergrads will understand -- a problem set:
1. Kenneth Clark said that if a lot of smart people have liked something that you don't, you should try and figure out what they saw in it. List 10 qualities that SICP's defenders have claimed for it.
2. How is the intention of SICP different from that of Knuth? Kernighan & Ritchie? An algorithms textbook?
3. Does any other book fulfill this purpose better?
4. What other programming books first published in the mid 1980s are still relevant today?
5. Could the concepts in this book have been presented any better in a language other than Scheme?
6. Who is al? Why is his name in lowercase?
Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again.
6 of 6 people found the following review helpful By Peter Norvig on May 8 2000
Format: Hardcover
I think its fascinating that there is such a split between those who love and hate this book. Most reviews give a bell-shaped curve of star ratings; this one has a peak at 1, a peak at 5, and very little in between. How could this be? I think it is because SICP is a very personal message that works only if the reader is a computer scientist (or willing to become one). So I agree that the book's odds of success are better if you read it after having some experience.
To use an analogy, if SICP were about automobiles, it would be for the person who wants to know how cars work, how they are built, and how one might design fuel-efficient, safe, reliable vehicles for the 21st century. The people who hate SICP are the ones who just want to know how to drive their car on the highway, just like everyone else.
Those who hate SICP think it doesn't deliver enough tips and tricks for the amount of time it takes to read. But if you're like me, you're not looking for one more trick, rather you're looking for a way of synthesizing what you already know, and building a rich framework onto which you can add new learning over a career. That's what SICP has done for me. I read a draft version of the book around 1982 and it changed the way I think about my profession. If you're a thoughtful computer scientist (or want to be one), it will change your life too.
Some of the reviewers complain that SICP doesn't teach the basics of OO design, and so on. In a sense they are right. The book doesn't directly tell you how to design and write an object-oriented program using the subset of object-oriented principles that show up in the syntax of Java or C++.
Read more ›
Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again.
3 of 3 people found the following review helpful By R. Meyer on Feb. 20 2002
Format: Hardcover
This book is not about learning lisp. It's even only fringely about learning how to program. What's contained in it is more than a simple description of abstraction, or modularity, or anything else you'd find in an introductory text. It even escews talking about those concepts in their simplest form to a degree. It approaches them from a 50,000 foot level, discussion how everything is an abstraction, and by layering these abstractions we can build comprehensible programs. This book has the possibility to change how you think if you listen to it.
That being said, it is _not_ a book on how to build software. I've seen many good software engineers discard this book because most of the code presented has no business anywhere near a real software engineering project. Even a lot of the concepts portrayed don't belong in day to day use.
But at the end of the day, this book gets the closest I've seen to explaining the hard parts of computer science and software engineering. It's a book about patterns without explicitly discussing them. It's a book about how design software without much explicit discussion of the design process. Much like some of the abstractions and "meta" concepts that it presents, it's a book that teaches you how to learn how to learn about programming...
Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again.
3 of 3 people found the following review helpful By Fernando Rodriguez on Aug. 12 2002
Format: Hardcover
SICP is an excellent, perhaps the best, advanced introduction to computer science and programming. It covers topics such as functional abstraction, data abstraction, OOP, program design, constraint programming and logic programming, always from a language design point of view. You will need a decent mathematical background to follow it.
If it's such a great textbook, then why half of the reviewers hate it? Elementary: SICP is not just a textbook, it's also a Computer Science aptitude and vocational test. If you read it and like it, then Congratulations! You are a real programmer and computer scientist, with hair on your chest. If you don't like it, then you should be studying something else. Law, mortuary science, whatever, but not CS.
Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again.

Most recent customer reviews



Feedback