or
Sign in to turn on 1-Click ordering
Sell Us Your Item
For a $0.27 Gift Card
Trade in
More Buying Choices
Have one to sell? Sell yours here
Tell the Publisher!
I'd like to read this book on Kindle

Don't have a Kindle? Get your Kindle here, or download a FREE Kindle Reading App.
Sorry, this item is not available in
Image not available for
Color:
Image not available

To view this video download Flash Player

 

Python for Software Design: How to Think Like a Computer Scientist [Paperback]

Allen B. Downey
4.2 out of 5 stars  See all reviews (13 customer reviews)

List Price: $43.00
Price: $33.39 & FREE Shipping. Details
You Save: $9.61 (22%)
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.
Want it Tuesday, May 21? Choose One-Day Shipping at checkout. Details
Free Two-Day Shipping for College Students with Amazon Student

Formats

Amazon Price New from Used from
Hardcover $79.72  
Paperback $33.39  
Shop the new tech.book(store)
New! Introducing the tech.book(store), a hub for Software Developers and Architects, Networking Administrators, TPMs, and other technology professionals to find highly-rated and highly-relevant career resources. Shop books on programming and big data, or read this week's blog posts by authors and thought-leaders in the tech industry. > Shop now

Book Description

March 16, 2009 0521725968 978-0521725965 1
Python for Software Design is a concise introduction to software design using the Python programming language. Intended for people with no programming experience, this book starts with the most basic concepts and gradually adds new material. Some of the ideas students find most challenging, like recursion and object-oriented programming, are divided into a sequence of smaller steps and introduced over the course of several chapters. 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. Exercise solutions and code examples are available from thinkpython.com, along with Swampy, a suite of Python programs that is used in some of the exercises.

Frequently Bought Together

Python for Software Design: How to Think Like a Computer Scientist + Python Programming: An Introduction to Computer Science 2nd Edition + Python Programming for the Absolute Beginner, 3rd Edition
Price for all three: $97.48

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.

Important Information

Ingredients
Example Ingredients

Directions
Example Directions

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: 7 x 0.6 x 10 inches
  • Shipping Weight: 1 pounds (View shipping rates and policies)
  • Average Customer Review: 4.2 out of 5 stars  See all reviews (13 customer reviews)
  • Amazon Best Sellers Rank: #511,088 in Books (See Top 100 in Books)

More About the Author

Allen Downey is a Professor of Computer Science at Olin College and a former Visiting Scientist at Google, Inc.

He is the author of Think Stats, Think Python, the How to Think Like a Computer Scientist series (in Java, C++, OCaml, and more), The Little Book of Semaphores, and other computer science books, all available free at greenteapress.com.

Allen is an avid runner, gardener and cook. He ran the Boston Marathon for the first time in 2011, finishing in 3:45.

Allen lives in Needham, MA with his wife, two daughters, and two cats.

Customer Reviews

4.2 out of 5 stars
(13)
4.2 out of 5 stars
Most Helpful Customer Reviews
26 of 27 people found the following review helpful
4.0 out of 5 stars A good introduction to programming using Python 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. there is nothing on generator functions, lambda expressions, binary data, destructors, metaclasses and so on). Once again, this is unavoidable in a short book intended for people with no programming experience. Finally, with the exception of a few footnotes, this book describes Python 2.x, not the (backward-incompatible) Python 3.x. However, this is also the case for the majority of the good Python books out there, and for third-party software, so Downey's decision seems reasonable.

Taking the book's earlier title (which is now its subtitle) to heart exposes it to comparison with heavyweights claiming to be filling a similar niche: a) "Introduction to programming in Java: an interdisciplinary approach" (Sedgewick & Wayne), b) "Python programming: an introduction to computer science" (Zelle), and c) "How to Design programs: an introduction to programming and computing" (Felleisen, Findler, Flatt, & Krishnamurthi). The latter uses Scheme, following the classic volume "Structure and interpretation of computer programs" (Abelson, Sussman, & Sussman). All of these books are arguably deeper than "Python for software design", but it is important to note that they are also longer and more difficult to read.

In a nutshell, this book is optimal for high-school or college students making their first foray into programming. Such readers would benefit most from buying the paper copy and trying to do most of the exercises. The book might also prove useful to experienced programmers who are interested in an easy, idiomatic, and concise introduction to many aspects of Python.

Alex Gezerlis
Comment | 
Was this review helpful to you?
15 of 17 people found the following review helpful
By Mfragin
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].
Was this review helpful to you?
7 of 8 people found the following review helpful
4.0 out of 5 stars Good for teaching February 18, 2010
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 | 
Was this review helpful to you?
Most Recent Customer Reviews
4.0 out of 5 stars Solutions manual for exercises
Excellent introduction to Python programming. However, is there a solutions manual for the exercises. Read more
Published 1 month ago by pablo46
4.0 out of 5 stars not bad at all
good introduction to python. best for people with little/no experience coding. monty python references throughout. thin and easy to carry around.
Published 3 months ago by Clay
5.0 out of 5 stars One of the best introductions to Python
I had been looking at a few Python books, but this strikes me as an extremely well written introduction. Very systematic and nicely structured. Read more
Published 6 months ago by A. Max König
5.0 out of 5 stars Concise with plenty of examples and practice exercises, an ideal...
In less then 250 pages this fantastic text acquaints the novice with both the software programing process and the Python language. Read more
Published 10 months ago by S. johnson
5.0 out of 5 stars Great, high yield, intro to Python and Computer Science!
I was very impressed with this book. I've done some basic dynamic web development in the Ruby/Rails environment and decided to take a detour into Python and then hopefully Django. Read more
Published 15 months ago by B. Unger
4.0 out of 5 stars Great Book.. however difficult exercises.
I bought this book because I have always been interested in programming, but never had the chance to learn. Read more
Published 19 months ago by Philipp Berndt
5.0 out of 5 stars Python for Software Design
The book is very helpful for the python software and I got it the next morning after purchasing it [[ ASIN:0521725968 Python for Software Design: How to Think Like a Computer... Read more
Published 19 months ago by lili5994
3.0 out of 5 stars The Hat is too big
''This is a book for the beginners/student who want to use Python to finish their homework.
''
''But the author did not try to discuss why some data structure are... Read more
Published 20 months ago by Engineer Elephant
3.0 out of 5 stars Excellent book but $39? Wow.
This is an awesome book, and you can download it for free over the Internet. I came here thinking I'd buy a print copy to support the author(s) and have it for reference, but... Read more
Published on November 7, 2010 by S. Carolan
3.0 out of 5 stars learn python
It's excellent for what it covers. I don't know if it's just me or not;but
I found that some of the exercises were too difficult too early. Read more
Published on May 6, 2010 by Wayne E. Douglas
Search Customer Reviews
Only search this product's reviews

What Other Items Do Customers Buy After Viewing This Item?


Sell a Digital Version of This Book in the Kindle Store

If you are a publisher or author and hold the digital rights to a book, you can sell a digital version of it in our Kindle Store. Learn more

Forums

There are no discussions about this product yet.
Be the first to discuss this product with the community.
Start a new discussion
Topic:
First post:
Prompts for sign-in
 



So You'd Like to...



Look for Similar Items by Category