Casting About For an Elective High School Curriculum in Computer Programming
It has always struck me as odd that the high school mathematics curriculum has three years of algebra, geometry, and trig courses leading up to AP Calculus, but there is no established curriculum leading up to AP Java or the newer AP Computer Science Introduction. Perhaps that’s why these AP computer courses are oddly introductory despite their Advanced Placement college status. I mean, high schools seniors who seriously ace BC Calculus are truly launched towards a college math degree. But high schoolers who ace AP Java and Computer Science are still on the tourist bus towards a professional degree in computing.
Admittedly, there’s only so much you can accomplish in an introduction from scratch. And the AP computer curriculum is still relatively new. By contrast, the traditional four years of high school preparation for calculus is now almost two centuries old. Harvard first required a high school Algebra background for all entrants in 1829. To this day, four years of mainstream high school mathematics articulates well with the first two years of a math major in college.
But the world of electronic digital programming is much less than 100 years old, and the dust is far from settled on its standard curriculum. Two instructional highpoints stand out. Back at the dawn of deeper-higher computing languages, Kernighan and Ritchie first presented “Hello World” in C in 1978. Back at the dawn of human consciousness of computers, Alan Turing first presented a mathematical description of computability and computational undecidability in 1936—now that was a singularity!
Today’s high school computer curricula (and college computer curricula, for that matter) are still struggling to get their boots on the ground. Pedagogical things like this take time. More than decades, for sure. Several centuries of ancient Greek mathematics preceded Euclid’s teachable presentation of it.
But right now is not too soon (and it’s certainly not too late) to institute a four-year high school computer curriculum (elective, of course) that honors the roots and branches of computer science and the coding arts as they exist today—still within living memory of their origins.
Calculus after Descartes and Newton took three centuries to achieve a well-settled curriculum. During those centuries, calculus quietly transformed physical science, but calculus did not begin to transform our physical world until the 20th century. That’s when calculus first became an indispensable engineering tool for everything from radio and television to space rockets and exploding atoms.
On the other hand, computer science shot right into the fabric of our present highly engineered human condition while formal computational programming concepts and semi-conductor logic circuits were still both in their infancy—or their adolescence at best. Hardly has there been enough time to discern where we are with computers, let alone how we got here. Certainly there’s not been enough time to organize a settled curriculum for initiating young people into the wonders of formal machine computing. Disciplines such as literature, history, even welding have well-settled high school and college curricula by comparison. No surprise that Doonesbury, who clearly has a fix on our present computer-based human situation, works in a cubicle not a classroom.
So it’s not too sad that adequate high school curricula in computer coding and digital systems are mostly lacking today. Rather today is the right time to start teaching the right stuff in high school: procedural algorithms, hierarchical processing structures, stateful objects, architecture of computing machines, distributed networks, relational databases, query languages, markup languages—all the good stuff—suffused with the living history and philosophy of formal computing.
Too ambitious? Not at all! In fact, it’s already been tried a little. Look around for a full four-year high school computer curriculum that starts 9th grade with Kernighan & Ritchie’s iconic program, “Hello World.” The first and best such curriculum you’ll find is at codehs.com, and it’s even in Java!