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,365 Ratings  ·  122 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

Joshua Paley Yes, but it does help to have a mathematics background and fluency in the English language. This is not the easiest book to read, but it is one of the…moreYes, but it does help to have a mathematics background and fluency in the English language. This is not the easiest book to read, but it is one of the truly great books in an academic discipline. What makes it great are the topics and especially the problems.

There is a prequel to this book, Simply Scheme by Harvey and Wright that works pretty well if the reader finds this tough sledding. The prequel is a very worthy book in its own right.(less)

Community Reviews

(showing 1-30)
Rating details
Sort: Default
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
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
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.
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
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
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.
Mar 21, 2017 rated it it was amazing
Quote 1

Quote 2

Downloadable PDF version here:
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
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
Jan 16, 2013 rated it it was amazing
Если коротко, то просто замечательная книга. Обязательна для прочтения любому программисту.

Начинается от основ построения абстракций с просто отличными примерами, после чего сложность плавно нарастает заканчивается построением модели вычислительной машины с написанием лисп интерпретатора и компилятора под нее, что объясняет множество нюансов работы реальных интерпретаторов и компиляторов, при этом не захламляя повествование деталями.

О переводе: Читал книгу на русском, перевод издательства Добро
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
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
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
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
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 ...
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.
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.
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.
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.
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,,
Ahmed Thabet
Jul 20, 2015 rated it it was amazing
Greatest book ever written (PERIOD)
Mar 06, 2009 rated it it was amazing
Mastery of the subject matter in this book separates budding computer scientists from mere programmers.
Michel Beloshitsky
Oct 21, 2017 rated it it was amazing
Classics. 6 out of 5. Love it.

For coins exchange task, that breaks my head :)

For cites like that

> Invent and fit; have fits and reinvent! We toast the Lisp programmer who pens his thoughts within nests of parentheses.

> Developing a useful, general frame- work for expressing the relations among different types of entities (what philosophers call “ontology”) seems intractably difficult. e main difference between the confu- sion that existed ten years ago and the confusion that exists now is
Tony Poerio
Aug 26, 2017 rated it it was amazing
Truly reads like the foundational text that most modern programming books & disciplines have built upon.

So much of what's in this book is just now becoming vogue.

These men were way ahead of their time.

Also, Scheme is an extremely interesting language. The syntax is simple, minimal -- and can be easily extended into expressive 'languages', upon which you can model your problem.

Lisp really grew on me as I read this. But I will readily admit to only doing _some_ of the exercises. I'd love to
I loved the first three chapters, and liked chapter four. Worth a read.

Note to self: Here's hoping there's nothing too special in chapter 5, because I leave that as an exercise to later, should I feel that my knowledge of registers isn't extensive enough.
Jul 15, 2017 rated it it was amazing
Wow, That took four years to read. Now to read again and actually do the exercises.
A.N.M. Rahman
Jun 20, 2017 rated it it was amazing
Best book I have ever read on computer programming.
Geoff Lanotte
Oct 20, 2017 rated it it was amazing
This was fantastic, I am resisting the urge to re-read.
« previous 1 3 4 5 6 7 8 9 next »
  • On Lisp: Advanced Techniques for Common Lisp
  • The Little Schemer
  • Paradigms of Artificial Intelligence Programming: Case Studies in Common LISP
  • The Joy of Clojure
  • Purely Functional Data Structures
  • Concepts, Techniques, and Models of Computer Programming
  • Real World Haskell: Code You Can Believe In
  • The Art of Computer Programming, Volumes 1-3 Boxed Set
  • Programming Pearls
  • Practical Common LISP
  • Land of LISP: Learn to Program in LISP, One Game at a Time!
  • Let Over Lambda
  • Compilers: Principles, Techniques, and Tools
  • Lisp in Small Pieces
  • Introduction to Algorithms
  • Types and Programming Languages
  • Learn You a Haskell for Great Good!
  • Clojure Programming

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 about Harold Abelson...
“Programs must be written for people to read, and only incidentally for machines to execute.” 80 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.” 9 likes
More quotes…