[Edu-sig] More re the Urner Approach to CP4E (computer programming for everybody)

Kirby Urner pdx4d@teleport.com
Tue, 06 Jun 2000 12:16:54 -0700

My logic is simple:

  #1  Everybody should learn some math (a cultural given)
  #2  These days, that means some programming (extrapolation)

  ->> Ergo, everybody should learn some programming

Easy languages like Python, plus the fact that calculators have 
already trailblazed a place for high tech in math ed, make 
extrapolation #2 reasonable.

CP4E doesn't mean "everybody becomes a programmer" any more 
than universal math (UM4E) means "everybody becomes a 

What I'm resisting, with this approach, is the idea that we 
need to teach "beginner programming" and "beginner math" as two 
separate subjects, each with its own text books, web sites, 
teachers, jargon.

That'd phase in too much redundancy in a curriculum that's 
already way too overspecialize and fragmented as it is, as 
per this quote by mathematician and luminary David Hestenes:


Text books like 'Concrete Mathematics' (Knuth et al, used at
Stanford), give a good idea of how the numeracy + computer 
literacy genre is already well-established at the college 
level.  What I'm attempting in my 'Numeracy + Computer Literacy' 
series, is to "lower a ladder" to teachers working closer to 
the high school level (or closer to my prototypical projection 
of what _could_ be considered the high school level -- in a 
possible near future).[1]

But one might ask:  even if we _start_ with early math ed and 
programming concepts in the same incubator, at some point the 
two will need to grow apart.  For example, how would a math 
class make use of this idea of "objects", as in object oriented 

I'm glad I asked this question.  I've done some thinking about 
that, and think that when it comes to "OOP meets math", the way 
to go is:  Polyhedra as Paradigm Objects.[2]  Where else do 
computers strut their stuff so effectively, as in this realm 
of spatial geometry (aka "videogame heaven")?  And what is 
more purely mathematical and geometric, since ancient times, 
than the polyhedra (Platonic, Archimedean, and all the rest 
of it)?

With Polyhedra, you can have a superclass (Poly) and a lot of
subclasses (Tetra, Octa, Icosa...), with methods for scaling,
rotating, translating at the Poly level (once, for all), and
data specific to each specific poly (e.g. faces, coordinates), 
defined at the subclass level.  Like this:

   class Poly:         # superclass
      # generic methods go here
      def rotate(self,axis,degrees)
      def scale(self,scalefactor)
      def translate(self,vector)

   class Tetra(Poly):  # subclass of Poly
      faces = [('A','B','C'),...]
      volume = 1

   class Octa(Poly)    # subclass of Poly
      faces = [('I','J','K'),...]
      volume = 4


I've already implemented the above design in several ways, in 
Python, Java, and Xbase.  Works well, and gets us nifty graphics, 
in Povray, VRML.[3]  But I'm not saying everybody needs to use 
my source code.  No, I'm just saying this _idea_ (of Polys as 
paradigm OOP objects) makes plenty of sense, is a potential 
"grand central station" for convergent trains of thought, a 
place from which to branch into numerous related areas.

Plus here's what, for me, is the clincher.  Recent advances in 
pedagogy around polyhedra owing to the lifework of R. Buckminster 
Fuller is a way to get a foot in the door for a new brand of 
futurism that actually has a strong track record already.[4]
With "design science" making inroads in K-12 (i.e. pre-college 
curriculum), we have the option to give kids inspiring and
hopeful (realistic, attainable) visions of positive futures, 
much as we did in Apollo days.[5]

So for me, it's a pretty much a no brainer at this point:  
CP4E, OOP with polyhedra, and RBF's concentric hierarchy, with 
links to American Lit and positive futurism (lots of Hollywood 
potential -- but a lot less escapist/phoney/fake than "24th 
Century Federation Science", which is blockbuster stuff, 
certainly, but not backed up by real know-how, the way 
"Bucky Works" already is (Spaceship Earth is much more a 
present reality than Starship Enterprise -- so let's get 
on with the show!)).[6]


[1] http://www.inetarena.com/~pdx4d/ocn/numeracy0.html
[2] http://www.inetarena.com/~pdx4d/ocn/trends2000.html
[3] http://www.inetarena.com/~pdx4d/ocn/oop.html
[4] http://www.inetarena.com/~pdx4d/volumes.html
[5] http://www.teleport.com/~pdx4d/bworks.html
[6] http://www.teleport.com/~pdx4d/pr.html