[Edu-sig] Re: Switching Gears (likewise long)

Kirby Urner pdx4d@teleport.com
Thu, 01 Mar 2001 09:00:43 -0800


I enjoyed reading about your experiences Dethe.

My trajectory was through K-2 in Portland, Oregon (where
I live today), 3rd at Junior English School, Rome (had
to wear a tie), 4-8th Overseas School of Rome (loved it),
9 (1st half) at Southeast High, Bradenton Florida (not
much fun), 9 (2nd half)-12 International School, Manila,
Philippines (fun after an adjustment period).  

My first job after college was as a high school math 
teacher -- 2 years (1981-82) at St. Dominic Academy
(all girlz) in Jersey City, New Jersey (geometry -
calculus + world history and a team teacher of an
honors humanities 2nd yr).  This was around the time
I started getting into Bucky Fuller and his influence
over my math content started to show around then.

In college, I really got into computers, and the first
language I learned was APL.  APL was my first love (in 
the computer languages department).  In a lot of ways, 
Python takes me back to those APL days.  I learned 
Fortran and PL/1 later, some Assembler, SNOBOL, other 
stuff, and in the 80s/90s did Xbase for pay, mostly 
for non-profit social service agencies (including in
Bhutan as a volunteer), later the cardiac operating 
theater -- I still have Xbase work on my plate to this 
day.  I was a philosophy major though, not a computer 
science or engineering student.  My focus was Ludwig
Wittgenstein's stuff, under the tutelage of Richard Rorty 
(a big name in philo) and Vic Preller (not as well known, 
but a creative genius -- just died recently).

Python takes me back to my APL days, as Python's primitives 
tend to build these powerful little expressions in the 
way APL's did (with the concommitant danger that one 
maybe gets too cryptic, tries to pack too much in a single 
line).  My thought at Princeton when playing with APL 
was "gee, this would have been a lot of fun in high 
school", and that's my same thought with Python:  a lot 
of kids would really groove on this stuff, if only given 
an opportunity.

My daughter is now six and went to a Montesorri pre school, 
where one of her teachers is also a family friend, was 
present at her birth.  Now she's in a public school, but 
it's a rather different kind of school, called a family 
coop.  The parents are expected to participate in the life 
of the school to the tune of 100 hours per year, which 
may involve spending time in classrooms and even teaching 
content.

Coincidentally, today is my first opportunity to teach just 
such a "mini-course".  I have two 45 minute periods (shorter 
than usual because they get some recess before gym), today 
and tomorrow, with half my daughter's class, while the other 
half goes to the library to learn some research skills.  
I'll get the other twelve (including my daughter) down the 
road.

We're going to do polyhedra 'n stuff (a little sphere packing).  
Like most curricula, this school's features the cone, cylinder, 
cube, rectangular and triangular prisms, sphere and three-side 
pyramid.  They've dropped any emphasis on classical topics 
like the Platonic 5, or the Archimedian 13.  Plus there's no 
exposure to the more modern (1700s) generalization, captured 
by Euler in the equation V + F = E + 2 (vertices + faces = 
edges + 2).  

Based on experience with young kids in other classrooms 
(including in Bhutan and Lesotho), I know the above content 
will fly, plus I have geometry video and overhead 
transparencies, to supplement hands-on models.  We'll 
also be treating polyhedra as measuring cups and pouring 
pumpkin seeds from one to the other. Mine are scaled such 
that the tetrahedron will serve as the basic measuring cup 
and they'll pour into other shapes to get whole number 
results:  cube = 3, octahedron = 4, rhombic dodecahedron = 6, 
cuboctahedron = 20 -- except I'm not sure I have quite 
enough pumpkin sees to fill the cuboctahedron (there's 
still time to go to the store, maybe get another dried 
good altogether).  

Given you've studied 'Synergetics' some, you know where 
all this comes from.  That Fuller's pedagogical innovations
haven't been phased into K-16 at most levels (even though
this content was popular with kids when he taught it, 
and many creative students thrived under his tutelage)
is of course one of my main beefs with academia.  This
continued, willful ignorance on the part of academics 
about one of the 20th century's createst minds is just 
unconscionable.

If this were high school, and I were in charge, we'd 
spend time looking at the polyhedra as objects in an OO
framework, using Python to code up the Polyhedron class,
and then subclassing the others from this superclass 
(I've gone through this exercise using Xbase, Java, and 
Python, with the results chronicled at my website).  
The rotation, translation and scaling methods would be 
defined at the superclass level, so that all subclasses 
could inherit it.  That's a great intro to OO, matrices 
(or quaternions depending on how we choose to implement 
rotation), which builds on geometry they've known since 
first grade (given this is my own fantasy-world curriculum).

I'd also be using Python for number theory and other 
math-related stuff before the end of high school.  I just 
think (Guido's?) implementation of Euclid's Algorithm for 
finding the greatest common divisor of two numbers is 
the bee's knees:

def gcd(n,m):
     """Euclid's Algorithm"""
     while m:
        n,m = m,n%m
     return n

>From this, you can use list comprehension to get a list
of relative primes < n:

def relprimes(n):
     """Coprimes of n < n"""
     return [x for x in range(1,n) if gcd(n,x)==1]

And the number of such primes is what's returned by Euler's
totient function:

def totient(n):
     """Number of coprimes < n"""
     return len(relprimes(n))

Although, if you know the prime factors of n, there's a 
faster way to compute the totient:

def totient(n):
      """Totient if prime factors known"""
      factors = unique(primes.getfactors(n))
      result = n
      for f in factors:
	 result *= (1 - 1.0/f)  
      return result

Which leads to another of Euler's famous generalizations, 
and Fermat's special case Little Theorem, a special case 
of Euler's:

Euler:   If gcd(m,n)=1, then m^totient(n) mod n = 1
Fermat:  If gcd(a,p)=1, p is prime, then a^(p-1) mod p = 1.

Testing in Python:

>>> totient(561)
320
>>> gcd(561,2)
1
>>> pow(2,320,561)  # = (2**230)%561
1

I agree with you that the curriculum has a lot of 
antibodies protecting it from major change.  But major
changes have and do occur.  We had 'new math' and now
'new new math' etc.  Kids don't have to learn Latin
or ancient Greek any more (although I'll be teaching
some greek roots -- tetra, hexa, octa, icosa -- this
morning).  For better or for worse, reforms do sweep
through the curriculum, always in response to various
pressures.

What gives me a lot of leverage today is the internet, 
which is able to reach students independently of the 
bureaucracies and text book fiefdoms.  I can do more 
than just wring my hands over the sorry state of the 
curriculum -- I can source curriculum and share it with
a global readership (I get emails from all over, and 
that's great).

Another source of hope is television.  Math education
on TV is conventionally of really poor quality, but it
doesn't have to be that way.  The cultural influences 
at work here are much bigger than just what goes on in
in the math ed community.  I think we can realistically
expect TV programming that sparks a feedback loop which
helps to galvanize the change process.

Lastly, I'm happy that the math curriculum overlaps the
computer science curriculum to such a large extent, as
this means the incursion of programming into K-12 provides
more opportunities to address some of the failings and
weaknesses in math class, where calculators rule.  With
kids down the hall using real computers, and doing far
more interesting math-related projects with a VHLL like
Python, it'll be harder and harder for math teachers to
justify their head-in-the-sand attitude towards "math 
through programming", and their luddite fixation on 
graphing calculators as the be-all/end-all technology 
when it comes to teaching algorithms.

Kirby