Should computer programming be mandatory for U.S. students?

Core computer literacy will be essential in the global job market, so maybe it's time to start looking at programming as a baseline skill and not as a differentiator

If Governor Arnold Schwarzenegger and the State Board of Education have their way, soon every California student will have to pass an algebra test to graduate from the eighth grade.

Mind you, they aren't likely to have their way. The new mandate already faces a lawsuit filed by the California School Boards Association and the Association of California School Administrators, alleging that the decision was made without giving educators a proper chance to weigh in. Opponents of the plan claim it will force already-underperforming students into subjects for which they are not prepared.

Even if we don't agree with the Board of Education's methods, however, its sentiments are sound. If the U.S. is to remain competitive in the 21st century, American students need to be brought up to par with those in the rest of the world. Math and science education is crucial to closing that gap.

And as long as we're talking education reform, let me propose a further step. If modernizing education is the name of the game, maybe it's time we incorporated fundamental computer literacy into the curriculum of U.S. public schools. If eighth graders should know algebra, by the tenth grade, they should be programming in Java.

Banishing the stigma
Is mandatory programming coursework putting the cart before the horse? I don't think so. It's time we shed some of the popular prejudices and misconceptions surrounding computer literacy, many of which are simply remnants of a bygone era.

When I was in school in the 1980s, movies like War Games and Tron popularized the image of the computer hacker as the inscrutable, impossibly intelligent outsider. Video games were cool, but if you actually made them, you were probably a socially-stunted nerd.

Meanwhile, the computers of the business world were refrigerator-sized boxes that hummed away in hermetically sealed laboratories, tended by teams of engineers in white coats. If that's what your kid wanted to do when he grew up, there wasn't much you could do as a parent but smile sheepishly, think of all the money he'd make, cross your fingers, and hope someone would marry him someday.

Today, all of that has changed. Look around you: What modern school-age kid doesn't have access to a PC -- and with it an e-mail address, IM accounts, a MySpace page, games, applications, and all the resources of the World Wide Web? Today our phones are digital, our cameras are digital, our music is digital, our DVD movies are digital, even our television is turning digital.

Computing devices are everywhere. But the one thing that hasn't changed is the idea that computer programming -- real, deep-down, core computer literacy -- is something for nerds, geeks, and outsiders. Guess what? It's a self-fulfilling prophecy.

Programming engages students
Today's kids have every incentive to learn programming. Whether it's to trick out a Web page, interface with Facebook, or write scripts to help with homework, programming has real-world applications that have relevance to kids' lives.

Instead of labeling their enthusiasm for computers as disruptive or aberrant behavior, we should harness it as an educational tool. By integrating computer literacy into school curriculum from an early age, we would give students a learning experience that more accurately reflects the modern world around them.

Equally important, mainstreaming the teaching of programming would shed the antisocial stigma associated with computer literacy. Girls in particular would be much more likely to take an interest in computing if doing so wasn't the social equivalent of joining the Chess Club. Even if they didn't go on to careers in IT, the basic skills they would learn would be applicable later in life to everything from Excel spreadsheets to troubleshooting system crashes.

Let's also quash the old-fashioned idea that computers allow students to "cheat on their math homework." Computer programming languages are really just alternative ways to represent solutions to logical problems. Instead of rote math drills, why not challenge students with assignments that engage their creativity as well as their capacity for logical thinking?

Where traditional math problems can be unforgiving, programming languages like Python or JavaScript offer students interactive environments that encourage them to explore and experiment. The immediate feedback they receive when they solve problems gives them individual encouragement and positive reinforcement -- things that textbooks alone can't provide.

The problem isn't that computers don't fit with the standard educational curriculum. The problem is that the curriculum hasn't evolved to incorporate the realities of the Internet Age.

Skills for the global marketplace
Of course, if we can't get schools to teach algebra, mandatory computer literacy is a pipe dream. In most states, the funding necessary to give every child access to a PC simply isn't there. And teaching computing implies that teachers at the middle and high school levels will be sufficiently computer literate themselves.

If we dare to dream, however, he benefits of a modernized, computer-centric education system would be enormous. Some advocates of education reform favor re-establishing trade schools as an alternative to college education. But if we integrated computer training into mainstream school curriculum, high-school students would graduate with skills that would be applicable to virtually all walks of life.

Among white-collar occupations, no fields would benefit more than IT and software development. Today, too many students waste time at the university level learning fundamental programming concepts. As a result, computer science undergrads often end up strong on specific tools and practices but weak in high-level concepts like algorithms, design patterns, and computing theory.

By comparison, journalism majors are expected to know how to read and write before they enter a university program. If we similarly armed future CS students with core computing literacy from a young age, it would allow them to spend their college years concentrating on the advanced skills they will need to remain at the forefront of their profession -- skills, for example, like project planning and business administration.

Make no mistake; the days when knowledge of computer programming was a ticket to a golden future are over. In today's globalized job market, computer literacy should be seen as a baseline skill for the U.S. workforce, not a differentiator. Unfortunately, there's every indication that the education reforms needed to create such a workforce will be an uphill battle.

Copyright © 2008 IDG Communications, Inc.

How to choose a low-code development platform