Should All High School Students Learn Programming?

Google, Microsoft, Oracle and other tech giants propose that computer science become a required proficiency in Massachusetts public schools to help address the technology labor shortage. Critics call this a kludgy solution.
 8 MOOCs Transforming Education
8 MOOCs Transforming Education
(click image for larger view and for slideshow)
Technology is pushing education in two directions. One is up the mountain known as technology adoption. The other is into the valley of creating demand for more tech-savvy people.

As any CIO knows, adding technologies always involves a climb. Technology advocates and sycophants will call the climb a gentle stroll and extol the views from the top. But getting something valuable out of a technology can be a perilous affair -- CIOs fall off the mountain, those meant to use the technology get lost or trapped or crushed in avalanches. Even those who make it to the top often find the view obscured.

The climb could get easier if we had more tech-savvy people. What if everyone in the country actually knew something about programming? Why don't the schools educate people to be more technological? Shouldn't the three Rs (reading, writing and 'rithmetic) get an update?

That's a proposal from some major technology firms, including Google, Microsoft and Oracle, that are pushing to have the Commonwealth of Massachusetts require computer science courses for all public school districts and add computer science proficiency to the standard tests a student must pass to graduate from high school. Those tests currently include English, math and a science or technology field. If the proposal finds traction, Massachusetts would be the second state to mandate technology education, after South Carolina.

[ Gamification can improve student learning, but it needs to be done right. Read 3 Keys To Gamification For Education. ]

One of the leaders of this push, Google's Steve Vinter, told the Boston Globe, "This is really about workforce development."

The Globe reported that there are about 150,000 computer science and math-related jobs added every year in the U.S., and only 100,000 college graduates with relevant degrees. The tech companies argue that many more jobs than those 150,000 require computer proficiency, and that it should be a core part of our educational system. Meanwhile, only 713 high school students in Massachusetts took an advanced placement exam in computer science last year.

People need to be able to read, write, do math and reason. All of these subjects should be taught in the schools. But do all people need to be able to code?

Before you respond, consider these questions:

-- Why? Existing math and science classes should teach the major building blocks of reasoning we need for programming.

-- What language would be taught? My knowledge of BASIC and Pascal, gathered in high school and college, isn't even worth putting on a resume these days.

-- What do companies do with their workers when languages change -- send them back to high school?

-- If companies think a few single-semester high school classes in programming will help, why don't they offer it themselves?

As to that last question, there's precedent. IGN and Zoho are two relatively small businesses that still manage to develop programmers from unconventional backgrounds. Zoho runs its own university to train high school students how to program.

If these smallish businesses can do it, why can't Oracle or Google or Microsoft? It might be easier for them to attract people capable of teaching programming. Such people would certainly make more money in the corporate world. Companies could set up apprenticeships that would create work experience for would-be programmers. Besides, isn't it disingenuous for tech titans to suddenly decide that the government, usually bashed for incompetence, is the best way to educate workers?

Education CIOs know they face widely divergent climbs. Even in a high-tech state like Massachusetts, the topography of education technology varies broadly: Some schools exist in a technology desert, with poor connectivity, no infrastructure and no ability to invest in teacher training. Their climbs are fraught with peril. Other schools, with resources and time, might indeed find the slope gentle.

Also, requiring computer science might turn it into just another subject kids feel is force-fed to them, warns Alec Resnick, part of the founding team of the Somerville STEAM Academy, a proposed public vocational lab school in Somerville, Mass., that will focus on computational, project-based education modules for arts and science. The STEAM Academy is tentatively slated to open in the fall of 2014.

"I read the Globe article, and the first thing that came to mind is, 'I really hope that computer programming doesn't become just another thing to push down the pipeline,'" Resnick said. "There's this notion that school is tasked with information transmission. I bristle when I hear people say we need to add this thing or that thing to the pile, computers especially. It's not a topic that you cover the way you talk about traditional subjects. The most exciting part of programming happens outside the classroom."

While Resnick doesn't argue that it's important for people to have fluency in computing, he also points out, "We don't measure our English literature teaching by how many authors it produces. Should we measure our computer science programs by how many software engineers we produce?"

There's an issue beyond schools: it's the way we program. I recently interviewed the CEO of a Massachusetts software company who thinks we need fewer programmers. "Should everyone program? I think that's wrong," says Alan Trefler, CEO of Pegasystems, a fast-growing Cambridge company that makes enterprise software. He thinks the U.S.'s entire approach to programming is wrongheaded and stuck in the 1950s. What businesses need, he says, is to eliminate the need for so much programming.

Maybe that's not possible. Maybe programming should become part of the vocational school curriculum. But jamming programming into an already maxed school day seems like a kludge. Let's hope Google and Microsoft and Oracle realize they're going to fail before they start, and come up with something better.