Programming Books C Java PHP Python Learn more Browse Programming Books
Practical Programming: An Introduction to Computer Scienc... and over one million other books are available for Amazon Kindle. Learn more

Sorry, this item is not available in
Image not available for
Image not available

To view this video download Flash Player

Sell Us Your Item
For a $2.00 Gift Card
Trade in
Have one to sell? Sell yours here
Start reading Practical Programming on your Kindle in under a minute.

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

Practical Programming: An Introduction to Computer Science Using Python (Pragmatic Programmers) [Paperback]

by Jennifer Campbell, Paul Gries, Jason Montojo, Greg Wilson
3.9 out of 5 stars  See all reviews (15 customer reviews)

Available from these sellers.

Free Two-Day Shipping for College Students with Amazon Student


Amazon Price New from Used from
Kindle Edition $15.40  
Paperback --  
Sell Us Your Books
Get up to 80% back when you sell us your books, even if you didn't buy them at Amazon. Learn more
There is a newer edition of this item:
Practical Programming: An Introduction to Computer Science Using Python 3 (Pragmatic Programmers) Practical Programming: An Introduction to Computer Science Using Python 3 (Pragmatic Programmers) 4.0 out of 5 stars (6)
In Stock.

Book Description

June 4, 2009 1934356271 978-1934356272 1

Welcome to computer science in the 21st century. Did you ever wonder how computers represent DNA? How they can download a web page containing population data and analyze it to spot trends? Or how they can change the colors in a color photograph? If so, this book is for you. By the time you're done, you'll know how to do all of that and a lot more. And Python makes it easy and fun.

Computers are used in every part of science from ecology to particle physics. This introduction to computer science continually reinforces those ties by using real-world science problems as examples. Anyone who has taken a high school science class will be able to follow along as the book introduces the basics of programming, then goes on to show readers how to work with databases, download data from the web automatically, build graphical interfaces, and most importantly, how to think like a professional programmer.

Topics covered include:

Basic elements of programming from arithmetic to loops and if statements.

Using functions and modules to organize programs.

Using lists, sets, and dictionaries to organize data.

Designing algorithms systematically.

Debugging things when they go wrong.

Creating and querying databases.

Building graphical interfaces to make programs easier to use.

Object-oriented programming and programming patterns.

Editorial Reviews

About the Author

Jennifer Campbell is a senior lecturer in the Department of Computer Science at the University of Toronto. Over the past 10 years, Jen's primary focus has been on teaching and curriculum design of introductory courses. Jen is involved in several projects exploring student experiences in introductory computer science courses and the factors that contribute to success, including the effectiveness of the inverted classroom.

Paul Gries has been teaching in the Department of Computer Science at the University of Toronto for more than 15 years. During his time at UofT, Paul has won numerous teaching awards, including UofT's most prestigious teaching award and an Ontario-wide teaching award. Paul has also co-authored two textbooks, has been a leader in departmental curriculum design and renewal, and, with Jen, got to teach Python to tens of thousands of students in a MOOC.

Jason Montojo is a research officer at the Donnelly Centre for Cellular and Biomolecular Research at the University of Toronto, where he develops scientific software for the Cytoscape and GeneMANIA projects. He has a strong interest in teaching computer science and frequently mentors students for Google's Summer of Code program.

Greg Wilson holds a Ph.D. in Computer Science from the University of Edinburgh, and has worked on high-performance scientific computing, data visualization, and computer security. He is the author of Data Crunching and Practical Parallel Programming (MIT Press, 1995), and is a contributing editor at Doctor Dobb's Journal, and an adjunct professor in Computer Science at the University of Toronto.

Product Details

  • Series: Pragmatic Programmers
  • Paperback: 350 pages
  • Publisher: Pragmatic Bookshelf; 1 edition (June 4, 2009)
  • Language: English
  • ISBN-10: 1934356271
  • ISBN-13: 978-1934356272
  • Product Dimensions: 0.8 x 7.6 x 9 inches
  • Shipping Weight: 1.8 pounds
  • Average Customer Review: 3.9 out of 5 stars  See all reviews (15 customer reviews)
  • Amazon Best Sellers Rank: #602,595 in Books (See Top 100 in Books)

More About the Author

Born and raised on Vancouver Island; studied engineering at Queen's University in Ontario, worked for a while, then went to Edinburgh for a Master's, some more work, and a PhD. Traveled while writing my first book on parallel programming; came to Toronto "for a couple of years" in 1994, and have never left. I've worked for big corporations, startups, and myself (prefer the small to the large), been a university professor (enjoyed the teaching more than the red tape), and am now project lead for Software Carpentry, a crash course on software development for scientists and engineers. You can find me online at (personal stuff) or (the course).

Customer Reviews

Most Helpful Customer Reviews
30 of 32 people found the following review helpful
5.0 out of 5 stars Great Book for My Return to Programming December 15, 2009
Format:Paperback|Verified Purchase
I had not programmed for 30 years and wanted to do a bit for a small project. After trying several Python books I found this one. I suspect that no one programming book will appeal to all, but this one was a great book to get me started again. Well-written. Good examples. Clear explanations.
Comment | 
Was this review helpful to you?
29 of 33 people found the following review helpful
By Sara
Format:Paperback|Verified Purchase
I entered a graduate program in computational linguistics with a linguistics background with no computer science or programming experience. All of my specialization courses use Python and, unfortunately, my university doesn't offer Python courses. Discovering that I wasn't all that wonderful at self-teaching myself to program, I resolved to take an introductory Java programming course offered by my university's computer science department. The course served as an excellent foundation and made this text, which I think is already very clear and accessible, that much easier to follow. My opinion is that this book would make an excellent text for an introductory course in Python programming or a wonderful resource to someone who knows a bit about programming but would like to understand Python. I had tried other Python books in the past, but found myself either lost or bored. The authors of this book know how to hold their audience's attention.
Was this review helpful to you?
38 of 47 people found the following review helpful
As a result of superior pedagogy and a language that includes built in features like lists and dictionaries, and a standard library that comes with everything; this instructional book provides an introduction to Computer Science and Data Structures which excels using the modern programming language Python. This text is much more than a learn to program in "XXX" book, it gives a firm foundation for all subsequent courses in Computer Science and practical examples of how Data Structures are employed in real world problems involving graphics and databases. It also gives the necessary demonstrations of algorithms for Searching and Sorting, and a modern introduction to Object-Oriented programming.

In short, this volume provides an excellent foundation text in Computer Science, while incorporating instruction in the Python Language and giving practical examples of how to employ the Algorithms and Data Structures in real-world situations. It will give the student a strong basis for all further study in Computer Science and Programming.
Was this review helpful to you?
9 of 10 people found the following review helpful
3.0 out of 5 stars Could be better!! April 22, 2012
Format:Paperback|Verified Purchase
I'm technical by nature and have programmed many years ago and wanted to get back into it. I got Learn to Program by Chris Pine which uses Ruby and this Practical Programming book which uses Python. I'm half way through both books. In comparison the Ruby book was smooth, easy to follow and few to none errors. I found the structure of the Ruby book excellent as each chapter built on the next. This book in contrast I'm finding much more of a chore. It does serve the purpose and will be a good intro to Python, BUT .... There a lot of errors in this book, small typos and such. Some exercises at the end of the chapter use methods from chapters that are further out and haven't been covered yet. Plenty of inaccurate page number references. Only the answers for the even exercises are found on the web, while the Ruby book gives all the answers. The Python book just doesn't seem as clear and easy to follow as the Ruby book. If you are just looking for a book to get into programming and not sure or care about language; I highly recommend the Ruby book over this one. If you need a Python intro I would say this book is okay, but leaves something to be desired and I feel the way the material is presented creates a slight unnecessary struggle. I haven't tried any other Python books to compare. And I will be continuing on and finishing this book even though I'm not raving about it. I'd say the python book reminds me of a mediocre college textbook with errors and a lack of clarity that might require an instructor to decipher. The Ruby book is smooth and easy to follow at home. Note this review is for the first edition, Publication Date: June 4, 2009 | ISBN-10: 1934356271 | ISBN-13: 978-1934356272 | Edition: 1 .. the same one selling here on Amazon.
Was this review helpful to you?
8 of 9 people found the following review helpful
4.0 out of 5 stars Broad, yet effective January 10, 2011
Format:Paperback|Verified Purchase
While taking an online course (MIT OCW) that uses Python and had no book, I picked up this book as a reference for python specific syntax issues. It is a really great book (I got through the whole thing rather quickly), and I am sure it will stay near my workstation. The authors cover a broad range of topics in a rather short book. There are a ton of online, free books on programming and Python, however, if you prefer to read a physical book: this is a great choice.
Was this review helpful to you?
3 of 3 people found the following review helpful
Format:Paperback|Verified Purchase
This is an excellent introduction to Python. It covers plenty of the more general computer science concepts (that is, not Python-specific) missing from oft-recommended online "workbooks" like Codecademy and Learn Python the Hard Way, so it's proven very useful to me in my attempt to move from imitation to independence.

That said, the editing isn't quite up to par. An uncomfortable number of the raw code examples look like this (p19):

def <code:bold>function_name</code:bold>(<code:bold>parameters</code:bold>):

The parts in <tags> are not something you'd type into Python, but just leftover markup code from the manuscript. It should read much more simply:

def function_name(parameters):

There's something like that every twenty pages or so. I can easily see a beginner trying to type it all in and being bombarded with errors.
Comment | 
Was this review helpful to you?
Most Recent Customer Reviews
2.0 out of 5 stars Never Used It
Bought this test for a class. Never really opened it except to see what was in it. Honestly most information on programming is available on message boards on the internet. Read more
Published 2 months ago by Kurt
3.0 out of 5 stars Ok Intro Book
A good intro CS book, but I find myself falling asleep over it a few times -- and I'm not the kind to fall asleep reading codes. Read more
Published 5 months ago by Fay Zhao
3.0 out of 5 stars A good beginners book for Python 2.7
This 1st edition of Practical Programming starts out slow with strings and moves on to lists and functions, modules, etc. The book is well written with tons of examples. Read more
Published 7 months ago by Mike P.
3.0 out of 5 stars Don't order this book! New edition being released!
2nd Edition of this great beginner's book, covering Python 3, is in beta. Here's the URL for the 2nd Edition from the publisher's Web page:

[... Read more
Published 8 months ago by Bob Patterson
5.0 out of 5 stars Good introduction to Python
I read this as an introduction to Python, but I already had a background in CS. The book is easy to follow and it helped me to quickly get up to speed on Python so I could use it... Read more
Published 20 months ago by unicityd
3.0 out of 5 stars If you have any programming experience, this is probably not the book...
I was looking for a book to increase my efficiency at programming and drive the concepts even further. Well this book did not really help with either of them. Read more
Published on December 28, 2011 by Austin Guy 2005
5.0 out of 5 stars Excellent introduction to Computer Science and Python
This book is a great way to get a feel for what computer science and programming are all about. Python is a great first language to learn because of its simple, english-like... Read more
Published on April 4, 2011 by Mark
5.0 out of 5 stars Fun
A refreshing approach to learning Python. The examples are thought provoking, instructional with real world applicability.
Published on October 14, 2010 by Fernando
Search Customer Reviews
Only search this product's reviews


Topic From this Discussion
Book Quality Be the first to reply
Have something you'd like to share about this product?
Start a new discussion
First post:
Prompts for sign-in

Search Customer Discussions
Search all Amazon discussions

Look for Similar Items by Category