Hot Best Seller

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

Availability: Ready to download

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 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.


Compare

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 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.

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

  1. 5 out of 5

    Stefan Kanev

    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 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 I still found it worth to work through the exercises and appreciate the fine points the authors are making. It's worthy to note that the first 2 chapter (out of 5) don't even introduce state. They just elaborate a lot on functions and lists. Chapter 3 becomes more interesting, as state and environments are introduced. The real gem lies in the final two chapters. Chapter 4 covers interpretation. It starts with writing a rudimentary Scheme interpreter (in Scheme) and continues with two modifications - a lazy version and a non-deterministic version (an interpreter that performs backtracking). The chapter concludes with a logical programming language akin to Prolog. Chapter 5 goes into compilation. First it explores a register machine simulator and afterwards it implements a Scheme evaluator in that register machine using the primitive instructions. The final step is writing a compiler that compiles Scheme code to primitive instructions. The cherry on the pie is the last three exercises. First you have to compile your Scheme interpreter to the register machine simulator. Afterwards, you have to implement the evaluator in C (based on the one you wrote for the register machine) and provide with the necessary runtime operations (which mostly means memory and garbage collection). Finally, you modify the compiler to generate C code and compile the interpreter, resulting to a Scheme implementation on C. Apart from fun, the material is a great introduction to a wide variety of topics. If you just want to have a sense about computer science, this is a great book. While it won't go into more advanced topics (such as various compiler optimizations, parsing or advanced data structures), it does a great job of wetting your appetite and giving you and overview. Plus, I cannot state that again - it is so much fun to read and do the exercises. It took me quite a while to read. I've been wanting to complete it for ages. I started seriously in March 2012 with a study group. We managed to keep up to nearly the end of chapter 3, after which I continued on my own. Out of the time since, I've spent 19 weeks in total on reading and doing exercises. I have my solutions (and various other notes) on GitHub: https://github.com/skanev/playground/...

  2. 5 out of 5

    Mark

    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 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 book don't seem to have read it! I definitely had the same Have any of those people actually read this? feeling several times during the year and a half it took to work through it. During this I joined a chat room of SICP devotees; I seemed to be the furthest along in the book.* The internet is littered with the Github repos and blogs of developers who've started and aborted the book. Third, the book was written long ago and it is sometimes difficult to understand what the authors are asking us to do. More than once my study partners complained the hardest part of a given problem was understanding the request. (Proponents could argue this is great preparation for real software shops but in a textbook it was a hinderance.) There are even a few times where it contradicts itself. Similarities aside, SICP explores the underlying ideas of computation and mixes computer science and philosophy in ways that were mind-expanding or captivating. My personal favorite was the discussion around representing time. At one point SICP notes that we are often trying to model concepts we don't even fully understand so it naturally gives rise to imperfect abstractions. For an inexperienced developer SICP would be incredible and I'd recommend it heartily. It exposes you to a variety of programming paradigms (functional, logical, imperative, object-oriented, declarative) as well as the advantages and disadvantages of each one. Different problems call for different solutions! You might know in theory that there's no Silver Bullet but working with each programming technique long enough to see what it excels and fails at is a lesson like no other. My study group concluded this book really suffers outside of a classroom setting. Examples follow! In the section on graphics we had to switch to a different programming language in order to get access to the drawing routines referenced by the text. Many of the exercises felt annoyingly redundant and we often wished someone would tell us which ones were more instructive and which ones could be skipped. Some of the changes the book instructs you to make break existing functionality in difficult to resolve ways; this happened enough times that by the end of the book we were all very defensive and would fork every change in functionality into its own implementation. Sometimes you're asked to do something that relies on functions you haven't been shown yet. Another frustration is mit-scheme** itself: the debugger was difficult to get a handle on and by default doesn't throw a stack trace so we wound up resorting to (pp) statements to untangle deeply recursive bugs. Note that all of these frustrations would disappear in a classroom. A meta-lesson from SICP was this: programmers crave peer acceptance as much as any other social group. Saying you loved SICP or are reading it scores you street cred. Someone out there is saying they love the book without having read it; we couldn't conceive of another explanation for the waves of adulation heaped on this book vs our experience reading it. When I was younger I naively believed that software culture was a meritocracy and free of social jockeying. Now I know there is social jockeying (listen to two engineers at a conference listing off technical esoterica to establish credibility) but software engineers don't think they are doing it! As logical people they believe they're immune to needing validation from fellow humans. At times SICP is a genuinely mind-expanding book that shows you new ways of thinking about computation. At other times it is a frustrating slog. I'd still recommend it for experienced programmers but I'd caution them to skip exercises liberally and to try using Racket or another more powerful Scheme. * There was someone who'd read the whole book but I never managed to get a hold of them. **We know there are better Schemes out there but we wanted to use the same version as the book to avoid compatibility headaches.

  3. 5 out of 5

    Nick Black

    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 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 several decades at MIT, this second edition is more than thorough enough for an introduction to computer science anywhere. Taught using the Scheme system (with its close bindings to the type-free λ-calculus), this canonical work covers register machines, logic programming, nondeterministic evaluation, the relations of recursion to iteration, and a wealth of carefully-woven-in jewels from number theory and discrete mathematics. Every programmer thinking himself the real deal owes it to himself to read through this grand work, epic in scope and breathtaking in sudden illuminations.

  4. 4 out of 5

    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.

  5. 3 out of 5

    Neill

    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.

  6. 4 out of 5

    John Chilton

    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 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 book so great. This book is fun, this book makes the art of programming fun. My favorite fiction books are by far and away the Harry Potter books. I do not find the prose of these books all that great, the action isn't entirely amazing, and the neither the characters nor the plot are particularly special. So what makes the Harry Potter books so great? I think it is the way J.K. Rowling's describes magic, and the world that is built up around magic. She puts you in the shoes of these characters, and captures how awesome it would be to be able to do magic. Abelson and Sussman do the same thing with SICP, but the magic is real. Anyone can pick up this book and a Scheme interpreter and do great and magical things. This book made the University of Minnesota my Hogwarts, and I cherish it for that. I must now lay one heavy critism upon this book, though really not on the book itself, but rather the context in which it is generally used. This book is not appropriate for introductory computer science courses. I was a teaching assistant for eight semesters for the introductory computer science course at the University of Minnesota that uses this book. Over that time, I went from thinking this book was perfect for this course, to strongly thinking this book was perfect, to a gradual realization that this book is not very good at all for the course. I spent a not insignificant amount time studing is cognative learning theory while in graduate school. What I learned from literature in that field paired with my own observations are what lead me to eventually realize this book is not appropriate for an introductory course. A certain segment of people are motivated by the abstract, and learn from general prinicples. I think this book is perfect for these people. Professors tend to disproportionately be motivated in this fashion, and I think this accounts for popularity of this book. This is not a majority of people however, this is not even a majority of students who graduate with Computer Science degrees. A python or ruby book focused on practical, real world examples and examples that have a graphical or tactile component in some way would do a vastly better job motivating computer science for the typical student. I think a lot of professors do not realize this. More distributingly though, there are many professors who realize this but continue to advocate this book because they feel it weeds out the people that cannot cut it in computer science. This is a profoundly wrong and chases a lot of people away from the field who would have a lot to add once they left the confines of acedamia and it self selecting focus on the abstractly motivated. If acemdemia did not filter and select in this manner, I think you would see more diverse population of top tier programmers. I think you would see more programmers with social skills, programmers with less arrogance. This in turn would help the whole community. Asking for help would be less stigmatized, "not developed here" would be less of a problem. Standards bodies developing specifications would likely have more individuals who focus on the practical implicaitons. I have however strayed wildly into the arena of complete speculation. What I am trying to say ultimately is that I think this is a must read book for computer science students, but I think it would be more appropriate for half of a junior level course on programming paradigms than the whole of an introductory course on programming more generally.

  7. 5 out of 5

    Lorin Hochstein

    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 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 programming for twenty years now. It's hard for me to imagine how a novice would react to this sort of book.

  8. 4 out of 5

    Satyajeet

    Downloadable PDF version here: https://github.com/sarabander/sicp-pd...

  9. 3 out of 5

    Keith

    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.

  10. 5 out of 5

    Zhi Han

    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 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 narrative structure to explore the formalism for the foundation of computer programming languages. It amazes me how the book can be done in such a beautiful way that reading the book does not feel like reading a textbook at all. The Berkeley videos at YouTube makes the lectures freely available on the web, which are really helpful for reading this book. The book is a wonderful exposure of the fundamentals of functional programming way of thinking, providing complete implementation of all the algorithms in Scheme. And the authors explain all the details of the algorithms, the challenges, the effort, a little bit of the history and the solution. Nothing is hided from the reader, and everything seems to be so beautifully simple. This book demonstrates a style of combining narrative and theoretical development in a book. As the book goes on, more and more and the technical details are revealed and in the end everything just makes sense. I feel lucky that I read the book. Even though I was not lucky enough to read it as a college freshman.

  11. 5 out of 5

    Lazysmokier

    Если коротко, то просто замечательная книга. Обязательна для прочтения любому программисту. Начинается от основ построения абстракций с просто отличными примерами, после чего сложность плавно нарастает заканчивается построением модели вычислительной машины с написанием лисп интерпретатора и компилятора под нее, что объясняет множество нюансов работы реальных интерпретаторов и компиляторов, при этом не захламляя повествование деталями. О переводе: Читал книгу на русском, перевод издательства Добро Если коротко, то просто замечательная книга. Обязательна для прочтения любому программисту. Начинается от основ построения абстракций с просто отличными примерами, после чего сложность плавно нарастает заканчивается построением модели вычислительной машины с написанием лисп интерпретатора и компилятора под нее, что объясняет множество нюансов работы реальных интерпретаторов и компиляторов, при этом не захламляя повествование деталями. О переводе: Читал книгу на русском, перевод издательства Добросвет. Это определенно лучший перевод компьютерной литературы который я видел. Все термины аккуратно переведены, никаких англицизмов, кроме того, автор полностью понимал, о чем он пишет (что в переводах, к сожалению, встречается не всегда)

  12. 5 out of 5

    Ettore Pasquini

    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 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 correctly in order to solve it in the easiest, most elegant way. I loved programming more after reading this book.

  13. 4 out of 5

    Minh Nhật

    đỉnh

  14. 5 out of 5

    Sreejith Pp

    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 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 much more mindful of program state.

  15. 4 out of 5

    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 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 fact that "nobody loves Lisp, and by the way, all the good parts of other languages stole from Lisp". Nobody I know started with material like SICP -- they wrote programs, ran into unknown problems and then were motivated to hit the books before hammering out more code. Which brings us to my second reason: today kids don't hit the books. They hit Stack Exchange to look for solutions they can cut and paste, and have attention spans that makes the MTV generation look like a bunch of stoic philosophers having their two hour afternoon nap. A five second ad on youtube makes their heads nearly explode. This book will be a hard sell. People learn to program because they want to write software. Not read books. At least not at first. Sure, there is a tiny minority for whom this book will be the best thing since cat videos on youtube, but those are the people you see cornering some poor sod at a party and boring them to tears. If you want to teach people how to write software you have to start by accepting they want to write software that does stuff in the real world. And for that you need a far more pragmatic approach. This book comes later.

  16. 4 out of 5

    Jonas

    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 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 lazy and nondeterministic evaluation, and to enable logic programming. Chapter 5 describes a register machine simulator and a compiler from scheme to machine code that runs on the simulator. There are tons of exercises in this book, and a remarkable percentage of them is actually interesting and provides deeper understanding of the topics covered in the book. (If you want to check out my (very suboptimal) solutions to most of the exercises you can find them here) The book is freely available.

  17. 4 out of 5

    Graham

    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 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 table book of crosswords or logic puzzles could be followed recreationally.. this is the kind of book that makes computing simple and fresh again even for experienced professionals, teaching some deep topics as it does so.

  18. 5 out of 5

    Scott Maclellan

    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 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. Take it slow as the book continues and try to do the examples. They are lots of fun.

  19. 3 out of 5

    Christian Brumm

    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 ...

  20. 4 out of 5

    Vasyl Pryimachuk

    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.

  21. 5 out of 5

    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.

  22. 4 out of 5

    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.

  23. 4 out of 5

    M

    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 :)

  24. 3 out of 5

    Joel McCracken

    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.

  25. 4 out of 5

    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.

  26. 5 out of 5

    Raghu Hudli

    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,

  27. 4 out of 5

    孚煜 李

    The best programming book

  28. 5 out of 5

    DJ

    more foundations of computing

  29. 3 out of 5

    Cees

    A meandering history of computing / giant pile of homework, with examples of questionable practicality, that keep getting abrogated. Simple examples of Monte Carlo and Huffman methods, though.

  30. 4 out of 5

    Ahmed Thabet

    Greatest book ever written (PERIOD)

Add a review

Your email address will not be published. Required fields are marked *

Loading...
We use cookies to give you the best online experience. By using our website you agree to our use of cookies in accordance with our cookie policy.