What schools don't teach

Filed under Musings;

Computers play an important role in education, be it in programming or game design. Retrocomputers like the Apple II can be especially valuable in any of these disciplines, especially programming. The finite, knowable universe of an 8-bit machine provides the perfect canvas on which budding programmers can craft their first algorithms.

But in many schools, the question isn't with what computers should programming be taught, but whether programming should be taught at all. Demand for programmers has never been higher, with the number of positions growing at twice the national rate. Yet ninety percent of schools offer no programming courses at all, leading to colleges graduating fewer computer science majors than they were a decade ago.

The non-profit Code.org is bringing attention to the need for more programming education in this country with a public service announcement (PSA). For this five-minute video, they have recruited the likes of Bill Gates, Mark Zuckerberg, and will.i.am, as well as some less likely suspects.

(There are also one-minute and nine-minute versions of this PSA.)

When I was in high school, a required course was geometry. I found it a challenging course, but reasonably so. The theorems and corollaries about alternate interior angles and their kin weren't intended to train me to be an architect; rather, they were lessons in logic, teaching me how to think and solve.

Programming is the modern geometry, offering similar value to students, whether or not they seek careers in computer programming. I do not consider myself a programmer, yet I have benefitted immensely from the languages I taught myself outside of school. I have occasionally tried to pass on these lessons to friends, showing them some (literally) BASIC concepts on the Apple II, such as variables and FOR loops. They remain completely mystified, with one going so far as to marvel at my own capacity to grasp programming: "You're a creative person, Ken, yet you can program. I've never met anyone whose mind can switch between those two modes so effortlessly."

But programming is creative. A relative who doesn't realize that basic tenet recently characterized programming to me as "Doing the same thing, over and over". How he confused programming with data entry is beyond me. But the fusion of creativity and logic is perhaps best found on this digital landscape, and students would benefit from being introduced to that sandbox — whether or not it's on an Apple II.

  1. Joe Zbiciak says:

    Regarding your last two paragraphs: Programming *is* incredibly creative, as long as you're doing it right. :-) (If you're doing it wrong, it resembled filling out endless soulless spreadsheets.)

    Maybe they're confusing it with other forms of "programming" most people have encountered, such as programming a microwave oven, programming the VCR (err DVR), or maybe your new "computerized smart thermostat," and assume programming a computer must be like setting your watch repeatedly, thousands of times over.

    We don't get enough opportunities to program things with complex interactions, other than perhaps through constructing new games with new sets of rules. That's perhaps the closest analog to programming I can think of that most people might encounter. If you've ever invented your own Calvinball, you've experimented with programming humans. :-) Maybe someone needs to make that connection more obvious and explicit.