To argue that computer programming should be a required high school course is absurd. But I’ve learned that many high schools still don’t offer any kind of computer programming/computer science classes. This is surprising to me, because even my high school, a mostly rural school with children of blue collar families and farmers, offered Computer Programming I and II (and before the days of Visual Studio).
I haven’t been able to find much data on the subject, but this Washington Post article states that few than 1 in 10 high schools across the state offer computer science courses:
Across the Washington region’s school systems, fewer than one in 10 high school students took computer science this academic year, according to district data.
I imagine the statistics are similar in other states. Also, one must wonder what is considered “computer science.” A high school near my house teachers Microsoft Powerpoint, Word and Publisher classes. This I find as surprising as the fact that most schools don’t offer computer science classes at all. Computer science, as far as code design, data structures, methodologies, algorithms, is hardly something of rapid change. These fundamentals are the basics that should be learned before any student delves into the specifics of a language. The Microsoft Office Suite, on the other hand, is little more than a set of common, user-friendly tools, guaranteed to be a version or two out of date in the span of four years! Why waste time teaching such things?
I have read that finding qualified teachers to take on computer sciences courses is a challenge. This makes sense, as any skilled engineer would probably rather be earning three times the income of a high school teacher.
Maybe this is an area where the local engineering community could step up. Why not let a good engineer cut away for an hour a day to do some community service by teaching a class? It would be a great way to help high schools–a win-win. The high schools would get a qualified teacher for a specialized class, and the business community would nurture future engineers. This idea seems so obvious that I can’t imagine it isn’t already being tried somewhere!