Enter your mobile number 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.
Getting the download link through email is temporarily not available. Please check back later.

  • Apple
  • Android
  • Windows Phone
  • Android

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

Python for Software Design: How to Think Like a Computer Scientist 1st Edition

4.4 out of 5 stars 17 customer reviews
ISBN-13: 978-0521725965
ISBN-10: 0521725968
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.
Have one to sell? Sell on Amazon
Rent On clicking this link, a new layer will be open
$16.08 On clicking this link, a new layer will be open
Buy used On clicking this link, a new layer will be open
$16.93 On clicking this link, a new layer will be open
Buy new On clicking this link, a new layer will be open
$43.17 On clicking this link, a new layer will be open
More Buying Choices
29 New from $32.62 50 Used from $7.49
Free Two-Day Shipping for College Students with Prime Student Free%20Two-Day%20Shipping%20for%20College%20Students%20with%20Amazon%20Student


The Amazon Book Review
The Amazon Book Review
Author interviews, book reviews, editors picks, and more. Read it now
$43.17 FREE Shipping. In Stock. Ships from and sold by Amazon.com. Gift-wrap available.
click to open popover

Frequently Bought Together

  • Python for Software Design: How to Think Like a Computer Scientist
  • +
  • Python Programming: An Introduction to Computer Science
Total price: $63.16
Buy the selected items together

Editorial Reviews

Review

"I very much like Python for Software Design. I hope that instructors in computational science will learn some pedagogical lessons from it. Repeatedly, the book showed code that was simply readable. The feature, its rationale, its uses, and debugging hints are together for collective reference (like an object?). And ideas are repeated as they naturally reappear. Is that how computer scientists think? I don't know. But if that's how they teach, they're doing a fine job. When trying to teach the more difficult ideas of floating point errors, control of step size, mesh refinement, and parallel programming, computational scientists could learn something from Python for Software Design.
Dan Nagle, Scientific Programming

"... the book offers plenty of examples, very helpful explanations, and useful illustrations."
F.H. Wild III, Choice Magazine

"Downey successfully presents the programming language Python. The author provides details of Python in a cogent fashion, enabling a novice in programming to cover the material with relative ease. Downey succeeds in fulfilling his four goals, stated in the preface."
N. Chakrapani, reviews.com

"It is short and well written, it follows a very smooth progression, and its companion web Site is very good."
O. Lecarme, reviews.com

"a book that is nearly free from technical bugs; explains concepts in clear, readable prose; contains helpful illustrations; and integrates activities to engage its readers."
Max Hailperin, Computing in Science and Engineering

Book Description

Python for Software Design is a concise introduction to software design using the Python programming language. The focus is on the programming process, with special emphasis on debugging. The book includes a wide range of exercises, from short examples to substantial projects, so that students have ample opportunity to practice each new concept.
NO_CONTENT_IN_FEATURE

New York Times best sellers
Browse the New York Times best sellers in popular categories like Fiction, Nonfiction, Picture Books and more. See more

Product Details

  • Paperback: 270 pages
  • Publisher: Cambridge University Press; 1 edition (March 16, 2009)
  • Language: English
  • ISBN-10: 0521725968
  • ISBN-13: 978-0521725965
  • Product Dimensions: 8.5 x 0.6 x 10 inches
  • Shipping Weight: 1.3 pounds (View shipping rates and policies)
  • Average Customer Review: 4.4 out of 5 stars  See all reviews (17 customer reviews)
  • Amazon Best Sellers Rank: #418,067 in Books (See Top 100 in Books)

Customer Reviews

Top Customer Reviews

By Alexandros Gezerlis on June 16, 2010
Format: Paperback
Allen Downey's "Python for software design" is a major revision of the author's earlier work "How to think like a computer scientist", and is intended as an introduction to software design using the Python programming language.

The Good: this book is easy and fun, just like Python itself. The author uses clear language, defining each new term as soon as it appears, and then gathering all the definitions in a glossary at the end of every chapter. The book is approximately 250 pages long, consisting of 19 chapters. Each of these is about ten pages long. Most chapters focus on elements of the language (e.g. functions, strings, tuples, inheritance) while a few of them are "case studies" which use the material introduced up to that point. Chapters are subdivided into at least 10 sections each, the last of which is always the exercise section. The author has provided solutions to some of the exercises on his website, where the interested reader can also find the example code used in the book, swampy (a suite of Python modules the author has written), as well as the complete text of the book (available for free). Toward the end of each chapter and in an appendix, Downey has provided material on debugging. These sections often provide him with an excuse to offer advice on programming best practices.

The Bad: classes and objects are introduced in chapter 15 (of 19). There are those who might think that such a chapter structure leads the reader to undervalue object-oriented programming. However, given the book's intended readership, I don't think this is a particularly egregious error. The question of the readers's required background (or lack thereof) is also connected to the choice of topics covered in this volume: since this is an introduction, many things are obviously left out (e.g.
Read more ›
Comment 33 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: Paperback
This book fills a niche that few other Python books can fill: an introduction to Python that also gives a strong introduction to computer science and software design.

I have read many Python books aimed at students in Computer Science that are little more than translations of a previous book into Python. Many of those books are full of "non-Pythonic", unintuitive, or erroneous code. This book makes none of those mistakes. In a relatively small package it still manages to give a firm foundation in writing concise and efficient Python programs. Chapters are written around Python's basic data types and quickly show the correct way to use these structures.

The case studies included are excellent and get students involved with graphics early in the book--with help from the Swampy module. Other case studies show how easy it is to use Python to parse text files and write functions for lexicographical analysis. After covering the basic types (including files and modules), Downey moves on to object-oriented programming and wraps up the book with a look at Graphical User Interface (GUI) programming in Python.

This book is well suited to individual study, but I use it in a high school Computer Science course. I find this book to be much better than most textbooks aimed at introductory computer science students. This book compares well with the classic Python Programming: An Introduction to Computer Science [With CD-ROM] [PYTHON PROGRAMMING].
4 Comments 16 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: Paperback
I'm using this book to teach my (homeschooled high school sophomore) son programming, and it is working very well. It teaches programming basics, some computer science and software design, and debugging using Python. Unlike some others I glanced at, it is mercifully brief. It has solid exercises with online code solutions as well as modules to get up and running fast (swampy is fun) -- they can be easily supplemented with exercises from my son's math and physics texts. The author gets into some substantial topics early (like recursion) that have kept us challenged even in early chapters. I was a bit apprehensive about launching in to Python since I have never studied an object oriented language (my programming experience is dated by about 25 years), but the text is clear and Python is fun and accessible.

While I appreciate the author's emphasis on debugging, I think he goes into more detail on debugging than is useful at this level. That is, the exercises are not difficult or involved enough to practice the debugging strategies that he teaches. He is an experienced teacher, however, so perhaps his ounce of prevention will save students trouble down the road. You might want to consider a supplemental text that is more reference-oriented.
Comment 9 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: Paperback
I had been looking at a few Python books, but this strikes me as an extremely well written introduction. Very systematic and nicely structured. One thing that makes this book valuable for me is the explanation of object oriented programming. Having learned programming in the "old days" with Fortran, this object oriented approach still is somewhat unclear to me. This books leads the reader slowly towards this issue, such that the usefulness of using objects, classes, etc. becomes very clear out of the problems from all proceeding chapters.

It should be mentioned that this is an open source book and freely and legally available on the net! But some, like me, may find it nice to have a printed copy to work through.
Comment 5 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

Python for Software Design: How to Think Like a Computer Scientist
Amazon Giveaway allows you to run promotional giveaways in order to create buzz, reward your audience, and attract new followers and customers. Learn more about Amazon Giveaway
This item: Python for Software Design: How to Think Like a Computer Scientist