[Edu-sig] Rich Data Structures plus Knowledge Domain Object Sets

kirby urner kirby.urner at gmail.com
Mon Jun 19 20:57:31 CEST 2006


I've earlier posted about providing students with more than just
template example data, organized in whatever structures, mostly to
drive the discussion of the structures themselves (dictionary, list,
array, tree, network, bag, multi-set, queue, stack, hash table ... and
so on (yes, I'm deliberately jumbling the namespaces here)).  We could
do foods and their breakdown, in terms of protein, fats, calories.  We
could do planets and their moons, plus quasi-planets, comets and
whatever.

You wouldn't want a completely flat list for most knowledge, when you
could be nesting dictionaries or whatever.  I'm thinking of what I did
for Bernie:  showed him how to accommodate "no fixed order" mineral
content data from around the world, and organized by named sample,
within a two dimensional dictionary names samples (read from csv files
using the Standard Library csv module)).  Now he can go
samples[sampleid][mineral] and get a floating point for his other
computations.

I've also posted about starting warm and fuzzy in animal world, with
OO notation, usually around Mammals and such.  Subclasses Monkey,
Human and Dog have been a feature of my teachings, with gnu math shell
commands such as as h1 = Human("Tom Cruise") appearing in some of
them.  The class definition specifies an empty stomach at birth
(__init__), while the eat method echoes the random foods ("Thanks for
the...") appended to self.stomach.  A more elaborate class would treat
stomach as a queue, but in these first cartoons, we're not trying to
get so literal.  I let objects eat each other, even themselves.

Note:  if we have rich nutrition information in a database of foods,
then a digestion model might be coupled with an energy model.  The
object would "burn" calories per each method executed.  Running up
hill word burn them faster than watching TV, although they say Bobby
Fischer lost entire pounds during a game of chess, given how hard his
brain worked.
http://en.wikipedia.org/wiki/Bobby_Fischer

The combination of these two looks intriguing, let's say where a focus
on local biologies and ecosystems is strong (the hallmark of a good
local school).  Really flesh out the local animal system in OO
notation, to some level of detail, with a discussion of lifestyles,
predatory trees, methods of camouflage, seasonal fluctuations and so
on.  In North America, the local py files might include grizzly bears.
 In South Africa, dung beetles and elephants.

We're doing open source here, so if TuxLab Kusasa pumps out a decent
infra-coastal ecosystem model, at least data-wise, TuxLab Durban 17
might simply import that into a more struct-like set of Python
classes, for teaching about Nemo and such.  Lion King, Jungle Book...
lots of cultural memories, plus older material (some lifestyles trace
back a very long time in that neck of the woods, as the cave paintings
attest).

The point is to make learning about data structures, OO syntax, a data
rich experience, infusing knowledge domain material in a nutritious
"py dough".  The Python modules in question might be about earth
science, astronomy, anatomy, zoology, gemology or whatever.  In some
modules, we might confine our scope to the breeding tree we call "dog
space" (they say any random two can mate, assuming necessary
equipment, so it's still just the one species, but I'd hate to see
that experiment actually tried (I'll just take their word for it)).

Sarah-the-dog is under my desk as I write this, enjoying the company
of my feet.  We have a fenced back yard, plus she gets walks in the
neighborhood.  The last time we went to the beach (Manzanita, hot tub)
she didn't get to join us.  No dogs in the hot tub, nor in the house
that owns it.  Also this AM:  Tara has been doing stuff with iTunes,
getting a lesson in how to pump up bike tires (my two needed at least
80 PSI (this is the bike I did Seattle to Portland with, a couple
years back)).

Given my geometric focus, I'm already packaging knowledge domains that
I know the most about.  My polyhedra come in several flavors, however
my niche market has been modules such as rbf.py i.e. my Fuller School
stuff (we pickle some of Fuller's most important innovations).

So that's one of my chief exports from the Portland Tech District (an
area close in to the Willamette, on the east side, where my wife keeps
her Turning The Wheel business going (glass desktop, flat screen
monitor, multimedia CPU)).

My OSCON 2005 presentation was about thanking the open source
community for making my job as a Fuller Schooler so much easier.  I
recapitulated a lot of that in my publicly streamed QuickTime video @
LKL, delivered in close chrono-proximity to my Shuttleworth Summit
blog posts (see worldgame, controlroom, mybizmo @ Google's
blogspot.com for more info).

We also plan to branch out into rich data *reprocessing* i.e.
downloading publicly available data and bundling it up in rich data
structures (Ruby's or Perl's, as easily as Python's).  This group
undertaking is for inhouse development mostly, not for retail pricing
(let others rush to shrink wrap).

Education systems need this stuff in a hurry and for free (especially
the basic math objects), along with encouragement to copy the stuff
and enhance it.  We'll charge for the more proprietary knowledge
domains perhaps, but core liberal arts stuff shouldn't be held hostage
for money, and we need to circumvent those who think it should be
(circumvention is also what those boring old public libraries are
about, the ones with all those DVDs, as well as books, not just the
Internet, however dynamic and appealing (libraries and the Internet
are very much in synergy)).

Indeed, the education network itself is a *source* of good things,
which businesses then pirate off with for pay dirt.  We call it:
going to a real school (one that gives you your money's worth in terms
of skills and connections), and then getting a real job (one that
appreciates and values your performance and in a field you yourself
respect (garbage collection is a vital service that Python provides,
whereas in primitive C you still need to take out your own trash)).

4D Solutions is not the kind of business that vultures around schools,
waiting for tidbits and clues to make a killing with.  I'm more into
thinking like a think tank, a knowledge lab, tucked away in the
Silicon Forest someplace, and already within the ramparts. I'm not
always for profit, nor am I all things to all people, but at least my
shop is efficient at what it does -- like a well equipped bicycle
co-op, expertly staffed, or like a race car ready for the next lap (we
just saw the movie Cars yesterday, so I'm not surprised at this
metaphor).

Kirby


More information about the Edu-sig mailing list