- Series: MIT Press
- Hardcover: 720 pages
- Publisher: The MIT Press; First Edition edition (February 12, 2001)
- Language: English
- ISBN-10: 0262062186
- ISBN-13: 978-0262062183
- Product Dimensions: 7.9 x 0.2 x 9 inches
- Shipping Weight: 3.1 pounds (View shipping rates and policies)
- Average Customer Review: 18 customer reviews
- Amazon Best Sellers Rank: #148,987 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
How to Design Programs: An Introduction to Programming and Computing First Edition Edition
Use the Amazon App to scan ISBNs and compare prices.
There is a newer edition of this item:
The Amazon Book Review
Author interviews, book reviews, editors picks, and more. Read it now
Frequently bought together
Customers who bought this item also bought
About the Author
Robert Bruce Findler is Assistant Professor of Electrical Engineering and Computer Science at Northwestern University.
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
These authors get that, and more. They take the time to describe how memorization destroys the human spirit, let alone the will to go on in programming! A majority of other programming books do what both books warn about: kill the will to go on with just awful tedium. "Learning" data structures, commands, rote algorithms, etc. is about as fun as watching an apple rot.
This fine text, still not outdated and a gem, created the DrScheme language out of Scheme (a Lisp descendant functional paradigm language) especially for beginning programmers. The book and online web support (still active in late 2013) include a custom SDK/IDE (programming interface) like a little toolkit window, with a "calculator" that can test structures and algorithms with a fun interface that gently leads you into debugging without creating thoughts of suicide.
I train autodidacts with online tutorials and some of the finest programmers I've ever met are self taught. This is a GREAT text for that purpose, because autodidacts are self motivated and don't have Satan the Professor cracking the whip to make them finish. In that frame the text has to be fun, interesting and revelatory or my favorite audience (self learners) just walk away. This is one of the rare ones that does not disappoint!
Many authors try to pack their texts with show off garbage for their peers. This text is 180 degrees from that; totally student oriented, and always aware of how NOT to teach programming. The analogies, insights, exercises, pedagogy are wonderfully thorough, while bending over backwards to avoid methods that a rabid chimp could learn, or so rote that one wonders where the macro meta program is that should do this to save human dignity. Highly recommended, both for teachers who care about their students, and my fellow self study buddies.
Library Picks reviews only for the benefit of Amazon shoppers and has nothing to do with Amazon, the authors, manufacturers or publishers of the items we review. We always buy the items we review for the sake of objectivity, and although we search for gems, are not shy about trashing an item if it's a waste of time or money for Amazon shoppers. If the reviewer identifies herself, her job or her field, it is only as a point of reference to help you gauge the background and any biases.
From page one, HtDP starts talking about good program design, and gives a methodical approach. Until this, I'd always thought programming books were "here are ten small example programs; go write ten more." That's hardly teaching. But HtDP builds up a straightforward design recipe, to guide programs along. If I get stuck or have a mistake in my program, 90% of the time I realize it's because I strayed from the book's recipe. The approach is language-independent, although some programming environments make it much easier to implement the design recipe; the book provides links to a good (free) Scheme environment, which it uses for its code examples too. (I've come to use that environment day-to-day). My code--in any language--has become much more robust, and when I do have a bug I usually locate it early, thanks to this book.
In addition, HtDP made me think about things I'd taken for granted: How is assignment to a variable fundamentally different than assignment to a structure's field? Even, *why* do I use assignment statements in certain situations, instead of choosing a functional approach? How often do my programs actually need the efficiency of imprecise floating-point arithmetic, vs using bignums which totally liberate me from numerical inaccuracy?
Although the text is available on line, I cherish my hardcopy. This is a book to first learn programming from, and one to revisit every five years.
However, I would not recommend it for self-study. Most of the high school students I have worked with found it hard to follow on their own.
Furthermore, in the decade since this book was first published, the authors of the book have continued to evolve this style of teaching, so some parts of the book are out of date (not in the sense that they don't work, but in the sense that it is no longer the recommended way to teach this material). All of the drawing exercises, for example, are now obsolete in favor of a new and improved animation teachpack.
I fully expect the second edition of this book will resolve these issues, and I look forward to giving the second edition a full five stars!