[Edu-sig] re: Terminology question: just operator overriding?

Kirby Urner urnerk@qwest.net
Sun, 29 Jun 2003 23:55:49 -0700


At 06:49 PM 6/29/2003 -0400, Arthur wrote:
>Kirby Urner wrote:
>
>>Mostly it's about how this thinking in terms of objects is
>>generic and powerful enough to deserve a bigger footprint
>>in K-12, and that traditional math concepts might be well
>>served by these same metaphors (math objects, defined by
>>class blueprints, with instances containing specific state
>>info -- e.g. fractions, polynomials, vectors etc.).  Python
>>makes these metaphors concrete.
>
>Sounds sensible.
>
>Seems to me if we were satisfied with very targetted introduction  of 
>well-established concepts that have their roots in programming (as applied 
>mathematics) and intergrate the use of those concepts well with existing 
>curricula at the K-12 level - very much along the lines you suggest, it 
>seems to me - well, there might be some measurable upside to it all.

As a philosophy major, I'm aware of how the logicians were always
pushing for a semantics that'd be precise, computational, yet
all encompassing at the same time.  Propositional calculus and
like that.

But this was before programming languages (Bertrand Russell et al,
and Leibniz before that).  Yet the object oriented paradigm is
another example of a similar push.  The student is deliberately
prodded to look well beyond the computer, or some specific language,
to see the world in terms of objects, their interfaces, their
interactions.  We even talk about events (which aren't just
mouse clicks and key presses) -- very general.

>It is conceptually sound, and does not even depend, necessarily, on the 
>availability of a machine.  Though no question, that would be better.
>
>Small is beautiful.
>
>Art

More concretely, it's considered high level, and part of abstract
algebra, to be able to generalize from ordinary numbers to these
generic "types" with their group, ring and field properties.

The addition and multiplication operators become abstracted, to
mean whatever operations follow similar patterns (e.g. you need
identity elements).

So I hardly think the mathematicians can object that we're dumbing
down the math curriculum or getting off on a tangent, if we look
at an extensible type system, such as Python provides, and use
our ability to override __add__ and __mul__ as we define one type
after another (permutations, integers modulo N, matrices,
polynomials, rationals -- the sets of 'math objects' people
traditionally study in group theory and abstract algebra classes).

OOP gives a good general context, a philosophical basis rich in
metaphors, inside of which we can develop and reinforce a lot of
traditional math and science concepts -- in tandem with a computer
language.  There's also a lot of generic language skills required,
to express ideas about attributes, methods, inheritance, encapsulation,
interfaces and so on.  Numeracy and literacy skills both get a
work out.

It's a reasonable approach.  I think a mix of philosophy and computer
science should be more aggressively advanced as a basis for curriculum
integration.

In the old days, arithmetic was a lot about how the corner store
operated.  Today, the corner store uses scanners in the checkout
lanes, wired to relational databases designed to monitor sales
and trigger re-orders (some stores also track purchases by
customer -- e.g. Safeway cards).  Yes, we still need curriculum
that explains what goes on in the corner store -- but this can no
longer be done without reference to computerized infrastructure.

Kirby