Skip to content
Register Sign in Wishlist

Python for Software Design
How to Think Like a Computer Scientist

$54.99 (X)

  • Date Published: March 2009
  • availability: In stock
  • format: Paperback
  • isbn: 9780521725965

$ 54.99 (X)

Add to cart Add to wishlist

Other available formats:
Hardback, eBook

Request examination copy

Instructors may request a copy of this title for examination

Product filter button
About the Authors
  • 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, along with Swampy, a suite of Python programs that is used in some of the exercises.

    • No-nonsense style, perfect for beginning undergraduates and first-time programmers
    • Difficult concepts explained in bite-size portions
    • Lots of exercises, from short examples to substantial projects, with solutions and example code available from
    Read more

    Reviews & endorsements

    "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,

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

    "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

    See more reviews

    Customer reviews

    Not yet reviewed

    Be the first to review

    Review was not posted due to profanity


    , create a review

    (If you're not , sign out)

    Please enter the right captcha value
    Please enter a star rating.
    Your review must be a minimum of 12 words.

    How do you rate this item?


    Product details

    • Date Published: March 2009
    • format: Paperback
    • isbn: 9780521725965
    • length: 270 pages
    • dimensions: 253 x 178 x 14 mm
    • weight: 0.5kg
    • contains: 25 b/w illus. 118 exercises
    • availability: In stock
  • Table of Contents

    1. Preface
    2. The way of the program
    3. Variables, expressions and statements
    4. Functions
    5. Case study: interface design
    6. Conditionals and recursion
    7. Fruitful functions
    8. Iteration
    9. Strings
    10. Case study: word play
    11. Lists
    12. Dictionaries
    13. Tuples
    14. Case study: data structure selection
    15. Files
    16. Classes and objects
    17. Classes and functions
    18. Classes and methods
    19. Inheritance
    20. Case study: Tkinter
    Appendix 1: debugging.

  • Instructors have used or reviewed this title for the following courses

    • Advanced Game Design Workshop
    • Advanced Web Development
    • Agent-Based Simulation
    • Algorithmic Problem Solving
    • Computational Techniques for Linguists
    • Computational strategies for collaborative problem solving
    • Computer Information Systems
    • Computer Programming
    • Computer Science ll
    • Computing for Scientists
    • Current Topics in Computer Science and Engineering
    • Foundations of Computing
    • Foundations of Computing through Digital Media
    • Foundations of Software
    • Fundamental Ideas in Computer Science
    • GIS Application Programming
    • General Computer Science for Engineers
    • Information Retrieval and Analysis
    • Intermediate 3D Computer Animation
    • Intermediate Web Development and Design
    • Intro to Computer Science and Problem Solving
    • Intro to Computing
    • Intro to Programming
    • Intro to Statistical and Computational Genomics
    • Introduction to Programming
    • Introduction to Computational Problem Solving
    • Introduction to Computer Programming
    • Introduction to Computer Science
    • Introduction to Computer Science (Python)
    • Introduction to Computer Science and Programming using Python
    • Introduction to Computers and Programming
    • Introduction to Computing
    • Introduction to Formal Logic
    • Introduction to Software Design
    • Principles of Computer Technology
    • Problem Solving & Programming
    • Problem-Based Introduction to CS
    • Programming Concepts
    • Programming Fundamentals I
    • Programming in Python
    • Python Programming
    • Python for Linux System Administration
    • Roadmap to Computing
    • The Art of Programming
    • Thinking Like A Computer Scientist
  • Author

    Allen B. Downey, Olin College of Engineering, Massachusetts
    Allen B. Downey, Ph.D., is an Associate Professor of Computer Science at the Olin College of Engineering in Needham, Massachusetts. He has taught at Wellesley College, Colby College, and UC Berkeley. He has a doctorate in computer science from UC Berkeley and a Master's degree from MIT. Dr Downey is the author of a previous version of this book, titled How to Think Like a Computer Scientist: Learning with Python, which he self-published in 2001.

Sign In

Please sign in to access your account


Not already registered? Create an account now. ×

Sorry, this resource is locked

Please register or sign in to request access. If you are having problems accessing these resources please email

Register Sign in
Please note that this file is password protected. You will be asked to input your password on the next screen.

» Proceed

You are now leaving the Cambridge University Press website. Your eBook purchase and download will be completed by our partner Please see the permission section of the catalogue page for details of the print & copy limits on our eBooks.

Continue ×

Continue ×

Continue ×

Find content that relates to you

Join us online

This site uses cookies to improve your experience. Read more Close

Are you sure you want to delete your account?

This cannot be undone.


Thank you for your feedback which will help us improve our service.

If you requested a response, we will make sure to get back to you shortly.

Please fill in the required fields in your feedback submission.