[Edu-sig] How do we tell truths that might hurt

Kirby Urner urnerk at qwest.net
Thu Apr 22 14:45:45 EDT 2004


Much to agree with in recent posts.

I do think the 'class-object' concept should show up early in the game,
because it's such a powerful concept even absent programming.  It
encapsulates our notion of things with internal state and innate
capabilities (that covers a lot), plus a notion of hierarchy or taxonomy or
tree -- the whole is-a/has-a discussion.  This goes back to Aristotle and
before.  It's deeply engrained.

It's a paradigm that works well in cell biology, banking, instrumentation --
which is why programmers, compelled to work in all these knowledge domains,
have embraced it.  In other words, as an "organizing heuristic",
object-speak is too valuable to just leave to the programmers.  The
philosophers need to run with it.

So whereas I'm not for "abstraction simply for the sake of abstraction"
necessarily, I do push 'class-object' thinking as a valuable generalization,
and then see Python as a way to flesh it out more concretely, in terms of a
computer language -- but always going back to analogies outside of
programming per se.  By contrast, I think the mathematical notion of "set"
which we get hammered with starting in elementary school, is quite anemic,
comparatively.  Sets are just too inert for their own good.

Regarding CP4E, policymaking and the like:  I'm doing this Adventures in
Open Source class come June (high school level), and what I'm thinking to
start with are two programs, both written in Python, which play 'scissors
paper rock'.  The difference (which I expect students to discover through
empirically, through running them), is the second one cheats i.e. it looks
at the user's answer and *then* decides, on that basis.  But to somewhat
cover its tracks, it also answers randomly 2/3rds of the time -- so it's not
completely obvious that cheating is going on.

The lesson here:  one advantage of open source is that you're able to audit
the program's behavior, IF that is, you're able to read such stuff.  But
even if you're not able to read it, the fact that it's open means others
probably are, meaning all those things in Raymond's book:  more bugs get
fixed faster, and so on.

Another thing about programming is there's a whole set of social
interactions involved in computer use.  Just grumbling about slow boot times
or blue screens of death is fun for awhile, but eventually you might want to
participate in more convoluted conversations -- even make friends on that
basis.  And I think some of the subcultures involved in computing are fairly
interesting, worth hanging with.  So it's worthwhile to build up one's
fluency in this area because of the sense of belonging it engenders (even if
one's mode of belonging is to play the contrarian).  

Of course it's easy to make fun of this motivation, but for shielding I'd
say it's a factor of all competing subcultures -- just something to keep in
mind.

Kirby





More information about the Edu-sig mailing list