Buy new:
-27% $55.00
FREE delivery Friday, January 17
Ships from: Amazon.com
Sold by: Amazon.com
$55.00 with 27 percent savings
List Price: $75.00
FREE Returns
FREE delivery Friday, January 17
Or fastest delivery Thursday, January 16. Order within 15 hrs 10 mins
In Stock
$$55.00 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$55.00
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Ships from
Amazon.com
Amazon.com
Ships from
Amazon.com
Sold by
Amazon.com
Amazon.com
Sold by
Amazon.com
Returns
30-day refund/replacement
30-day refund/replacement
This item can be returned in its original condition for a full refund or replacement within 30 days of receipt.
Payment
Secure transaction
Your transaction is secure
We work hard to protect your security and privacy. Our payment security system encrypts your information during transmission. We don’t share your credit card details with third-party sellers, and we don’t sell your information to others. Learn more
$45.91
FREE Returns
Never used book with some shelf wear. No highlights, writing, or earmarks. Item may have minor cosmetic defects (marks, wears, cuts, bends, crushes) on the cover, spine, pages or dust cover. Never used book with some shelf wear. No highlights, writing, or earmarks. Item may have minor cosmetic defects (marks, wears, cuts, bends, crushes) on the cover, spine, pages or dust cover. See less
FREE delivery January 25 - February 1
Or fastest delivery January 24 - 29
$$55.00 () Includes selected options. Includes initial monthly payment and selected options. Details
Price
Subtotal
$$55.00
Subtotal
Initial payment breakdown
Shipping cost, delivery date, and order total (including tax) shown at checkout.
Access codes and supplements are not guaranteed with used items.
Kindle app logo image

Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.

Read instantly on your browser with Kindle for Web.

Using your mobile phone camera - scan the code below and download the Kindle app.

QR code to download the Kindle App

Follow the authors

See all
Something went wrong. Please try your request again later.

Structure and Interpretation of Computer Programs - 2nd Edition (MIT Electrical Engineering and Computer Science) 2nd Edition

4.7 4.7 out of 5 stars 678 ratings

{"desktop_buybox_group_1":[{"displayPrice":"$55.00","priceAmount":55.00,"currencySymbol":"$","integerValue":"55","decimalSeparator":".","fractionalValue":"00","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"NVdAqtzOo44tLsgl%2BVZrS9jE404Qj0PfcCP5pzv71l8pyNK3qqsuggl20CDB3Vgz1mZrXOQrcM07DkFPZJ4ihW9O8%2FLGvVyi7EdEThZIEE2HFx6Lb1ILpMY%2F4Swoph9RyBdR3rCkI3E%3D","locale":"en-US","buyingOptionType":"NEW","aapiBuyingOptionIndex":0}, {"displayPrice":"$45.91","priceAmount":45.91,"currencySymbol":"$","integerValue":"45","decimalSeparator":".","fractionalValue":"91","symbolPosition":"left","hasSpace":false,"showFractionalPartIfEmpty":true,"offerListingId":"NVdAqtzOo44tLsgl%2BVZrS9jE404Qj0PfJrQ6u0ou7DGSSNbG%2F8mc5cgjyotyrrjphZ49Xgg8nXIgNMTmfNDVHFwTysYNVVnnvR32rX4sWBzwL5Li%2FGlbOcXKKQTOKHc7TbJegtCj9DkBb7WjOf6psQqauZn9leqrebkAa%2Boh5cxPlH8Nenc4WPGCqnbktEny","locale":"en-US","buyingOptionType":"USED","aapiBuyingOptionIndex":1}]}

Purchase options and add-ons

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 that reflect their experience teaching the course at MIT since the first edition was published. A new theme has been introduced that emphasizes the central role played by different approaches to dealing with time in computational models: objects with state, concurrent programming, functional programming and lazy evaluation, and nondeterministic programming. There are new example sections on higher-order procedures in graphics and on applications of stream processing in numerical programming, and many new exercises. In addition, all the programs have been reworked to run in any Scheme implementation that adheres to the IEEE standard.
"Layla" by Colleen Hoover for $7.19
From #1 New York Times bestselling author Colleen Hoover comes a novel that explores life after tragedy and the enduring spirit of love. | Learn more

Frequently bought together

This item: Structure and Interpretation of Computer Programs - 2nd Edition (MIT Electrical Engineering and Computer Science)
$55.00
Get it as soon as Friday, Jan 17
In Stock
Ships from and sold by Amazon.com.
+
$41.84
Get it Jan 22 - 28
In Stock
Ships from and sold by MyPrepbooks.
+
$26.86
Get it as soon as Friday, Jan 17
In Stock
Ships from and sold by Amazon.com.
Total price: $00
To see our price, add these items to your cart.
Details
Added to Cart
spCSRF_Treatment
These items are shipped from and sold by different sellers.
Choose items to buy together.

Editorial Reviews

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 theFree Software Foundation. Additionally, he serves as co-chair for the MIT Council on Educational Technology.

Gerald Jay Sussman is Panasonic Professor of Electrical Engineering at MIT.

Product details

  • Publisher ‏ : ‎ The MIT Press; 2nd edition (September 1, 1996)
  • Language ‏ : ‎ English
  • Paperback ‏ : ‎ 657 pages
  • ISBN-10 ‏ : ‎ 0262510871
  • ISBN-13 ‏ : ‎ 978-0262510875
  • Reading age ‏ : ‎ 18 years and up
  • Grade level ‏ : ‎ 12 and up
  • Item Weight ‏ : ‎ 2.31 pounds
  • Dimensions ‏ : ‎ 9 x 6 x 1.2 inches
  • Customer Reviews:
    4.7 4.7 out of 5 stars 678 ratings

About the authors

Follow authors to get new release updates, plus improved recommendations.

Customer reviews

4.7 out of 5 stars
678 global ratings

Review this product

Share your thoughts with other customers

Customers say

Customers find the book provides interesting computer science techniques and concepts. They describe the text as clear, brilliant, and awesome. Opinions differ on the difficulty level - some find it challenging and fun, while others consider it difficult.

AI-generated from the text of customer reviews

44 customers mention "Programming knowledge"37 positive7 negative

Customers find the book engaging and useful for beginners in programming. It explains computer science techniques well, and is considered one of the best programming books of the last 30 years. The material is fairly dense, but the concepts presented are interesting and useful. Readers say it introduces CS essentials in an engaging and practical way, with useful examples and code that you can run. They describe it as a must-read for every computer scientist, designed for motivated study.

"...real action between compiling and interpreting-- via the MATHEMATICS of "pure" functions, minus the confusion of changing states, variables and data..." Read more

"...The Wizard Book is about learning to think better...." Read more

"...The beauty of this book, however, is it leads you into Functional Programming without one even knowing it...." Read more

"...What the book does is give you a vocabulary and knowledge about programming that is hard to find anywhere else...." Read more

18 customers mention "Text quality"14 positive4 negative

Customers find the book's text clear, concise, and well-organized. They describe it as an epic classic covering LISP, lambda calculus, and the meta-circular interpreter.

"...The material is very dense and thorough. The beauty of this book, however, is it leads you into Functional Programming without one even knowing it...." Read more

"...But once you get acclimated, you begin to see the beauty and raw power it holds...." Read more

"...And it is here that the book really shines, progressively refining the readers' idea of what a computer program essentially is through multiple..." Read more

"...of bad things, but chief among them the ridiculous assumptions the author makes about the reader...." Read more

15 customers mention "Difficulty level"7 positive8 negative

Customers have different views on the book's difficulty level. Some find the exercises challenging and fun, with progressively more difficult ones. Others say it's very difficult and worthwhile if you persevere. The solutions are simple for beginners, but some problems can be daunting. The book doesn't cover algorithmic complexity, which is an important topic.

"...dense; but the authors are masterful teachers and the exercises are very effective. Scheme is a fascinating language...." Read more

"...Simple does NOT equal easy!..." Read more

"...Another nice thing about the book is that it constantly keeps challenging you: the exercises get progressively more difficult and there are very few..." Read more

"...That being said, the book suffers from a few flaws that make is less than easy-going for probably the majority of readers...." Read more

Refunded immediately after I received it
1 out of 5 stars
Refunded immediately after I received it
Indian version got bad quality, I thought it was self printed book.
Thank you for your feedback
Sorry, there was an error
Sorry we couldn't load the review

Top reviews from the United States

  • Reviewed in the United States on July 11, 2013
    Inductive reasoning aims at simplifying functions just enough to make them general. Simple does NOT equal easy! When Functional Programming (and its predecessors-- combinatory logic (1925) and lambda calculus (1930)) were first invented, they were aimed at clarifying mathematical logic. This "holding variables constant" or binding or eliminating them for "pure" (mathematical) functions, has been extended to Functional Programming, initially to better understand what programming is in general, then to evaluate mathematical functions while avoiding some of the complicating factors (side effects) of imperative/procedural programming.

    Because of this, when you think of a function in imperative, you immediately think of variables, and such functions can very easily morph both at the algo/function f(x)-> g(x) level, and at the x (variable level) itself (data changing as you execute). In functional programming (the subject of this text), a function is, well, a MATH function! So, evolving from math, and consisting OF math, it would be a little surprising to criticize the fact that this IS A MATH BOOK. (Sorry, it is). On the other hand, holding those variables constant and looking directly at functional mappings (particularly recursion) can "AHA" us into seeing how computers and programming "really" work without the complications of heavy imperative morphs.

    After C# 3 and in some Perl, these tried and true oops also have some functional classes now, so we are moving toward a more hybrid world, making this book FAR from out of date, even though it is "temporally" older. As well, some of your favorite math, research and engineering programs (Maple, Mathematica and R, for example) have numerous functional features. The old FP standbys are, of course, Lisp, Scheme, Hope, Haskell, Clojure, Racket, Hope, Scala, F#, etc. which you probably think of more as "math" programs. But, hopefully not a surprise, SQL itself strives at far less mutable value structures than imperative, and thus tilts toward functional also.

    FP, to be very honest, WAS designed to teach and understand programming (at compile/interpret levels, not necessarily algorithms, computational complexity or even advanced data structures), not originally create useful programs! "R" and many others have proved that to be aiming low, and the newer FP books do of course get deeply into more recent data structures.

    Thus, the reason for so many negative reviews! This is NOT your usual "how to program" or even "what are programs" text-- it really is about linking mathematics and computer science at both high and deep levels. So, if you aren't really up on math (from basics like sets and real number mappings all the way up to Lie Algebras and tensors), you might get lost with this rare gem of a book. On the other hand, the pain of working through it will give you a perspective on computer science that will forever change your point of view. Even if you code all day like I do, you'll LOVE taking this journey both to the 30,000 foot level, as well as down to the real action between compiling and interpreting-- via the MATHEMATICS of "pure" functions, minus the confusion of changing states, variables and data we play with every day in the imperative version of functions. Don't believe that this "simplification" makes things easier to get-- unless you know functions from a deep math view, this will be a tough climb.

    But... worth it if you're willing to do the work! Most other books on "discrete math" are really UI catch ups for all the computer/math that's now been removed from High School curricula, making this one of the few "real deals" that are at a bright, high undergrad level, NOT catch up. By removing calculus from HS requirements, we're teaching 2,500 year old math, and adding the basics brings us up to 1666 or so. This book rapidly catapults our function math vs. function computing into the new century! Highly recommended IF you're not turned off by advanced math functions, mappings, properties, etc. The next time someone asks how a special or CAS function can run faster interpreted than compiled, you'll have a MUCH different answer! And of course the heart of all dynamical systems today includes differential equations, which are essentially recursive function processing.

    BEFORE AND AFTER: If you're not "quite" ready for this level of FP and Lisp, you can get a great, inexpensive backgrounder with Dover's An Introduction to Functional Programming Through Lambda Calculus (Dover Books on Mathematics). Mathwise, many Dover books on the keyword recursive functions will help. For a freebie intro, Graham's famous "on lisp" is now available as a free download, and is a bit above the level of this book. For the "greatest intellectual programming book ever written" (far beyond the level of this book, covering advanced Lisp macros, closures, etc.), check out (AFTER reading this): Let Over Lambda. Only 1% of programmers really understand Common Lisp, and only 1% of those would tackle the unhygenic macros in Let Over-- yet it is so intellectualy challenging that coders and engineers at all levels are astonished when they read it. Shows how high the bar can really get! (Lisp tends to do that, right?).

    IS IT DATED? In answer to a bunch of emailers asking that, NO-- the principles of functional are still the same, even if Common Lisp and Scheme have been updated. In fact, today, combinations of functional, imperative and logical are happening more and more (called mixed paradigm programming). However, if you want a GREAT, VERY RECENT book as both a warm up and an update to Abelson, try this little beauty by the same author as the Little Schemer: Realm of Racket: Learn to Program, One Game at a Time!. It will fill in where Abelson is a little out of date AND prepare you for his depth. WARNING: PLEASE BE SURE to get the 2nd Edition of Abelson, he updated it significantly for the relationship between time and memory, a relationship that is even today undergoing a LOT of research in many fields.
    47 people found this helpful
    Report
  • Reviewed in the United States on January 27, 2009
    You need it, too. I won't pretend to have more useful insight into the art and craft of programming, or into SICP's relationship to it, than Paul Graham or Peter Norvig- if you want to know which reviews to trust, look these cats up.

    The discussion in the reviews usually concludes that this is the book that separates the computer scientists from the mere programmers. There is a definite logic to this. If you want a book that will have you churning out code that does something helpful in half an hour(because you don't think the several ways to calculate the Fibonacci Sequence are helpful), by all means, pick up Learning Perl or just read the Python documentation. They are great tools. If, however, you want to tool up on problem-solving technique a whole level or three higher up, SICP is for you. The Wizard Book is about learning to think better.

    Here is where I diverge from the idea that this book is for only computer scientists, though. I am an artist, graduated from college with a BA in art, going to graduate school for an MFA. SICP is one of the books that changed how I work and think. It will make you a better programmer if you read (and reread (and reread)) it in the same way that learning Latin will make you understand language itself in a whole new way. I use ideas from SICP constantly, to design software, but also to design staircases. The book is slow-going, no doubt about it, but you'll have a whole new mental toolset at the end.

    One caveat- this book is freely distributed in its entirety on MIT's website. I still bought a copy, though: who knows how long this internet thing will last, but SICP is going to be relevant forever.
    92 people found this helpful
    Report
  • Reviewed in the United States on March 22, 2013
    I bought this book at the recommendation of a speaker on Functional Programming at a Computing Conference. It was on his list of the 10 most important books in Computer Programming. I am doing the "paradigm" shift to Functional Programming and Learning Clojure, so I thought it would be a good book to have on my Shelf. And the Paperback version was less expensive than the hardback.

    It arrived very quickly in excellent shape.

    I've been developing software since the 70's and have undergone the shifts in COBOL to Yourdon's Structured Design, to C then C++, OOP in Java and C++ and now to Clojure and Scala. I'm using this book as a supplement to learning Clojure, although the code is in Lisp. The material is very dense and thorough. The beauty of this book, however, is it leads you into Functional Programming without one even knowing it. I am only part way through it (converting the examples from Lisp to Clojure as I go) and my understanding of FP has grown by leaps and bounds.
    11 people found this helpful
    Report
  • Reviewed in the United States on August 26, 2014
    This was the book that made me want to be a computer programmer. When I read it, I had no knowledge of programming beyond a little Pascal, and rudiments of C.
    It had a massive impact on me. It consumed me, to the point where I had difficulty finishing assignments for my classes (I did not study CS as an undergrad). What the book does is give you a vocabulary and knowledge about programming that is hard to find anywhere else.

    The text, the examples and exercises, have a mathematical flavor, and that may turn off many potential readers, who would rather gadget around than find elegant solutions for the 8-queens puzzle or efficient algorithms to compute Fibonacci numbers.

    I've lent this book to several friends who were interested in learning to program, and in all cases they have returned it to me, saying it went over their heads.
    There seem to be two camps in computer programming:
    - the gadgeteers, who want to hook devices together and make them do fun things
    - the scientists, who appreciate computing as a medium in itself
    This book is for the second type.
    242 people found this helpful
    Report

Top reviews from other countries

Translate all reviews to English
  • Jorge
    5.0 out of 5 stars Entendimiento general de bases de programación
    Reviewed in Mexico on October 18, 2021
    De momento voy en el 2do. capitulo del libro. Tiene bastantes ejercicios por hacer que creo aumentan enormemente la comprensión de lo que el autor habla, por lo que es un punto bueno a comentar, ya que eso es material para bastante tiempo. En general me gusta cómo presenta los conceptos el autor, porque si bien algunas cosas suelen ser "conocidas" como los "procedures", el autor lo presenta de manera que te hace comprender por qué están ahí y por qué tienen valor en un lenguaje de programación.
  • Amazon Customer
    5.0 out of 5 stars Bonne qualité
    Reviewed in France on November 27, 2024
    Correspond à mes besoins. Parfait
  • dfuster
    5.0 out of 5 stars Un clásico
    Reviewed in Spain on January 23, 2023
    Qué puedo decir de este libro. Un imprescindible en cualquier biblioteca de ciencias de la computación
  • |Rg|
    5.0 out of 5 stars One of the best book you will ever read on Programming
    Reviewed in India on June 28, 2021
    The media could not be loaded.
    This has been recommended as the best introduction to Programming and CS by many prominent Computer Scientists and programmers alike.

    I see why.

    This book is one of the most thought provoking and informative books that I have ever read about programming.

    It teaches you programming from ground up including advanced programming techniques such as metaprogramming.

    Now, be aware that this book is hard. But it is hard in a very responsible way. I mean, many STEM books teach you some concepts- only the basics, and then leave you to solve exercises that you cannot practically solve without the help of professors or TAs. Or without seeking help from the internet.

    This book is not that. It is very responsible and self-contained in a way that you can solve all the problems in this book just by reading this book and working through examples. The exercises are not easy, and requires severe brainstorming and trying, but I assure you can solve all of them without any help or hints. I love the way the book is very responsible.

    And if you carefully read through the books and solve all the problems, you will literally transform as a programmer. Your improvements and understanding of the field will be immense.

    This is going to be hard. So embrace yourself.

    The months I worked through the book, were one of the best learning periods of my life. I enjoyed it a lot.

    Two tips for future buyers-

    1. Do not use Scheme even if the book tells you to. Use Racket programming language which is a modern superset of Scheme. You will be able to do with Racket everything you would have been able to do with Scheme. Use the drracket IDE or a text editor of your choice.

    2. There's an MIT OpenCourseWare video lecture series on this book. Look for it. I highly recommend them.

    Finally, if you are unable to finish this book, do not worry. There are plenty of successful software professionals out there who have not read this book.

    But if you want to embrace the hard journey of becoming a great programmer, then this book is for you. If you want to have deep fun for some months, this book is for you.

    Some comments on the product.

    - I bought an old book for ₹500+, and it is as good as new. It is literally a new book. Only 1 inch of the plastic in the cover were torn which I solved through glue. I am very happy to get this book for ₹500+. I would have returned the faulty book if I bought a new one, for sure.

    - Pages are very thin, as this book is locally printed. But don't fret on that. Just rejoice that you can buy this great book in India in ₹800+. This is a great deal.
    Customer image
    |Rg|
    5.0 out of 5 stars One of the best book you will ever read on Programming
    Reviewed in India on June 28, 2021
    This has been recommended as the best introduction to Programming and CS by many prominent Computer Scientists and programmers alike.

    I see why.

    This book is one of the most thought provoking and informative books that I have ever read about programming.

    It teaches you programming from ground up including advanced programming techniques such as metaprogramming.

    Now, be aware that this book is hard. But it is hard in a very responsible way. I mean, many STEM books teach you some concepts- only the basics, and then leave you to solve exercises that you cannot practically solve without the help of professors or TAs. Or without seeking help from the internet.

    This book is not that. It is very responsible and self-contained in a way that you can solve all the problems in this book just by reading this book and working through examples. The exercises are not easy, and requires severe brainstorming and trying, but I assure you can solve all of them without any help or hints. I love the way the book is very responsible.

    And if you carefully read through the books and solve all the problems, you will literally transform as a programmer. Your improvements and understanding of the field will be immense.

    This is going to be hard. So embrace yourself.

    The months I worked through the book, were one of the best learning periods of my life. I enjoyed it a lot.

    Two tips for future buyers-

    1. Do not use Scheme even if the book tells you to. Use Racket programming language which is a modern superset of Scheme. You will be able to do with Racket everything you would have been able to do with Scheme. Use the drracket IDE or a text editor of your choice.

    2. There's an MIT OpenCourseWare video lecture series on this book. Look for it. I highly recommend them.

    Finally, if you are unable to finish this book, do not worry. There are plenty of successful software professionals out there who have not read this book.

    But if you want to embrace the hard journey of becoming a great programmer, then this book is for you. If you want to have deep fun for some months, this book is for you.

    Some comments on the product.

    - I bought an old book for ₹500+, and it is as good as new. It is literally a new book. Only 1 inch of the plastic in the cover were torn which I solved through glue. I am very happy to get this book for ₹500+. I would have returned the faulty book if I bought a new one, for sure.

    - Pages are very thin, as this book is locally printed. But don't fret on that. Just rejoice that you can buy this great book in India in ₹800+. This is a great deal.
    Images in this review
    Customer image Customer image Customer image
    Customer imageCustomer imageCustomer image
  • Amazon Customer
    5.0 out of 5 stars good stuff
    Reviewed in Canada on July 11, 2019
    5/5 would read again