Sat 14 Aug 2010
Practical Programming: An Introduction to Computer Science Using Python
By Jennifer Campbell, Paul Gries, Jason Montojo and Greg Wilson
I received the book, Practical Programming: An Introduction to Computer Science Using Python as a gift last month from a family member. This book is by four authors: Jennifer Campbell, Paul Gries, Jason Montojo and Greg Wilson. I’d been interested in reading another Python-related textbook for a while, and this happens to be one of the few out there. The only other Python textbook I’ve read is Python Programming: An Introduction to Computer Science by John Zelle. I’m aware of one or two others, but those books are beyond what I’m willing to pay.
Normally when I see something that required multiple authors, the results are less than stellar. However, this book does a pretty good job of introducing students to computer science using Python. Of course, when I was taking classes in computer science, we spent multiple classes on just theory. Most of this book is on learning the basics of Python, such as how to use strings, lists, dicts, tuples, etc. So if you were hoping to learn algorithms and data structures using Python, you won’t be finding much of that here. There is one chapter on algorithms that covers sorts and search algorithms though, and I thought that was one of the highlights of the book.
On the other hand, you will get a nice introduction to one of the easiest and most fun to use programming languages ever created. Not only do you get a nice introduction, but each chapter ends with a series of exercises based on the text of the chapter. I like having review questions or problems to solve that make what I learned stick in my brain. I mostly skimmed the exercises though because the chapters were designed for college Freshmen with no programming experience.
This book covers basic testing in two places. It’s not thorough, but it does give the reader a taste and I think it conveys the reasoning behind testing fairly well. At the end of the book, they get a little more topical on us. The book gives an overview of the following topics: debugging, the object-oriented philosophy (classes, inheritance, polymorphism), graphical user interfaces using Tkinter, and databases (sqlite).
After reading Dusty Phillips’ book on Object Oriented Programming with Python, I found the one chapter in this book lacking. However, it is typical of an introduction, so I can’t knock it too much. The Tkinter chapter was fun as I have been planning on brushing up on that for other articles on this blog. The authors even spend some time on the Model-Viewer-Controller paradigm. I didn’t really like how they laid out the code though since it was hard to tell which code fit where in the whole MVC schema. The database section was almost straight-up SQL code using Python 2.5’s sqlite module. While there’s nothing particularly bad with that approach, I know I would have been a little confused by it because of all the new syntax that doesn’t match anything I had learned previously in the book.
There are some instances of weird or poor grammar, but I didn’t find any obvious coding errors that weren’t there on purpose. The book is priced reasonably, especially considering that it’s supposed to be a college textbook. If you are new to computer science or to Python, I think you’ll find this book helpful. If you’re an experienced programmer or you’ve already had several courses in computer science, than you’ll probably want to skip this book (unless you’re looking to learn Python).