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

(MIT Electrical Engineering and Computer Science)

4.46  ·  Rating details ·  4,340 ratings  ·  176 reviews
Structure and Interpretation of Computer Programs has had a dramatic impact on computer science curricula over the past decade. This long-awaited revision contains changes throughout the text. There are new implementations of most of the major programming systems in the book, including the interpreters and compilers, and the authors have incorporated many small changes tha ...more
Paperback, 2nd Edition, 657 pages
Published July 25th 1996 by MIT Press (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
Andrew Breza Even though SICP is designed as a first course in computer science, I highly suggest starting elsewhere. There are two general approaches to learning …moreEven though SICP is designed as a first course in computer science, I highly suggest starting elsewhere. There are two general approaches to learning about computer science. The first approach involves studying the basics of a high-level programming language like Python or JavaScript and putting together a website or application. The second approach involves starting with the fundamentals of computer science and slowly building up to where you can do fun things. This book definitely follows the second approach. I personally prefer the first approach. I took my first programming class 18 years before picking up SICP. I learned to do fun stuff with computers and then gradually worked my way into the serious stuff. If I had tried starting here, I may not have continued with programming.(less)

Community Reviews

Showing 1-30
Average rating 4.46  · 
Rating details
 ·  4,340 ratings  ·  176 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
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
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 sever ...more
Aug 27, 2010 rated it it was amazing
A work of art. SICP will make you a better programmer in the same way that reading Dostoevsky will make you a better writer.
Apr 19, 2008 rated it it was amazing
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. ...more
John Chilton
Jul 08, 2010 rated it it was amazing
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
Zhi Han
Jul 07, 2014 rated it it was amazing
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 narrati
Lorin Hochstein
Jul 13, 2014 rated it really liked it
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 p
Ettore Pasquini
Oct 07, 2010 rated it it was amazing
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 cor
Jul 23, 2015 is currently reading it  ·  review of another edition
Shelves: z-ebook, technical
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. ...more
Bjørn Borud
Jun 27, 2017 rated it it was ok
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
Oct 05, 2019 rated it really liked it
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, introd
Walerian Sobczak
Aug 19, 2020 rated it it was amazing
It should be the first book every CS student / self-taught programmer reads. The authors presented more approachable and coherent way of teaching how to write computer programs than I had experienced during my formal education. This book covers most of real-life programming challenges you could think of - from pure functional computations, stateful objects, and different levels of abstraction, to lazy evaluation, concurrency, and logic programming.
And the exercises attached to each section are j
Feb 04, 2014 rated it it was amazing
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
Hunan Rostomyan
Apr 26, 2018 rated it it was amazing
Shelves: computer-science
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.
Feb 23, 2016 rated it it was amazing
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
Dec 10, 2012 rated it really liked it
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
May 05, 2020 rated it really liked it
Shelves: computer-science
The first few chapters of this book will make you think that it is a Scheme manual. However, do not be fooled, the book is much deeper than that. After the first few chapters, introduce you to Scheme, it discusses important differences between different paradigms of evaluation: applicative order, lazy evaluation, and data streams. The book also covers logic programming and non-deterministic programming languages. From there, you will explore the inner workings of interpreters. Finally, the book ...more
Sreejith Puthanpurayil
Jan 13, 2018 rated it it was amazing
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 m ...more
Raghu Hudli
Apr 09, 2013 rated it it was amazing
A classic book to understand programming. Loved reading it and also the lectures on!
Would also recommend Randy Bryant's "Computer Systems" and "How to Design Programs" by Matthias Felleisen,,
Rick Sam
Dec 12, 2019 rated it it was amazing
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
Dec 02, 2020 rated it it was amazing  ·  review of another edition
Absolutely awesome book.
I think, some real-life experience with various programming languages and paradigms can help you understand a lot, but here authors pack huge amount of info and years of real-life experience into (moderately) small package, highlighting differences in perspectives, how you see the code and it's execution, when applying different approaches.

I mostly scanned through two last chapters, sadly, not understanding them in such details as I wanted to, but that's my fault.
Ondrej Sykora
Oct 07, 2014 rated it it was amazing
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 und
Dec 31, 2014 rated it it was amazing
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 ta
Joel McCracken
Aug 06, 2008 rated it it was amazing
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.
Owen Leong
Jun 24, 2019 rated it it was amazing
SICP is truly a great classic. Over the years, while technology has advanced and programming languages gone in and out of fashion, the concepts exposited by SICP continue to be insightful. Nevertheless, it is not an easy book to work through, so let me give you some highlights of the book to boost you through.

Instead of starting the book with a blank canvas, let us take a look at what "Structure and Interpretation of Computer Programs" means.

Structure. While you can read this book with no prio
Siraaj Khandkar
Dec 14, 2019 is currently reading it
The time has come
Christian Brumm
Jan 08, 2010 rated it it was amazing
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
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 horizons
Vasyl Pryimachuk
Feb 06, 2017 rated it it was amazing
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.
Sandy Maguire
Sep 17, 2019 rated it liked it
Shelves: education
This is a comprehensive book that would have been fantastic had I not learned half of it in university, and the other half from functional programming. Most of the problems in the book feel like they're desperately grasping for a type-system, and needing to be very clever in order to get around their lack of such. It's not a bad read by any means, but I didn't get nearly as much out of it as people promised I would. ...more
« previous 1 3 4 5 6 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

  • Introduction to Algorithms
  • The C Programming Language
  • Code Complete
  • The Pragmatic Programmer: From Journeyman to Master
  • Design Patterns: Elements of Reusable Object-Oriented Software
  • The Little Schemer
  • Computer Systems: A Programmer's Perspective
  • Algorithms
  • Code: The Hidden Language of Computer Hardware and Software
  • Modern Operating Systems
  • Clean Code: A Handbook of Agile Software Craftsmanship
  • The Mythical Man-Month: Essays on Software Engineering
  • Learn You a Haskell for Great Good!
  • Effective Java
  • The Cathedral & the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary
  • Eloquent JavaScript: A Modern Introduction to Programming
  • Gödel, Escher, Bach: an Eternal Golden Braid
  • Hackers & Painters: Big Ideas from the Computer Age
See similar books…

Goodreads is hiring!

If you like books and love to build cool products, we may be looking for you.
Learn more »
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. ...more

Other books in the series

MIT Electrical Engineering and Computer Science (7 books)
  • Robot Vision
  • Abstraction and Specification in Program Development
  • Computation Structures
  • Introduction to Algorithms
  • Instructor's Manual to Accompany Structure and Interpretation of Computer Programs
  • Structure and Interpretation of Computer Programs: JavaScript Edition

Related Articles

Let's face it: Being cooped up inside during the pandemic has left a lot of us searching for a sense of connection with one another. Memoirs...
27 likes · 5 comments
“Programs must be written for people to read, and only incidentally for machines to execute.” 123 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.” 13 likes
More quotes…