A book built from the ground up.
This book is not a translation of a Java or C++ book into Python–it was written from the ground-up as a Python textbook.
A focus on problem-solving with Python.
Three optional chapters in the book (3, 10, and 13) walk students through detailed examples of solving a problem using Python. In addition to design, they show mistakes and how to recover from them by illustrating the process of developing a solution. The authors also refactor some solutions as demonstrations of the importance of program design and readability. These chapters can be used in or outside of class, or in a lab setting.
A data manipulation theme, supported by real-world examples and exercises.
Students use Python to sort, apply, graph, and convert data. The authors have incorporated many real-world, mostly non-numeric examples with a gender-neutral appeal to support this theme: poker hands, Gettysburg Address, EPA mileage data, breast cancer classifier, speech analysis, political debates and S&P 500 analysis.
An “object-use-first” approach.
The authors use objects and methods early while leaving the design and implementation of objects for later in the text--after mastery of the use of objects has been achieved.
A fairly traditional CS1 order, with some differences:
- Strings covered early (before functions) to allow for more data manipulation to be done early.
- File I/O covered early for the same reason.
- Topics like plotting and drawing are included throughout the text in service of the data manipulation theme.
Functions covered earlier; split in two parts.
Only the string chapter separates the function and control chapter. Functions are split into two parts because of how Python handles mutable objects such as lists as parameters–discussion of those issues can only come after there is an understanding of lists as mutable objects.
Reading from files appears early (chapter 4 Strings), even though a more complete discussion on files doesn’t happen until chapter 9.
Students encouraged to use data structures as early as possible. For example, lists and strings show up before they are covered in detail. Dictionaries appear right after lists.
In incorporating drawing and graphing, the authors use established packages instead of developing their own. One is built in (Turtle graphics in Python 2.6 or above, i.e. current versions), the other is widely used (matplotlib with numpy). Both are explained in appendices.
The text is based on Python 2.x (for x >= 6) rather than Python 3.0 since the latter is not backward compatible with standard Python packages at this time. Differences are outlined in an appendix.
SUPPLEMENTS
Solution Manual
Solutions to end-of-chapter Questions and Problems.
PowerPoint slides
A set of slides suitable for use in lecturing.