Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science)by Harold Abelson, Gerald Jay Sussman, Julie Sussman Published 25 Jul 1996
|Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science).pdf|
Download Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science) (2014) PDF ePub eBook
- 1. Register a free 1 month Trial Account.
- 2. Download as many books as you like.
- 3. Cancel the membership at any time if not satisfied.
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.
"Structure and Interpretation of Computer Programs (MIT Electrical Engineering and Computer Science)" Reviews
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.
Downloadable PDF version here:
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.
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.
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.