Tuesday, December 12, 2017

Revised Position

Regarding an improved curriculum design, with the goal of phasing in "programming", I'd bought into the common wisdom that "somewhere around algebra" or even "after algebra" was where programming first started making sense.

I'm not sure why that coupling existed in terms of suggesting programming and algebra be contemporaneous, or that "the math" must always come first.  On the contrary, kids from a very young age have an application for a coordinate system, springing from the same original source as it did in the first place: artists needing to put colors on canvas.

The algebra teacher should be forwardly thinking in terms of students already having some coding background, and building on that.  The formal introduction of "function" in its native namespace, with surjective, bijective and so forth, might then build on already familiar semantics, even coming from purely block-based languages such as MIT Scratch.  It has "define" blocks for organizing other code blocks into shared routines.

So no, I don't think waiting until after algebra makes any sense, and that's a good thing, as the status quo in my neck of the woods is quite the opposite:  kids are diving into coding long before they encounter a traditional subject called "algebra". I'm glad I don't have to fight the status quo on every front, as that gets exhausting.

The main barriers to lexical programming have to do with keyboard abilities.  Yes, we have ways to employ voice recognition and coding is not necessarily about speed, as it's not done to a metronome (not counting the company clock).  Still, faster typing means being able to keep up with one's thoughts, with "thinking in code" more fluent when not held back by slow fingers.

We have all kinds of thoughts about algebra, in terms of "rules of equality" and "finding unknowns" and we'll get to that.  However programming a computer is more like scripting a play, a stage, a theater, or a television.  It's about providing content in a structured manner, at a sustainable rate.  We like things to happen quickly where purely rote processing is concerned.  We should let kids enjoy the speed of their CPUs and GPUs long before we insist that they study these gizmos algebraically.