[Edu-sig] more thoughts about Python pedagogy (pyPed)

kirby urner kirby.urner at gmail.com
Sun Apr 27 21:23:55 CEST 2008

So to reintroduce myself to some of you newer subscribers, I was a
high school math teacher in a Dominican run school in Jersey City,
before entering a career of mostly NGO work, as a programmer on the
front lines (xBase).  Python started as a hobby interest, connected
with geometry studies, only became a part of my income stream toolkit
much later in the game (many stories).  I live in Portland, Oregon and
am a veteran of the OSCON, PyCon and EuroPython speaker circuit, with
a lot of that stuff archived and easily accessible if you want to
email me for links.

My current practice is to follow Saxon, one of the popular math text
book authors, in using a spiraling approach, meaning we cover data
structures, functions, and classes the first day, but not exhaustively
in any "silo" (they all go very deep as we know from experience).  So
like strings and lists, dabble in the shell, def a couple simple
functions like from algebra class (these kids are all taking
traditional math sequence), then do my Biotum, one of the simplest
types possible that can still eat and divide (using copy module).

Then on like a second pass, we'd add dictionary to data structures,
default args to functions, more methods to a simple class.  On a third
pass, sets as data structures (a bridge to discussing concept of
"immutability" thence on to tuples as a kind of list that will work as
a dictionary key -- starting to tie it all together here), start with
the *kw, **kwarg stuff inside the function mouth f( ), and finally
bridge to inheritance (Monkey and Dog as subclasses of Mammal
(object), the subclasses distinct as to __repr__ only -- __init__ at
Mammal level only, simple assignment of a moniker i.e. self.name =

So that's the Saxon idea of a spiral:  data structures; functions;
classes each time, but also a little deeper each time.  The goal is
for concepts to gain traction by being immediately *used* in a next
context (something Wayne and I were yakking about on Math Forum
recently).  We introduce vectors only to use them in a next lesson, as
constituents of polyhedra.  Or I'll start with polyhedra as my
primitive objects and get to vectors only secondarily, as constituents
of an Edge class.

I believe in teacher discretion in these matters, as a best judge of
hers or his own students and teaching abilities.

I keep blogs, still use xBase for a living, mostly in hospital work
(having SQL embedded right in the native syntax is like bread and
butter for me, not saying Python isn't good at it), have hung out on
edu-sig here since its inception, lots of fun dialogs, got us a PhD
thesis focused on us 'n everything (collective blush) **.  I think
it'd be unsurprising that Python has a dynamic core list focused on
education, given all the focus and interest on improving curricula
these days.  I definitely think the open source languages, combined
with low cost hardware, is in the process of revolutionizing the
classroom once again, to the lasting improvement of the student
experience, teacher as well.


John Alexander Miller
A dissertation submitted in partial fulfillment
of the requirements for the degree of
Doctor of Philosophy
in The University of Michigan
Doctoral Committee:
Professor Frederick Goodman, Chair
Emeritus Professor Carl Berger
Professor Jay Lemke
Professor John Swales


More information about the Edu-sig mailing list