When I was a kid, the first stop on the road to becoming a computer programmer was the local arcade. In the 1980s, as now, video games were a booming business. As a preteen enthralled by these glowing, interactive marvels, to be told that I could actually learn how to make video games was like being handed a scholarship to Hogwarts. The arrival of the home computer made it possible.
Today, video arcades have more or less vanished from the American landscape, but kids' interest in video games is stronger than ever. Game consoles and PCs have become staples of family life. But this new generation of gaming platforms doesn't seem to be encouraging kids to take up computer programming.
[ Get software development news and insights from InfoWorld's Developer World newsletter. ]
"There are more and more [computer science] jobs," says Alexander Repenning, a computer science professor at the University of Colorado Boulder, "but the interest is actually going down, and the interest of women in these kinds of jobs is going down even faster."
Although video games have changed a lot since the 1980s, Repenning and other instructors at Colorado are betting that what worked to inspire kids then can work now. Currently in its third year, the university's Scalable Game Design curriculum aims to reinvent computer science education beginning at the middle school level, using games as the spark to ignite students' interest in computing.
How computing classes turn kids off
"The middle school years are critical for students in reaching conclusions regarding their own skills and aptitudes," writes Repenning in a paper published in 2010. "This is the age at which children prematurely and often falsely conclude that math and science is not for them, or that computer science is all about programming, or is a field that is hard as well as boring."
For those of us who taught ourselves programming, it's easy to see how young students could be turned off. Traditional computer science classes at the high school level and earlier teach programming as if it was an end unto itself. Students labor for an entire semester or longer, and by the end of it, they've done little more than write programs that sort sets of numbers, plot simple graphs, or ask the user questions. It's hard for young students to see the purpose of these kinds of exercises, particularly when there is already plenty of software available to accomplish the same tasks, with no programming required.
By the time students reach the college level, they're taught to see programming as a rigorous discipline. They're introduced to the concepts of object orientation, data structures, design patterns, functional programming, code optimization, and compiler design. To graduate with a computer science degree, they'll probably need to slog through a full course of calculus, differential equations, linear algebra, and discrete mathematics. And while this may be all well and good to a goal-oriented undergrad who anticipates a lucrative career maintaining enterprise JavaBeans for Wall Street firms, to a wide-eyed middle school student who is new to programming, the road ahead must look pretty bleak. What is the point of it all?
Unique tools to engage students
According to Repenning, the typical middle schooler's response to a programming lesson is predictable: "I know what is going to happen: The teacher writes a program onto the blackboard, we type it into the computer, and it never works."