Related products:
Python Programming for the Absolute Beginner (Absolute Beginner)
Beginning Python: From Novice to Professional (Beginning: From Novice to Professional)
Learning Python, Second Edition
Python Cookbook
Dive Into Python
|
Python
Python Programming: An Introduction to Computer Science
Format: Paperback
Author: John M. Zelle
ReleaseDate: December, 2003
Publisher: Franklin Beedle & Associates
Rating:
Good for beginners
Good for beginning programmers, however it is very basic and does not cover any advanced topics in any way. This book provides the knowledge of programming in an easy to learn format. The book is really good for a first-time programmer, however I would not recommend it as a Python resource for anybody with previous programming experience. One major drawback of the book is that it does not provide answers or any other form of solution to the chapter-end questions.
Wonderful: The best CS1 textbook I've ever seen
I hope I never have to use another book besides this, because this text is simply fantastic. I just wrapped up teaching a semester CS1 course using Zelle's book.
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.
Not bad, but disorganized and lacking needed detail at the end
Most of the text deals with the intro to computer science but in terms of helping to actually use python and solve the programming problems at the end of each chapter it has been very frustrating. As a student who has been assigned this book I have found it frustrating to use for the most part. There is no list of new methods at the end of each chapter and the appendix is light on details. I find myself consulting the internet and other texts frequently.
I suppose as an introduction to computer science text this book is well written, but the fact is that most of a student's grade is probably going to come from actual programming assignments and this book is almost entirely useless as a reference for when I get stuck. This is especially troublesome in the latter chapters as the programming problems get more complex. I now find myself spending hours in trial and error approaches when what I really want is a prominent list of methods and some detailed examples that are more relevent to the programming problems.
I have also found that most of the programming problems ask me to modify an example program from the chapter but often the level of detail in the development of the example program is insufficient for a clear understanding of how the example program works. This also gets worse the farther along I get.
This book is more suited to a course that is mainly intro to computer science and a little programming and not as in the class I am in, light on computer science and several programming problems each week. .
|
|