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

Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science)

4.45  ·  Rating details ·  3,807 ratings  ·  140 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
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)

Community Reviews

Showing 1-30
4.45  · 
Rating details
 ·  3,807 ratings  ·  140 reviews


More filters
 | 
Sort order
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
...more
Mark
Jun 02, 2013 rated it liked it
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 b
...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 sever ...more
Michael
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.
Neill
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.
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
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
...more
Keith
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.
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
...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
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
...more
Jonas
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
...more
Graham
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
...more
Sreejith Pp
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
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.
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.
Raghu Hudli
Apr 09, 2013 rated it it was amazing
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,
ambivalent_crab
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
...more
Matthew
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
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
...more
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
...more
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.
M
Jul 16, 2012 rated it it was amazing
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
Feb 09, 2014 rated it it was amazing
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
Nov 05, 2014 rated it liked it
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
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.
Mike
Oct 13, 2011 rated it it was amazing
Fascinating look at programming without having to worry about syntax
Quazi
Mar 06, 2009 rated it it was amazing
Mastery of the subject matter in this book separates budding computer scientists from mere programmers.
Christopher Elliott
Jul 15, 2017 rated it it was amazing
Wow, That took four years to read. Now to read again and actually do the exercises.
« previous 1 3 4 next »
topics  posts  views  last activity   
Why My Brother Printer is Not Scanning the Documents? 1 2 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

  • On Lisp: Advanced Techniques for Common Lisp
  • The Little Schemer
  • The Joy of Clojure
  • Land of LISP: Learn to Program in LISP, One Game at a Time!
  • Concepts, Techniques, and Models of Computer Programming
  • Practical Common LISP
  • Paradigms of Artificial Intelligence Programming: Case Studies in Common LISP
  • The Art of Computer Programming, Volumes 1-3 Boxed Set
  • Let Over Lambda
  • LISP in Small Pieces
  • Purely Functional Data Structures
  • Compilers: Principles, Techniques, and Tools
  • Real World Haskell: Code You Can Believe In
  • Types and Programming Languages
  • The Art of the Metaobject Protocol
  • Advanced Programming in the UNIX Environment
  • Learn You a Haskell for Great Good!
  • Programming Pearls
See similar books…

Goodreads is hiring!

If you like books and love to build cool products, we may be looking for you.
Learn more »
34 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.
“Programs must be written for people to read, and only incidentally for machines to execute.” 103 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…