133 of 136 people found the following review helpful:
5.0 out of 5 stars
Wonderful: The best CS1 textbook I've ever seen, December 18, 2005
This review is from: Python Programming: An Introduction to Computer Science (Paperback)
I just wrapped up teaching a semester CS1 course using Zelle's book. I hope I never have to use another book besides this, because this text is simply fantastic.
This was the third version of CS1 I've taught, and the first using Python instead of C. The use of Python definitely contributed to the smashing success of this class (as did an exceptionally strong group of students), but much of the credit must go to this book.
Honestly, Zelle just nailed it. The examples are illustrative and convincing: his is one of the few books that manages to avoid the trap of silly and unreal examples that therefore provide no context for a student. His writing is crystal clear and very well organized, replete with very helpful diagrams and illustrative examples (did I mention the examples?), and he has obviously paid a lot of attention to the aspects of programming that students find most difficult.
And the exercises: wow. This is the first time I haven't felt the need to write my own (although I did anyway, because it's fun). They are fair but challenging (sometimes very), and for those of us on the teaching end, you'll be happy to know that the instructor's resources come with _complete_ sets of working solutions to all of the exercises.
Three chapters stand out in particular. First is the chapter on graphics (Ch. 5). Students love graphics, and Zelle has included a very nice wrapper on top of the TKinter library, which makes for a GUI package that students can actually use. Second, there's the final chapter that actually introduces recursion and some of the interesting algorithms from the science (searching/sorting, permutations, etc.). I had a lot of fun demonstrating the difference between sorting /usr/share/dict/words with insertion sort (about 6 days) and merge sort (about 6 seconds).
But possibly the best chapter is one I almost skipped: the chapter on software development, which is centered around a case study development of a "racquetball" simulation. At the last minute, I decided to use this chapter as the jumping off point for integrating the ideas we'd seen up to mid-term into real software development. I am convinced that this made the class.
Now there are a couple of things you might want to add as an instructor: The main one is the fact that Python is such a high-level language, with so much hand-holding built in, that I'm worried that students going on to later CS classes in other languages could get a nasty surprise. I finished up my class with a primer on languages with static type systems, in which you don't have wonderful Pythony things like string/list slicing, built-in hashtables, etc. In a second edition of this book, I'd like to see another chapter on this.
Second is a very small quibble, and really just boils down to a difference with Zelle about the order in which I like to teach this material. I ended up using every chapter in the book, but in the order 2,3,4,7,8,6,9,11,5,10,12,13. As yet another thing I love about this book, the chapters are independent enough from each other, that I was able to do this with only careful selection of the sections. Actually the book lends itself very well to alternative orderings.
In short, I simply have nothing bad to say about this book, and lots of good. Zelle hit this one out of the park. Everybody should be using it.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
28 of 29 people found the following review helpful:
5.0 out of 5 stars
This is where to start, August 21, 2004
This review is from: Python Programming: An Introduction to Computer Science (Paperback)
For those of you who don't know how to program, this book is the best starting place I've ever read. It's written as an introduction to computer science, by professional educators for a CS1 course.
This book defines all the terms and parts to programming that other "Learn Python" books seem to assume you already know. If reading the tutor section of the Python documentation that came with the language (www.python.org) was not completely clear to you, this is the best book to get you ready to program.
There are plenty of example programs to keep this book interesting to intermediate programmers, but there is doubtfully anything surprising to experienced programmers. Everything in this book is very clearly explained and organized.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No
22 of 22 people found the following review helpful:
5.0 out of 5 stars
From A Computer Science Student..., January 24, 2005
This review is from: Python Programming: An Introduction to Computer Science (Paperback)
I absolutely love this book. I've browsed through many computer programming/computer science books before this one, and found this one the best introductory book by far for many reasons. For one, the book moves at a quick yet manageable pace, so I felt like I able to move quickly enough not to get bored yet still absorb the material. Honestly, and I'd never thought I'd say this about a textbook for a class, but I found this to be a page-turner!
There is a convienient Quick Reference serving as an Appendix. It quickly lists the operators, functions, techniques, etc, presented i each chapter, so I didn't need to dig back through the chapters when a concept for function name slipped my mind.
MOST importantly for me are the exercises at the end of each chapter. Sure, most books have sample-code, too, but this book gives you a fair number of problems to solve using the tools you have just learned.
So, if you are new to computer science and interested in learning to program in any language, I'd STRONGLY recommend this book. It's a great introduction to Python, but it's also a GREAT introduction to computer programming concepts.
Help other customers find the most helpful reviews
Was this review helpful to you? Yes
No