Teaching Math with Python

10/04/2000

Kirby Urner is a man with a passion for numerical
literacy (numeracy) and programming. Urner sees a future
where we teach math and programming together. Programming
offers us tools to bring numbers and formulas to life,
making math a lot more fun in the process. This much we
have known for at least 15 years, but programming has been
slow to move into the high school educational space. Math
textbook writers continue to churn out new versions of the
same old stuff. Perhaps that has been because computer
languages have generally been difficult to read and
difficult to learn, or ridiculously low-powered. Python
changes that. It is a high-powered tool that remains
accessible.

Urner is writing curricula for teaching math using
Python. The world of textbooks and the educational system
in general is too excruciatingly slow, though. Urner has
taken his curriculum to the web with the Oregon Curriculum
Network, a web publishing platform and model for other
curriculum developers. This site is a blessing for home
schoolers and rogue educators looking for an alternative
math curriculum. In February he started with a four-part
article on Numeracy
and Computer Literacy. In these articles he covers
analysis of number series, vectors, primes, and random
movement through a matrix. All of these are backed with
examples in Python. Inspired by some new features in Python
2.0 (zip() and list comprehensions), Urner has published this
month ideas for teaching Precalc
with Python 2.0. He uses Python to bring clarity to
precalc formulas and uses POV-Ray to bring them to life.

His writing is dense. It packs a wallop that is better
suited to other educators than those just learning math. It
is certainly not the slow gentle route. With my days of
math so far behind me, it has been a challenge to work
through them, but his ideas are gold. They are great
examples of how we might teach Computer Programming for
Everybody (CP4E).

I first became aware of Kirby Urner through the educational
special interest group (EDU-SIG) for Python. This is a
group formed around Guido van Rossum's DARPA proposal to
teach CP4E. Teaching programming
as a general literacy to everybody is a bold project.
Python is the language that just might make it possible.
Python has long been praised for its clarity and for how easily
it can be learned. In CP4E, Van Rossum proposed that the
next step after a computer on every desk was a programmer at
every computer. The full proposal was to study how
programming might best be taught, update IDLE (a graphic
programming interface), and develop a curriculum to be
tested. CP4E's future as a project has been in question,
though, since the Python team has moved from CNRI, who was
hosting this project, to BeOpen. BeOpen and Van Rossum say
that it isn't dead yet, but they still don't know how to fund it. So far, a better version of IDLE has been the only
tangible result. Well, that and the SIG.

EDU-SIG is a mailing list that
has mostly been a sleeper, with an occasional gem posted to
the mailing list by subscribers like Urner. When the list
was first formed early this year, Urner came on strong,
plugging away for his own slant of teaching programming with
math. It isn't a popular position among math or computer
programming instructors who are more commonly fighting
for turf and funding. Despite the difficulty of introducing
an integrated curriculum, I have found Urner very
persuasive. Then again, I admit to being a math head. I am
fascinated by math. With the future of the CP4E project
unclear, it has been wonderful to see that Urner keeps
plugging away for numeracy and computer literacy. I am glad
he is.