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.

  • Apple
  • Android
  • Windows Phone
  • Android

To get the free app, enter your email address or mobile phone number.

How to Design Programs: An Introduction to Programming and Computing 1st Edition

4.4 out of 5 stars 18 customer reviews
ISBN-13: 978-0262062183
ISBN-10: 0262062186
Why is ISBN important?
ISBN
This bar-code number lets you verify that you're getting exactly the right version or edition of a book. The 13-digit and 10-digit formats both work.
Scan an ISBN with your phone
Use the Amazon App to scan ISBNs and compare prices.
Trade in your item
Get a $8.85
Gift Card.
Have one to sell? Sell on Amazon
Rent On clicking this link, a new layer will be open
$15.09 - $15.10 On clicking this link, a new layer will be open
Buy used On clicking this link, a new layer will be open
$28.59 On clicking this link, a new layer will be open
Buy new On clicking this link, a new layer will be open
$83.18 On clicking this link, a new layer will be open
More Buying Choices
62 New from $44.91 65 Used from $21.00
Free Two-Day Shipping for College Students with Amazon Student Free%20Two-Day%20Shipping%20for%20College%20Students%20with%20Amazon%20Student


Barron's
Navigate global markets with Barron's digital membership Learn more
$83.18 FREE Shipping. Only 10 left in stock (more on the way). Ships from and sold by Amazon.com. Gift-wrap available.

Frequently Bought Together

  • How to Design Programs: An Introduction to Programming and Computing
  • +
  • Structure and Interpretation of Computer Programs - 2nd Edition (MIT Electrical Engineering and Computer Science)
  • +
  • Introduction to Algorithms, 3rd Edition (MIT Press)
Total price: $199.83
Buy the selected items together

Editorial Reviews

About the Author

Robert Bruce Findler is Assistant Professor of Electrical Engineering and Computer Science at Northwestern University.



Matthew Flatt is Associate Professor in the School of Computing at the University of Utah.



Shriram Krishnamurthi is Assistant Professor of Computer Science at Brown University.

NO_CONTENT_IN_FEATURE


Product Details

  • Series: MIT Press
  • Hardcover: 720 pages
  • Publisher: The MIT Press; 1st 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: 4.4 out of 5 stars  See all reviews (18 customer reviews)
  • Amazon Best Sellers Rank: #529,072 in Books (See Top 100 in Books)

Customer Reviews

Top Customer Reviews

Format: Hardcover
This book opened my eyes. I'd finished a Ph.D. in computer science, and had a decent exposure to quite a few programming languages and paradigms, before coming across this book. I was surprised to start working through this introductory book, and find myself learning new things! The book transformed my approach to programming.

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.
1 Comment 84 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Hardcover
This book is going to be a classic. Unlike other introductory books on programming, it focuses on ideas not examples. It teaches students to organize their thoughts. It emphasizes thinking through problems. It pushes students to formulate concise comments, illustrate them with concrete examples, and test their programs systematically and automatically. I have not seen anything like this before. If you want to know the "why" and not just play with examples, buy this book! Note: It uses Scheme, which isn't widely used in industry (yet?) but don't let this deter you. The language is free, and it is very simple.
Comment 49 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Hardcover
Have you ever looked at other people's codes and said to yourself something like "No... this isn't the way it should be written!". Or, worst yet, have you ever been asked by someone who wants you to read his/her codes and tell him/her what does it do?
Both things happened quite often, though.
The problems are mainly because they don't know how to "design" their programs properly. Being able to progam doesn't mean being to design/organize a good code at all. And being good at finding/inventing algorithms for problem solving doesn't mean that either.
One another thing, I (maybe just only me, I don't know) think that C shouldn't be taught as the first language (at least, not anymore). This is mainly because, in C, you can hardly express yourself. Also, C codes look cryptic to those new to programming. And you must know a lot, and practice a lot, (that takes a lot of time, friend) to be able to express what you want.
And also, several times, I saw many people just playing around with the * and & (well, the pointer-dereferencing, and address-taking symbol in C/C++), adding one more, deleting one off, to see which will make their programs work. (Sometime, it just works by miracle...)
This book, using Scheme (a modern dialect of Lisp) as the language of choice. I, personally, agree of choosing it. Scheme was designed in the way such that programmers can focus on what they want to express, rather than imprementation details. From my own experience, I became a better programmer after learning it. (I was already a C++ programmer by that time. I just have to use Lisp on my study/research).
Read more ›
Comment 92 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Hardcover
Eric Raymond writes in "How to be a hacker" that learning Lisp will make you a better programmer for the rest of your days. And this book shows why. With Lisp (actually Scheme, but never mind that), your programs match your problem statement. Programming is no longer a mystical experience where "it suddenly works". With this book (and Scheme) you understand *why* it works. In this day and age, it is exactly the book that freshmen should see .. especially those who think they already know how to program. Thanks for writing this book. It will make my teaching easier.
Comment 38 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse
Format: Hardcover
I have been professionally developing software for about 5 years. I found this book to be one of the most useful and helpful books to help my coding skills. Even though I have been programming professionally for a few years and have a computer science degree, I learned a lot of new neat concepts from this book. It also helped to me to remind me of all the basic good practices that I have forgotten.

It is also an excellent book for beginners. The books doesn't use a popular programming language like Java to accomplish its goals. Instead, it uses Scheme so the student can focus on the concepts rather than syntax. It also teaches great concepts and breaks the problem down on how to solve various problems. Also it isn't "hardcore" like SICP-- it is very friendly to non-MIT level people.
Comment 25 people found this helpful. Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback.
Sorry, we failed to record your vote. Please try again
Report abuse

Most Recent Customer Reviews

Set up an Amazon Giveaway

How to Design Programs: An Introduction to Programming and Computing
Amazon Giveaway allows you to run promotional giveaways in order to create buzz, reward your audience, and attract new followers and customers. Learn more
This item: How to Design Programs: An Introduction to Programming and Computing