
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