[Edu-sig] Python in Education Advocacy Article

kirby urner kirby.urner at gmail.com
Tue Mar 27 21:42:59 CEST 2007

> To further discussion on this question I have set up a blog. (I hate that
> blogs are in reverse chronological order; I posted the articles in the
> opposite order than the reading order so you can read from top to bottom!)

I'd rather post thoughts to edu-sig if you don't mind, as your
questions are germane and in line with questions we've been
asking ourselves on this list.

Feel free to add a link from your blog (the edu-sig archive is
public and open) as I might from mine (I link to edu-sig fairly

>From my point of view, as someone who teaches Python both pre-
and post- college, thinking in terms of objects is somewhat intuitive
(why OO is appealing in the first place) and is anchoring paradigm
I strive to impart, with Python the modeling language.

Within OO, students have many choices of other language *and* have
a handle on what a "programming language paradigm" means, so when
encountering a non-OO language, students will we hope recognize how
that's not just a superficial/semantic thing, but a whole "way of looking"
thing (Wittgenstein) involving "gestalts".

That being said, we encourage forays into non-OO languages (I'm
not a religious fanatic, believe in wandering and exploring).

OK, so that's to put things at a meta "teacher training" level.  In
practical reality, this approach entails putting a lot of stress on
"dot notation" because that's what they'll find in C#, C++, JavaScript,
Java and others, or some other symbol playing pretty much the
exact same role.

Interact with the primitive of native objects Python gives you, learn
dot notation interactively in the shell as a "user".

Then, after an interlude with functions (including functions that eat
and return functions), move to rolling your own class definitions,
using __rib__ syntax to savor what it means to be "on the inside"
in the object creation business. [1]

Now we've talked before on this list how some CS0 types don't want
to dive into OO until maybe CS1, and why Python is better than other
languages is it *doesn't* force an OO way of looking, can be used
by those more into other paradigms or no paradigm at all.

Be that as it may, and resisting the urge to defend my approach,
I'll just say that in *my* curriculum (not necessarily CS), which
I'm in the process of propagating more widely, via screencasts
especially, it's OO that's really a starting point (because of
the "math objects" we use -- vectors, polynomials, fractals and
so forth).

Python takes precedence *because* it provides such a clear,
uncluttered view of that paradigm.

Anyway, that's just *my* little success story (my work is bearing
lots of fruit), YMMV.[2]


[1] http://controlroom.blogspot.com/search?q=python

[2] YMMV = your mileage may vary

More information about the Edu-sig mailing list