[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
mathematician".
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:
http://www.egroups.com/message/synergeo/812
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
programming.
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]
Kirby
[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