How to Design Programs and over one million other books are available for Amazon Kindle. Learn more

Buy New

or
Sign in to turn on 1-Click ordering.
or
Amazon Prime Free Trial required. Sign up when you check out. Learn More
Buy Used
Used - Good See details
$32.04 & this item ships for FREE with Super Saver Shipping. Details

or
Sign in to turn on 1-Click ordering.
 
   
Kindle Edition
 
   
Sell Back Your Copy
For a $4.32 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
How to Design Programs: An Introduction to Programming and Computing
 
 
Start reading How to Design Programs on your Kindle in under a minute.

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.

How to Design Programs: An Introduction to Programming and Computing [Hardcover]

Matthias Felleisen (Author), Robert Bruce Findler (Author), Matthew Flatt (Author), Shriram Krishnamurthi (Author)
4.4 out of 5 stars  See all reviews (14 customer reviews)

List Price: $75.00
Price: $64.70 & this item ships for FREE with Super Saver Shipping. Details
You Save: $10.30 (14%)
  Special Offers Available
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.com. Gift-wrap available.
Only 7 left in stock--order soon (more on the way).
Want it delivered Monday, January 30? Choose One-Day Shipping at checkout. Details
Textbook Student FREE Two-Day Shipping for Students. Learn more

Formats

Amazon Price New from Used from
Kindle Edition $58.23  
Hardcover $64.70  
Sell Back Your Copy for $4.32
Whether you buy it used on Amazon for $20.09 or somewhere else, you can sell it back through our Book Trade-In Program at the current price of $4.32.
Used Price$20.09
Trade-in Price$4.32
Price after
Trade-in
$15.77

Book Description

0262062186 978-0262062183 February 12, 2001

This introduction to programming places computer science in the core of a liberal arts education. Unlike other introductory books, it focuses on the program design process. This approach fosters a variety of skills--critical reading, analytical thinking, creative synthesis, and attention to detail--that are important for everyone, not just future computer programmers.The book exposes readers to two fundamentally new ideas. First, it presents program design guidelines that show the reader how to analyze a problem statement; how to formulate concise goals; how to make up examples; how to develop an outline of the solution, based on the analysis; how to finish the program; and how to test. Each step produces a well-defined intermediate product. Second, the book comes with a novel programming environment, the first one explicitly designed for beginners. The environment grows with the readers as they master the material in the book until it supports a full-fledged language for the whole spectrum of programming tasks.All the book's support materials are available for free on the Web. The Web site includes the environment, teacher guides, exercises for all levels, solutions, and additional projects.


Special Offers and Product Promotions

  • Buy $50 in qualifying physical textbooks, get $5 in Amazon MP3 Credit. Here's how (restrictions apply)

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) + The Little Schemer - 4th Edition
Price For All Three: $122.40

Show availability and shipping details

Buy the selected items together
  • In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details

  • Structure and Interpretation of Computer Programs - 2nd Edition (MIT Electrical Engineering and Computer Science) $35.88

    In Stock.
    Ships from and sold by Amazon.com.
    This item ships for FREE with Super Saver Shipping. Details

  • The Little Schemer - 4th Edition $21.82

    In Stock.
    Ships from and sold by Amazon.com.
    Eligible for FREE Super Saver Shipping on orders over $25. Details



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.


Product Details

  • Reading level: Ages 18 and up
  • Hardcover: 720 pages
  • Publisher: The MIT Press (February 12, 2001)
  • Language: English
  • ISBN-10: 0262062186
  • ISBN-13: 978-0262062183
  • Product Dimensions: 8.6 x 8 x 1.7 inches
  • Shipping Weight: 3.1 pounds (View shipping rates and policies)
  • Average Customer Review: 4.4 out of 5 stars  See all reviews (14 customer reviews)
  • Amazon Best Sellers Rank: #58,296 in Books (See Top 100 in Books)

More About the Author

Matthias Felleisen grew up in Germany and came to the United States at the age of 21.

In 1987, he received his doctorate from Daniel P. Friedman, with whom he had also rewritten The Little Lisper, his first book. At this point, The Little Lisper has been in print for nearly 35 years, an incredible age in the fast-lived world of programming and programming languages. The book covers the fundamental topic of recursive programming in an entertaining dialog style. While the book summarizes the high level ideas as a collection of ten commandments, the reader must work through the material and formulate lessons on his or her own.

Felleisen spent from 1987 through 2001 at Rice University in Houston, Texas, a bustling, always growing city of friendly people. He conducted research on every kind of topic in programming languages; data structures and algorithms for the translation process; the mathematical theory of behavioral equality; and the design of large systems. Many of his ideas came to him while he swam his daily miles in the pool of West University Place, a small town within Houston.

One particularly important idea is due to Carrie, the baby sitter that he and his wife Helga used to hire. The sitter would often work on her high school math problems while Felleisen and his wife would go to the symphony or the theatre. One evening Felleisen noticed that the baby sitter had not made any progress on her homework while they had been out for three hours. He showed the baby sitter how to solve her problems, using the ideas in The Little Lisper. The success was surprising and wonderful. The baby sitter's grades jumped dramatically, and Felleisen and his research team started work on a curriculum that synthesizes computer science and mathematics for novice programmers. Felleisen and his doctoral students wrote a book on this idea, How to Design Programs, and spent the last fifteen years educating teachers and faculty colleagues about it. For this work, Felleisen received the Karl Karlstrom Award in 2009, the major recognition by the professional computer science organization (ACM) for individuals who make critical contributions to the field.

Felleisen and his wife now live in Maine and Massachusetts. He teaches at Northeastern University in Boston and continues to conduct research in programming languages and train PhD students in this central field of computer science.

 

Customer Reviews

14 Reviews
5 star:
 (10)
4 star:
 (1)
3 star:
 (1)
2 star:
 (2)
1 star:    (0)
 
 
 
 
 
Average Customer Review
4.4 out of 5 stars (14 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most Helpful Customer Reviews

52 of 52 people found the following review helpful:
5.0 out of 5 stars A Recipe for Programming, July 5, 2006
By 
not-just-yeti (Blacksburg, VA USA) - See all my reviews
This review is from: How to Design Programs: An Introduction to Programming and Computing (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.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


36 of 37 people found the following review helpful:
5.0 out of 5 stars This is "the book" on programming, April 28, 2001
By A Customer
This review is from: How to Design Programs: An Introduction to Programming and Computing (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.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


76 of 84 people found the following review helpful:
5.0 out of 5 stars Should be read by Everyone who wants to program., September 27, 2001
This review is from: How to Design Programs: An Introduction to Programming and Computing (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).

One thing that I like is that, it focused on how to "design" programs, not just how to program, while college classes are mostly focused on how to write programs. No matter how students write their codes, if it could run, then it is fine.

Then, I think, a lot of people do have ability to program, a lot are good at it. However, the number of people who knows how to design programs are much lesser. And this would result in something like those silly examples at the beginning of this review. Therefore, this book had emphasized on quite an important thing.

And the last thing to say about this one is: MIT Press' textbooks are very high-quality, and this one is not an exception. It is very easy to read and to understand. And, even the html version is available at the book's official homepage, it is nice to have the printed version.

How to "design" programs is very important for every CS major people, and is important to everyone else in general (to program your "everyday life schedule", etc). Whether you want to become a professional programmer (write codes for living, etc) or not.

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No

Share your thoughts with other customers: Create your own review
 
 
 
Most Recent Customer Reviews











Only search this product's reviews



Inside This Book (learn more)
First Sentence:
Getting Started We learn to compute at a young age. Read the first page
Key Phrases - Statistically Improbable Phrases (SIPs): (learn more)
rest alon, generative recursion, first alon, first alos, pivot item, complete function definition, natural recursion, new status word, posn posn, delta pixels, generalized constructor, structure mutators, greatest common divisior, artist title price, structurally recursive function, function consumes, design recipe, selector expressions, following data definition, generative step, new data definition, list symbol number, inexact numbers, orig dest, designing functions
Key Phrases - Capitalized Phrases (CAPs): (learn more)
Exercises Exercise, Advanced Student Scheme, Beginning Student Scheme, Fahrenheit Celsius, Mean Value Theorem, Designing Abstractions, Peg Solitaire, Phase Goal Activity Data, Carl Bettina, Exercises Section, Finger Exercises, Full Scheme, Intermediate Student Scheme, Help Desk, Processing Two Lists Simultaneously, Suppose the Definitions, Use the Scheme
New!
Concordance | Text Stats
Browse Sample Pages:
Front Cover | Table of Contents | First Pages | Index | Back Cover | Surprise Me!
Search Inside This Book:

Citations (learn more)
This book cites 4 books:
 
1 book cites this book:

What Other Items Do Customers Buy After Viewing This Item?


Tags Customers Associate with This Product

 (What's this?)
Click on a tag to find related items, discussions, and people.
 
(14)
(4)

Your tags: Add your first tag
 

Customer Discussions

This product's forum
Discussion Replies Latest Post
Answers only available to instructors? 1 Mar 25, 2010
Book available free 0 Dec 22, 2006
See all 2 discussions...  
Start a new discussion
Topic:
First post:
Prompts for sign-in
 


Active discussions in related forums
Search Customer Discussions
   
Related forums



So You'd Like to...



Look for Similar Items by Category


Look for Similar Items by Subject