Python Programming: An Introduction to Computer Science

Python Programming: An Introduction to Computer Science
Authors
John M. Zelle
ISBN
1887902996
Published
01 Dec 2003
Purchase online
amazon.com

This book is designed to be used as the primary textbook in a college-level first course in computing. It takes a fairly traditional approach, emphasizing problem solving, design, and programming as the core skills of computer science. However, these ideas are illustrated using a non-traditional language, namely Python. Although I use Python as the language, teaching Python is not the main point of this book.

Page 2 of 2
  1. Editorial Reviews
  2. Customer Reviews

Customer Reviews

E. Rees said
I just wrapped up using this book for a CS Introduction class and found it to be quite difficult to really use. The examples, while numerous, have a terrible habit of using bits of code long before the syntax or semantics for much of the code has been explained. For instance, the first chapter uses an example (a chaos example) that makes use of looping constructs before looping constructs are ever discussed. And that's just in the first chapter. The book constantly makes references (either through code or sometimes in the text) to ideas that will not be taught to the student until 3 or more chapters down the line.

The book also contains various errors in python semantics. At times it almost feels as if the writers did not read the python standards and semantics very closely. The earliest example of this occurs in Chapter 3 while discussing basic integer division. In this chapter the book states that Python will truncate the result of an integer division (thus 4 / 3 results in 1, and -4 / 3 would result in -1). However Python does not use truncation division, instead it uses flooring division as clearly defined in the Python standard. As such all positive integer divisions will continue to look like truncation division is occurring, however -4 / 3 is -2, not -1 as the book suggests. This is only one of a handful of errors that simply should not be, and despite my emails to both the author and the publisher they simply will not release an errata - despite the fact the books terribly needs one.


My last problem with the book lies in it's ordering. The book is laid out in very poor order for teaching Python. For instance if you follow the book in order the student will learn:
1) The basics of computer science (what a program is, what a computer is, what each section of a computer do, ect...)
2) Variables and variable names (identifiers)
3) Output statements (only to the screen)
4) Assigning literals and variables to a variable.
5) Writing definite looping constructs (For loop)
6) Numeric data types in Python.
7) Creating and using basic mathematical calculations in Python
8) Converting data into int/long/float form.
9) Using strings
...

I point this out because getting students to understand a concept like for loops in chapter 2 before you even teach them how to do addition and subtraction (chapter 3) is a major pitfall. The real problem with skipping definite loops is that the book constantly uses the for loop in examples after chapter 2. So if you teach for loops early on then you have a high percentage of students getting confused early on but at least people will kind of understand the examples later on. Or you can skip it which makes most of the examples after chapter 2 worthless to students until you do cover definite loops. Please keep in mind that the indefinite (while) loop is not taught until chapter 8.


Overall this book has been a hindrance more than a help. Many of the students in my course purchased or borrowed other Python books to help them study at home as they claimed this book was simply too hard to follow and lacked any real explanation to the example solutions. When students began informing me (without my asking them to critique the book) that they disliked the book very much and that many of them had begun buying/borrowing other python books to use instead, I decided I would definitely never use this book again.



This books seems to have forgotten it's an introduction book. Students using this book who have had either another computer science course or who learned a procedural type language in the past (even if they didn't learn much beyond simple data types) would probably find this book to be well worth their time. The book is well written if you already have a rough understanding of the common semantics used in many procedural and OOP languages. However, few books discussing python syntax/semantics wouldn't be a relatively easy read for any programmer already familiar with the common semantics of OOP or procedural code.

Beginners should stay away from this book.
People with some experience should look into a python reference book.

Eduardo M. said
This book was my introduction to both Computer Science and Python. The nice thing about it is to start learning a programming language while assimilating the basic concepts and the proper reasoning required for the task.

The exercises at the end of each chapter are essential if you want to really get accustomed to the concepts, although I think you could just read most part of the book first to get a general idea and then try all the exercises.

Although the book covers Python 2.4, I didn't have any problem applying the new knowledge to Python 2.6.

My only complaint is the size of the book: as a student book, it has large margins. I'm a huge fan of small books... Anyway, the margins can be very useful if you write lots of side-notes on your books.

A new edition covering Python 3.0 is not strictly necessary right now, but I hope they keep coming, as I prefer this book over Mark Lutz' "Learning Python".

Samuel Huckins said
This book is a wonderful introduction to computer science and programming in Python. I recommend it highly.

[...]

A. Vence said
This is the best introduction of Python I've found so far. It has many examples and exercises which are helpful in the development of Python programming skills. However, it is still a little random in helping new programmers.

Mark J. Pachlhofer said
I was new to programming and have been struggling to find a good book to explain some concepts and learn a little bit more about python. This book did both. Everything is very thoroughly explained with plenty of exercises to back up the lessons in each chapter. This book provides you with the background to understand what is being talked about in other books and on other websites. Best Python and computer science book I have run into so far, hands down.

You might also like...

Comments

Contribute

Why not write for us? Or you could submit an event or a user group in your area. Alternatively just tell us what you think!

Our tools

We've got automatic conversion tools to convert C# to VB.NET, VB.NET to C#. Also you can compress javascript and compress css and generate sql connection strings.

“Some people, when confronted with a problem, think "I know, I’ll use regular expressions." Now they have two problems.” - Jamie Zawinski