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

kirby urner kirby.urner at gmail.com
Thu Jan 14 08:46:05 CET 2010


On Wed, Jan 13, 2010 at 3:03 PM, Andre Roberge <andre.roberge at gmail.com> wrote:

>
> Ok, here's the revised version  (please feel free to suggest changes):
>

I think your new verbiage is well crafted.  I understand what you mean about
why people unfamiliar with Python might want to start with 2.6 / 2.x, because
they're more likely to not know what dependencies they might get into, and
currently, in 2010, more of the add-ons are using 2.x syntax.  Actually I don't
have any hard numbers, just having that sense.  Visual Python (Vpython),
which I often talk about, is 2.6.  Pygame is what again?  Can't find the server
right now.

Please accept my personal thanks for your taking some time to work on this
page.  I expect it will need additional fine tuning with the passage of time,
simply because the migration from 2.x to 3.x will have progressed to such a
point, that our advice will be different.  However, your suggestion
that learning
them both, having a sense of the differences, could be an option, is quite
insightful.

Why I would be especially a fan of your idea (to teach both) is that it accesses
the "lore" dimension, meaning we get to tell the history.  This is
important because
Pythons in particular shed skin.  Going from 2.x to 3.x was proof of Python's
true snakishness.  More to the point, in learning about "how print became a
function" or how "the division model changed" or "more returns were iterables"
one becomes more aware of language features.  You need contrast to learn
anything.  Comparing across languages is the usual thing, but going back to
2.x in Python's case is not a bad idea either.

Kirby

> As a result of the changes, programs written for Python 2 are likely to be
> incompatible with Python 3 (and vice-versa). Some of you may have not
> control over which Python version is made available to the students. If that
> is the case, you should not despair too much if you and your students do not
> have access to the best/latest version of Python: Python is a fantastic
> choice as a first language and the relatively minor changes between versions
> do not change this fact.
>
> If you have some control over which version of Python is made available to
> the students, then you have a choice to make. In this case, and as a very
> subjective opinion, we would like to offer the following:
>
> Use Python 2, and more specifically version 2.6, 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 (in which case you may not yet
> realise that you might need some third-party modules.)
> Use Python 3, and more specifically version 3.1, 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.
> Consider the possibility of teaching both Python 2 and 3. If you are
> teaching beginners, the only significant differences are the print
> statement/function, 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.


More information about the Edu-sig mailing list