Yet another Python textbook

Ian Kelly ian.g.kelly at
Tue Nov 20 08:46:37 CET 2012

On Sun, Nov 18, 2012 at 10:30 PM, Pavel Solin <solin.pavel at> wrote:
> I would like to introduce a new Python textbook
> aimed at high school students:
> The textbook is open source and its public Git
> repository is located at Github:
> git at
> Feedback and contributions are very much
> welcome, every contributor becomes automatically
> a co-author.

First impression: I'm opening up the book and reading the
introduction, and I get to section 1.6, and the very first code
example given is:

>>> print "Hello, World!"

A fine tradition to be sure, but I have to say that I'm a little
disappointed that a new textbook on Python being written in 2012 is
focused squarely on Python 2, especially when I just read on the
previous page that Python 3 was released in 2008.  Is there any work
underway get Python 3 into NCLab?

The issue comes up again four pages later in section 2.4, when
division is being demoed, and the text takes a page-and-a-half detour
to caution about the use of floor division for expressions like:

>>> 33 / 6

If the book were teaching Python 3, then this warning would be
unnecessary, since division in Python 3 is *automatically* true
division, unless you go out of your way to invoke floor division by
using the special // operator.  I think that the earliness and
frequency that these differences arise underscore the point that it
would be best if the book could simply be teaching Python 3 to start

Getting off that soapbox and moving along, I notice that on pages
20-22 there are some examples by way of comparison that are written in
C, which makes me wonder what audience this textbook is really
intended for.  The previous pages and references to Karel have given
me the impression that this is geared toward beginning programmers,
who most likely are not familiar with C.  The most troublesome is the
last of these examples, which is led up to with this text:

    The asterisks in the code below are pointers, an additional
    programming concept that one needs to learn and utilize here:

This seems to suggest that the reader should stop reading here and do
a Google search on pointers, in order to understand the example.
Since this is not a textbook on C, and Python has no concept of
pointers at all, doing this would be a complete waste of the reader's

Skimming through a few more chapters, I don't see anything else that
sets my spidey sense tingling.  I hope that what I've written above
gives you some things to consider, though.


More information about the Python-list mailing list