Goodreads helps you keep track of books you want to read.
Start by marking “Structure and Interpretation of Computer Programs” as Want to Read:
Structure and Interpretation of Computer Programs
Enlarge cover
Rate this book
Clear rating
Open Preview

Structure and Interpretation of Computer Programs

4.45  ·  Rating details ·  4,013 ratings  ·  153 reviews
Emphasizes the central role played by different approaches to dealing with time in computational models. This work is an introduction to computer science courses, as well as programming languages and program design.
Hardcover, Second Edition, 657 pages
Published August 1st 1996 by McGraw-Hill Science/Engineering/Math (first published 1984)
More Details... Edit Details

Friend Reviews

To see what your friends thought of this book, please sign up.

Reader Q&A

To ask other readers questions about Structure and Interpretation of Computer Programs, please sign up.
Popular Answered Questions
Tigre200 Yes. This book is an introduction to computer programming and should be accessible to a beginner. Some of the exercises in the book allude to more…moreYes. This book is an introduction to computer programming and should be accessible to a beginner. Some of the exercises in the book allude to more advanced topics, but this is not needed to understand the rest of the book. I think this is one of the best introductory books to programming, since it introduces a lot of interesting fields to the reader.(less)
This book is not yet featured on Listopia. Add this book to your favorite list »

Community Reviews

Showing 1-30
Average rating 4.45  · 
Rating details
 ·  4,013 ratings  ·  153 reviews


More filters
 | 
Sort order
Start your review of Structure and Interpretation of Computer Programs
Stefan Kanev
Jul 11, 2010 rated it it was amazing  ·  review of another edition
The book was awesome! Abelson and Sussman have created a masterpiece. It provides a great introduction to computer science. The book contains a lot of back referencing and you need to understand previous material in order to grok what you're currently reading. The exercises are key - you can probably accomplish it without doing them, but they really, really help reinforcing the knowledge. They are also fun to do.

The book starts slowly. It might seem a bit basic for the experience programmer, yet
...more
Mark
Jun 02, 2013 rated it liked it  ·  review of another edition
The legendary SICP reminded me of the the Bible in many respects.

The first is that people say you've got to read it. It will "change your life". You'll learn to see the real beauty in programs. You aren't a real programmer unless you've read it. Every software developer should be required to read it. Oh and you have to do the exercises - all 300+ of them - or you didn't get it. (Disclosure: my study group skipped ~10 exercises).

The second similarity to the Bible is that many who champion this
...more
Nick Black
Dec 09, 2007 rated it it was amazing  ·  review of another edition
I read this on the advice of Dr. Eiselt, Dean (at that time) of the College of Computing, after asking him via email "alright, I'm taking classes and whatnot, but I want the Stygian deep; I want to go down as far as I can; I want and need to read those books which have shaped the great computer scientists before me, the real thing." Having probed the shelves of computer science and mathematics since, I remain convinced he could have given no better advice to a precocious freshman. Used for ...more
Michael
A work of art. SICP will make you a better programmer in the same way that reading Dostoevsky will make you a better writer.
Neill
Apr 19, 2008 rated it it was amazing  ·  review of another edition
If you are a programmer or are majoring in computers in college in any shape, form, or fashion, read this book. Let me reiterate: If you're a programmer and you don't read this book you're worthless. If you're a sys admin, and you write with scripting languages to do administrative tasks, and you don't read this book, you're worthless. If you program for websites using javascript, ajax, .NET, etc., and you don't read this book, you're worthless.
John Chilton
Jul 08, 2010 rated it it was amazing  ·  review of another edition
Recommends it for: Anyone
Nearly a decade ago when I first started college as a wide eyed computer science student, this book instilled a deep passion for programming into me. To this day, I can pick up and reread any section of this book and that passion is reinvigorated. There have been volumes written about the brilliance and beauty of this book by people smarter than me. Every bit of this praise is deserved, and I do not need to add to that chorus. I would instead like to mention a different facet of what makes this ...more
Lorin Hochstein
Jul 13, 2014 rated it really liked it  ·  review of another edition
Imagine two sophomore computer science majors in a dorm room late at night. One of them, possibly under the influence of a recently decriminalized substance, turns to the other and asks, "Have you ever thought about what a computer program is. I mean, have you ever *really* thought about it?"

This book is a good answer to that question. The title is apt, it really is about the structure and interpretation of computer programs. It's an enlightening read, but I write this as somebody who has been
...more
Ettore Pasquini
Oct 07, 2010 rated it it was amazing  ·  review of another edition
Recommends it for: software engineers
Recommended to Ettore by: my AI professor in college
Shelves: technology
One of the most inspiring computer books I ever read. Brilliantly written, it almost makes you want to read it like a "normal" book. The AI course I took only required to read a few parts of it, but I continued reading this book instead of other things I was supposed to read. (I gave it credits for the A I actually got. :))

It's not just about LISP, really. It teaches you about a powerful, expressive tool (LISP) but it goes beyond simple syntax and shows you how to actually phrase the problem
...more
Keith
Jul 23, 2015 is currently reading it  ·  review of another edition
Shelves: technical, z-ebook
Twenty hours of video lecture by Abelson and Sussman are available through MIT Open CourseWare, though it is worth noting that these classes used the first edition of the textbook.
Bjørn Borud
It has been more than a decade since I last read this book. I didn't think this was a good book for teaching young people how to become programmers when I first read it and I think it is even less true today. There are two reasons I think this. First off: I think this is a book that people who have forgotten what it was like to learn programming tend to recommend. Usually after falling in with the Lisp crowd and spending a considerable amount of time boring everyone around them by bemoaning the ...more
Zhi Han
Jul 07, 2014 rated it it was amazing  ·  review of another edition
In an ideal world, everybody learns Scheme as their first programming language and knows recursion, lambda, closure and multi-paradigm programming as his/her first step to programming. The software of that world would be more efficient, more manageable, more straightforward, more readable and contains less bugs. Unfortunately, this does not apply to most working engineers, including me.

Brian Harvey [link] is right. This is one of the best books ever written in computer science. It uses a
...more
Jake
Oct 05, 2019 rated it really liked it  ·  review of another edition
I can't quite say how good this book is - and as such - you should prob ignore my star -ing. I mostly gave it 4 stars as a response to what I took from it.

I will admit though, I have committed the crime of not doing any of the exercises on my computer, and as such there is a great deal that is lost - from the authors intent, and to my review . The text is mostly a run through of exercises, and that if studied, bring about a understanding of very simple computer programs. It will further,
...more
Jonas
Feb 04, 2014 rated it it was amazing  ·  review of another edition
Shelves: english
Absolutely brilliant! This book really lives up to its reputation, and is still astoundingly relevant considering it's 30 years old.

The first three chapters are an introduction to programming in scheme, but they contain enough interesting material to make them worthwhile even for programmers with experience in Lisp-like languages.
The last two chapters, however, are where the book really shines. Chapter 4 covers a scheme interpreter (written in scheme). The interpreter is then extended to provide
...more
Sreejith Puthanpurayil
The real gems in the book are in the exercises contained within. I enjoyed reading about evaluation models and scope, streams (especially modelling time in streams vs oop), merging streams, and the power of composition (circuit design, constraint calculation programs). After starting this book, I've been trying to capture common patterns I see in my day to day programming and I do believe I've gotten a lot better at it. In any case, my vocabulary for talking about problems has improved and I'm ...more
Rick Sam
Dec 12, 2019 rated it it was amazing  ·  review of another edition
I came across this book, to help me understand, behind the scenes of Computing.

As with the reviews, I do believe this is an important book. It's going to help you form abstraction. It will give you the foundational base.

Sometimes, I dream that a Computer is layers of the movie Inception.

Too many times, I come across people in industry -- who would say, I program in 10 different languages, and thump their chest. There's nothing wrong with a person who has the ability to program in 10 different
...more
Graham
Dec 31, 2014 rated it it was amazing  ·  review of another edition
This book is more than just a technical manual. It teaches foundations of lasting value in an elegant machine language that has been around in one form or another since the 1950s.

Whilst the material gets impressively advanced just a couple of chapters in, I'd also recommend this book to friends who've never written code before. The language used is built from very simple components and the exercises are progressive. This could be followed by a curious novice in much the same way that a coffee
...more
Hunan Rostomyan
This is one of those books that changes you. If I could save only one computer science book from destruction, this would be it. The book features LISP, but the insights are universal.

I had the fortune to take my first computer science course with Brian Harvey, who helped digest some of the trickier ideas in the book.

It's been 10 years; I have to re-read it.
Joel McCracken
Aug 06, 2008 rated it it was amazing  ·  review of another edition
If I could go back and tell myself where to start with computer science, this would have been it.

It may be a little tough for beginners, but I feel that if you know enough to get through the first chapter or so, you will be set.
Raghu Hudli
Apr 09, 2013 rated it it was amazing  ·  review of another edition
A classic book to understand programming. Loved reading it and also the lectures on ocw.mit.edu!
Would also recommend Randy Bryant's "Computer Systems" and "How to Design Programs" by Matthias Felleisen, et.al,
Siraaj Khandkar
Dec 14, 2019 is currently reading it  ·  review of another edition
The time has come
ambivalent_crab
Feb 23, 2016 rated it it was amazing  ·  review of another edition
This is a famous book which most of the people related to programming know about, since it often shows up in various "top N cs/programming" books lists.
Naturally, I decided to give it a shot, started and dropped it a couple of times.
Eventually, I've got some free time and spent about a year with this book, trying to solve as many exercises as possible.

That was certainly not an easy road, but I'm glad I've taken it.
The amount of things I've learned from this book is astonishing, and some concepts
...more
Matthew
Dec 10, 2012 rated it really liked it  ·  review of another edition
Shelves: cs
Not too shabby, the first four chapters are a superb account of programming from an academic viewpoint. I can now see why people rave about this book so much, the examples were very well thought out and showed the true power and flexibility of scheme. I did not enjoy reading the last chapter though which was a mire of the technical details of interpreters and compilers, this part of the book took away from the beautiful presentation of the general high level ideas of how computer programs should ...more
Ondrej Sykora
Oct 07, 2014 rated it it was amazing  ·  review of another edition
Shelves: programming
This is without discussion one of the books every software engineer should read.

It does a great job at deconstructing common principles of computation and basic element of computer languages, and shows how they can be implemented as extensions of a much simpler language. Things that other languages take as granted (such as dynamic dispatch of methods) are analyzed in detail I haven't seen anywhere else in one place. That all said, the book is still quite approachable and it should be easy to
...more
Christian Brumm
Jan 08, 2010 rated it it was amazing  ·  review of another edition
Shelves: cs-software
Excellent book! I read only like 1/3 of it for an undergrad course. I was very happy back then when I realized that the slides that didn't make any sense at all where just excerpts from the book and the actual text was pretty good to understand.
Well written, broad and deep, though not very practical (in terms of direct applicability in practice) introduction to Computer Science and especially Programming. Almost philosophical in some parts, which I liked.

Have to read the whole thing one day ...
Scott Maclellan
Aug 04, 2014 rated it really liked it  ·  review of another edition
This is a fascinating book! Reading this book has made me very excited about functional programming. The authors explain complicate topics elegantly.

As I got further into the book it became increasingly complex. What had started at easily my level passed what I can understand. The last chapters are very in-depth and even more powerful.

Programming for many years in imperative languages meant this book explored code in new ways for me. I would definitely recommend reading it to expand you
...more
Vasyl Pryimachuk
Feb 06, 2017 rated it it was amazing  ·  review of another edition
Shelves: programming
An excellent book on programming. The foundation of functional programming explained. Recursive and iterative process. Function application. Scheme.

Though I read only first 2 chapters I gained so much from this book. I learned how to design procedures to solve problems through recursion. Only after reading this book I started to appreciate recursive functions. Suddenly they became foundation to solving real world problems. Divide and conquer.
Marcel
Jul 16, 2012 rated it it was amazing  ·  review of another edition
fucking brilliant amaAAAZZZZZING!!!!!!!
best book on generic programming - love it

and if you like this, I think you should check out John Locke's Essay on Understanding Human Though. If you read the above book, you'll understand why Locke's work applies so well :)
Nikolay Hodyunya
This book is generally described as the best introduction to programming. I read it during 2009-2010 years and spent nearly all days of a summer fighting against exercises. And this was the first time I really enjoyed reading computer science book! I'm not going to tell you how good it is, just remember the first rule of SICP: every word in this book have it's place there for very good reasons.
Duc Pham
This book is written for LISP programming language which is for my familiar.
The first 3 chapters are normal introductions about statement, condition...
The chapter 4 provide useful explanation about interpreter which is a software to interpret and execute source code.
Mike
Sep 30, 2008 rated it it was amazing  ·  review of another edition
To understand programming at a fundamental level, beyond making license plates with various languages this book is a must. The
true fundamentals are presented in a well structured curriculum and learning scheme is mental steroids for programmers.
« previous 1 3 4 5 next »
topics  posts  views  last activity   
Why My Brother Printer is Not Scanning the Documents? 1 5 May 15, 2019 11:01AM  
QuickBooks Multi User Customer Service Number 1 1 Aug 02, 2017 02:57AM  
Dial Facebook Account technical support help number 1-844-442-6444 1 6 Sep 22, 2016 04:22AM  
Bookish Nerd Ranch: Let's Get It Started 2 7 Oct 04, 2012 08:05PM  
Bookish Nerd Ranch: Scheme editing 1 3 Jul 27, 2012 10:53AM  
Bookish Nerd Ranch: Getting started 4 12 Jun 26, 2012 09:36AM  

Readers also enjoyed

  • The C Programming Language
  • Introduction to Algorithms
  • The Pragmatic Programmer: From Journeyman to Master
  • Coders at Work: Reflections on the Craft of Programming
  • The Little Schemer
  • Programming Pearls
  • Code Complete
  • Design Patterns: Elements of Reusable Object-Oriented Software
  • The Passionate Programmer
  • Compilers: Principles, Techniques, and Tools
  • The Mythical Man-Month: Essays on Software Engineering
  • Hackers & Painters: Big Ideas from the Computer Age
  • JavaScript: The Good Parts
  • Artificial Intelligence: A Modern Approach
  • Clean Code: A Handbook of Agile Software Craftsmanship
  • The C++ Programming Language
  • The Practice of Programming (Addison-Wesley Professional Computing Series)
  • Code
See similar books…

Goodreads is hiring!

If you like books and love to build cool products, we may be looking for you.
Learn more »
47 followers
Harold 'Hal' Abelson, Ph.D., is Class of 1922 Professor of Computer Science and Engineering in the Department of Electrical Engineering and Computer Science at MIT, a fellow of the IEEE, and a founding director of both Creative Commons and the Free Software Foundation.

Related Articles

San Francisco is a gold rush town. There aren’t many books about people in their 20s who move to Silicon Valley with dreams of earning a living wag...
34 likes · 1 comments
“Programs must be written for people to read, and only incidentally for machines to execute.” 108 likes
“Computational processes are abstract beings that inhabit computers. As they evolve, processes manipulate other abstract things called data. The evolution of a process is directed by a pattern of rules called a program. People create programs to direct processes. In effect, we conjure the spirits of the computer with our spells.” 11 likes
More quotes…