Rating: ![5 stars](http://www.reviewfocus.com/images/stars-5-0.gif) Summary: SICP as interpreted by an MIT student Review: SICP is taught in the first class MIT EECS majors take, called 6.001. It is typically taken by freshmen and some sophomores, and is overall considered to be a moderately challenging MIT class. Much has been written about the merits and flaws of this book, so I will not more to the conversation. However, it may be useful for you to know that this class is a foundation for all other MIT CS classes. Artificial intelligence (6.034), computer algorithms (6.046), computer architecture (6.004), and others all assume a firm understanding of SCHEME. If you want to have more practice with SCHEME, go to the MIT 6.001 website...There, you will find links to problem sets, solutions, previous exams and previous semesters. And somewhere buried away in there is a link to a complete online version of SICP. That's right, why buy the book when you can read the entire thing online.
Rating: ![5 stars](http://www.reviewfocus.com/images/stars-5-0.gif) Summary: Been there, Done that, And It is definitely worth it... Review: Whew! I just got done with the finals in scheme. This book contains a great deal of information. Some of my favorite topics in it include the huffman algorithm, and the streaming. I think I learned a lot from this book and the biggest gain I had was the grasp on recursion. Iteration is awesome because I have done c++ before. Recursion always gave me a nightmare previously. This book introduced us the idea of head, tail, and tree recursion. Once we got deep I got pretty good at recursion. The book taught me how a program gets evaluated using environment diagram. It had a lot of examples and presented students some kewl theorems. I will definitely Keep it next to my bed.
Rating: ![5 stars](http://www.reviewfocus.com/images/stars-5-0.gif) Summary: Excellent book Review: I have read some of the other reviews on this book, and I must say, many of you should be ashamed of yourselves. How dare you call yourselves students of Computer Science when all you are interested in is hacking out poorly designed code in poorly designed languages like C, C++, and Java? A book like this teaches you Computer Science, without all the unnecessary clutter that those restrictive languages provide. It teaches you in Scheme, a language so simple and expressive it does not need to be taught. A course based on this text can advance further than any equivalent text in another language because you don't have to waste time dancing around language syntax. I know many of you are university students, but perhaps once in your life you can learn something for a change!
Rating: ![4 stars](http://www.reviewfocus.com/images/stars-4-0.gif) Summary: The Difference Between "Coding" and "Programming" Review: Read this book if you want to understand the difference between "coding" and "software engineering". Read it if you believe that, in order to master the craft of computer programming, it is necessary first to understand the principles that underly how we use computers to automate reasoning. Do not read this book if you just wanna "write code". Such readers will not understand the book, and it will just frustrate them. Instead, read any one of the many books with titles like "Teach Yourself C++ in 21 Days". And judging by some of what the negative reviewers have said ("scheme doesn't have iteration, just recursion", and "just a lot of theory", and "learn a more common language like C++") if you do not understand this book, do not ask me for a job. Instead, go on believing that today's most fashionable language is superior to all others and that learning syntax is the most important thing you can do. This is a challenging book. It is not a cook-book of algorithms, and it does not contain one example that people who advocate practice over theory would label "real world". Instead, it gives readers the mental tools to create algorithms when the cook-book is inadequate. But it ain't perfect. With the exception of one small example, the book does not go into the compromises that digital computers make (precision in floating point math, for example).
Rating: ![3 stars](http://www.reviewfocus.com/images/stars-3-0.gif) Summary: Not for learning unless ... Review: I love this book. It's fun to read the things I already know, put together in such an interesting way. If you have 10 years serious experience as a computer programmer, and love programming, this book is for you. (Five stars.) However, I really bought it to see how the masters teach introductory programming. They don't, unless maybe you have a SAT score of 1500+, an IQ of 170++, and are an MIT student being taught by someone who knows and loves this book. Otherwise, don't touch it! There are better things to do with the money: burn it, give it to the rich, or buy drugs from a narc. (One star.)
Rating: ![5 stars](http://www.reviewfocus.com/images/stars-5-0.gif) Summary: Steal This Book Review: If you can't afford this book then steal it from somebody. Reading and understanding this book is a rite of passage for real programmers. Then read "No Silver Bullet: Essence and Accidents of Software Engineering" by Frederick P. Brooks, Jr. and "A Relational Model of Data for Large Shared Data Banks" by Edgar F. Codd. Reading and understanding these 2 papers is a rite of passage for successful software engineers.
Rating: ![1 stars](http://www.reviewfocus.com/images/stars-1-0.gif) Summary: boring, dry, and devoid of useful information Review: The book never lives up to all the hype surrounding it. In fact, of the over 50 people I know who had the misfortune to study out of it, none liked it. I imagine only a few crazy souls who care about nothing but dry computer langague theory would even consider this worth reading. Recursion and information hiding via procedural/object code is nothing mysterious and is taught in all other CS classes, so the text adds nothing new. It merely retells the same old obvious programming techniques using a very poorly designed language (Scheme) and using completely uneducational examples. In short, this book is an overrated waste of time. If you are familiar with structured programming in a langauge like C++, you won't get anything new out of this. In fact, any topic presented here is better learned elsewhere, since the text is just one of those poorly written books that try to be encyclopedic at the expense of being interesting and thorough.
Rating: ![5 stars](http://www.reviewfocus.com/images/stars-5-0.gif) Summary: A great book on programming language paradigms! Review: This is a wonderful text that introduces the reader to the theoretical side of computer programs. It explores the functional, imperative, logical, and other timeless paradigms in a well-presented manner. The book uses Scheme as it implementation language. I think that some of the negative reviewers missed the point of the book. The point is to understand the theorical under-pinnings of programming language paradigms. I believe that some of the negative reviewers felt that the book was trying to push Scheme as a language of choice for programming on the job. This is not the case, but rather the authors choose Scheme because it is easy to learn and can readily be used to exemplify the major programming language paradigms. I feel sorry for those who missed the point of the book, for they have misunderstood a true gem.
Rating: ![5 stars](http://www.reviewfocus.com/images/stars-5-0.gif) Summary: At least give it a try! Review: This is the bravest book on programming I have read. I say bravest because, rather than use Pascal or C and give you the topics "you must know", the authors broke free from tradition. They use Scheme, a language of astonishing flexibility and uniformity, and they show you the topics they believe are beautiful and will enlighten you. The result is a book that makes you think hard, and poses deep questions. If you are the type who likes thinking about the "foundations", this book can be a revelation, no less. You don't need previous experience or helper books, all you need is contained in this one; but you will need to work hard, and even take breaks, as the pace becomes very hard by the last two chapters. The book is beautifully written, though not adorned, and it provides you with a vocabulary and ways of thinking that will become indispensable, and that are rarely found in other books. Good luck!
Rating: ![1 stars](http://www.reviewfocus.com/images/stars-1-0.gif) Summary: Boring... Review: That's right, this book is plain boring, even for a CS major like myself. I did not learn anything except for Scheme syntax. Once you get that, the rest of the book is useless. This text is a half-baked attempt at algroithms and data structures, and of course, since it's tailored to scheme, I never found much use for these concepts later. In fact, once you start programming in a real language like C, you'll have to relearn all the concepts and see how they really work in the proper programming setting. On top of that, the writers make absolutely no attempt to be clear. Because no one thought of building iteration into scheme, you're stuck with a perposterous recursion overuse, complicating many simple algorithms, and confusing even the brightest students. Even my professor didn't like the book. It has the feel of a book written for no other reason than Abelson's self-gratification. If you value your time, avoid this book. Get instead the wonderful text by Cormen, Leiserson and Rivest : "Introduction to Algorithms"
|