Hi Ian,
thank you for your comments.
On Mon, Nov 19, 2012 at 11:46 PM, Ian Kelly ian.g.ke...@gmail.com wrote:
On Sun, Nov 18, 2012 at 10:30 PM, Pavel Solin solin.pa...@gmail.com
wrote:
I would like to introduce a new Python textbook
aimed at high school students:
http://femhub.com/textbook-python/.
The textbook is open source and its public Git
repository is located at Github:
g...@github.com:femhub/nclab-textbook-python.git
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?
There is an ongoing discussion but we are not sure.
Are there any reasons except for the print () command
and division of integers?
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
with.
Perhaps you are right. Is there any statistics of how many Python
programmers are using 2.7 vs. 3? Most of people I know use 2.7.
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.
That's exactly right.
Unfortunately, many high school teachers are using C++
to teach programming to complete beginners. This
comment is for them. It can be removed, you can do it
if you like. The code is on Github.
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
time.
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.
Thank you once more for the comments.
Pavel
Cheers,
Ian
--
Pavel Solin
Associate Professor
Applied and Computational Mathematics
University of Nevada, Reno
http://hpfem.org/~pavel
--
http://mail.python.org/mailman/listinfo/python-list