Python Programming:
An Introduction to Computer Science

John Zelle

ISBN 1-887902-99-6, $40.00
Go to John Zelle’s Python Page, “Teaching with Python
Take a look at organizations using Python
Here are some businesses that use Python

INSTRUCTORS: INTERESTED IN CLASS-TESTING THE NEW EDITION?
FOLLOW THIS LINK TO SEND US AN E-MAIL. PLEASE INCLUDE
INFORMATION ABOUT YOUR COURSE. THANK YOU

 

Instructors: Order a review copy of PYTHON PROGRAMMING
for your course--First or Second Edition


 

 Contents

Foreword, by Guido van Rossum (PDF file)

  1. Computers and Programs
  2. Writing Simple Programs PDF file
  3. Computing with Numbers
  4. Computing with Strings
  5. Objects and Graphics PDF file
  6. Defining Functions
  7. Decision Structures
  8. Loop Structures and Booleans
  9. Simulation and Design
  10. Defining Classes
  11. Data Collections
  12. Object-Oriented Design
  13. Algorithm Design and Recursion PDF file

WHEN THE PUBLISHER first sent me a draft of this book, I was immediately excited. Disguised as a Python textbook, it is really an introduction to the fine art of programming, using Python merely as the preferred medium for beginners. This is how I have always imagined Python would be most useful in education: not as the only language, but as a first language, just as in art one might start learning to draw using a pencil rather than trying to paint in oil right away.
—Guido van Rossum, Elemental Security

THIS BOOK REPRESENTS a fresh approach that I think will work . . . it has the potential of making a significant impact on CS education.
—Paul Tymann, Rochester Institute of Technology

PYTHON IS AN EXCELLENT LANGUAGE for beginning students because it allows students to focus on problem-solving skills and algorithm development rather than compiling and complicated syntax issues. It also allows students to write non-trivial programs in a first course making the course more interesting for both students and the instructor. Zelle’s book introduces Python and computer science concepts in a style that beginning students find appealing and easy to understand.
—Dave Reed, Capital University

I WAS DISSATISFIED with what my students were learning with more complex languages (either C++ or Java). There was too much emphasis on syntax and not enough on programming concepts. Python is much easier to learn. With John Zelle’s Python Programming, my students are finally learning programming concepts.

I wanted my students to learn loops, conditionals, and functions. If they could learn that really well, I feel they could learn the ugly stuff (complex syntax of C++) more easily. They weren’t going to be burdened with learning two major topics (programming and complex syntax) at the same time. And I like introducing intro students to multiple languages. Seeing Python, an iconized language (Robolab), plus C++ gives them a broader perspective on programming.
—Holly Patterson-McNeill, Lewis-Clark State College

THIS TEXT DOES AN EXCELLENT JOB of filling a gaping hole in the Python community—a textbook for an introductory computer science class. This text is easy to read, provides clear explanation of introductory programming concepts, and shows why Python is an excellent choice for a first language. The author’s carefully crafted examples make this text stand out among other CS1 texts. It is as good a text as I have read for CS1.
—Russell May, Morehead State University

This book is suitable for use in a college-level first course in computing (CS1), as well as the increasingly popular course known as CS0.

It is difficult for many students to master basic concepts in computer science and programming. A large portion of the confusion can be blamed on the complexity of the tools and materials that are traditionally used to teach CS1 and CS2. This textbook was written with a single overarching goal: to present the core concepts of computer science as simply as possible without being simplistic.

Perhaps the greatest source of complexity in introductory CS courses is the use of traditional systems languages such as C++ and Java. These languages evolved to solve problems that arise in large-scale programming where the primary emphasis is on structure and discipline. They were not designed to make writing small or medium-scale programs easy. The recent rise in popularity (in industry, if not necessarily in academia) of scripting languages, such Python, suggests an alternative. Python is flexible and makes experimentation easy. Solutions to simple problems are simply and elegantly expressed. Python is a great laboratory for the neophyte programmer.

Python is a natural choice as a first programming language because its basic structures are very clean and well-designed. The concepts carry over directly to subsequent study of systems languages such as Java and C++. Python is a real-world language that is feely available for virtually every programming platform and comes standard with its own easy-to-use integrated programming environment. Python allows students to focus on the primary skills of algorithmic thinking and program design without getting bogged down in arcane language details.

Key features of this book:

  • Extensive use of computer graphics. Students love working on programs that include graphics. This book presents a simple-to-use graphics package (provided as a Python module) that allows students to both learn the principles of computer graphics and practice object-oriented concepts without the complexity inherent in a full-blown graphics library.
  • Interesting examples. The book is packed with complete programming examples to solve real
    problems.
  • Readable prose. The narrative style of this book introduces key computer science concepts in
    a natural way as an outgrowth of a developing discussion.
  • Flexible spiral coverage. Since the goal of the book is to present concepts simply, each chapter
    is organized such that students are introduced to new ideas in a gradual way, giving them time
    to assimilate an increasing level of detail as they progress.
  • Extensive end-of-chapter problems. Exercises at the end of every chapter provide ample opportunity
    for students to both reinforce chapter material and practice new programming skills.

 

Back to Our Catalog