[Edu-sig] Edu-sig page advice to teachers

kirby urner kirby.urner at gmail.com
Fri Jan 8 02:18:08 CET 2010


Current verbiage:

"""
As a result of the changes, programs written for Python 2 are likely
to be incompatible with Python 3 (and vice-versa). Since both versions
are going to co-exist for a while, a choice has to be made as to which
one to use. As a very subjective opinion, we would like to offer the
following:

    * Consider the possibility of teaching both Python 2 and 3. If you
are teaching beginners, the only significant differences are the print
statement/function and the integer division [and possibly the
input()/raw_input() changes...] which you can point out as you go
along. Of course, you will have to decide on a common version to
install for everyone to use; to decide which one, or if you really
want to focus on teaching only one version, we suggest that you
consider the other two alternatives.
    * Teach Python 3 if you only plan to teach Python as an
introductory language (say in a CS-1 course), making use only of
modules included in the standard distribution. Alternatively, if you
teach Python in languages other than English, where non-ascii
characters could be put to good use in writing identifiers, then
Python 3 should definitely be your choice.
    * Teach Python 2 if you think you might be using third-party
modules not included in the standard Python distribution, or if you
are not familiar with Python. You may want to consider teaching Python
using the older version (2.6 is the most current release) until more
third-party modules have been ported to the new Python version, and
more tutorials for the new version are available.
"""

I'm wondering if this should be fine tuned to more explicitly
encourage 2.6 and above if doing Python 2 (because of
3rd party dependencies), 3.x in all other cases.

Why?

Because in 2.6 (and 2.7) we've got the new core Python format
specifiers (PEP 3101) plus have the potential to import the
Python 3.x print function from  __future__.

Of course it's up to individual teachers to make their own
determination.  The edu-sig page is not about dictating
anything, simply making recommendations.

However, shouldn't the bias be to encourage using 3.x?
Lots of tutorials out there by this time.

3.x also tends to return iterators in a lot of places where
2.x returned a list, e.g. in the case of zip, range etc. --
lots of subtle differences that are quite pervasive
nonetheless.

If you are "not familiar with Python" (bullet point 3), then
isn't 3.x is your better bet?

It's easier to think of strings as just unicode codepoints
(u-this and u-that) with their byte encodings a separate
data type.  Having students get it about unicode is pretty
important in this day and age, no?

Anyway, just ruminating.  People get their advice from
a million sources.

An appropriate topic for discussion though.  What 3rd
party libraries would break?  I'm big into VPython, so right
off the bat I'm facing such issues.  Anyone else using that
or am I the only one?

Kirby

-- 
>>> from mars import math
http://www.wikieducator.org/Digital_Math


More information about the Edu-sig mailing list