Do you use a computer every day? When something goes wrong, do you know why? Can you make the computer do what you want it to do – without there being an app for that? Ever taken a computer science class? Your answer to the first question is probably “yes,” and the rest get an emphatic “no.”
Most people who write computer programs aren’t professional programmers. Scientists and engineers write programs on a daily basis. But even non-technical professionals rely on deep knowledge of computing. Graphic designers work with many images with multiple layers, and they write programs to automate operations. An estimate out of Carnegie Mellon University says that for every professional software developer in 2012, there will be four people who write programs but aren’t professional software developers.
Here’s the problem with this picture: Few of those non-professional programmers had any computer science (CS) classes. Either the CS classes weren’t there, or they avoided them. Research at Georgia Tech has found that pre-teen Girl Scouts already think computer science is “geeky.” Brian Dorn, an assistant professor at University of Hartford, found that even adult graphic designers think computer science is “boring,” and they avoid classes in computer science.
But, does it really matter, if the adults eventually figure out how to program on the job? The answer is a resounding “yes.” Dorn found that CS ignorance is pretty expensive, particularly for employers. Adult CS learners waste hours looking up information they need, because they don’t know the right search terms. They use trial-and-error to figure out things that are well known.
Fortunately, just about any real computer science course in middle or high school improves students’ attitudes about computer science and gives them computer science background to start from. Unfortunately, the reality is that most classes labeled “computer science” in high school are just classes in how to use computers. That’s not computer science.
The real power of computer science is a new kind of literacy. When we learn to read and write, we gain literacy with words, which changes how we communicate and think. When we learn mathematics, we gain literacy with numbers, which lets us communicate new kinds of things and think in new ways. When we learn to program, we gain yet another way to understand the world and talk about it. Computing allows us to express process, from the way that characters interact in video games, to ways of manipulating and displaying data. Words and numbers just sit there, and we use them. Our programs act, which makes computers work for us.
Advanced Placement computer science (AP CS) classes are real computer science. But for the 24,000 high schools in the United States, there are only 2,000 AP CS teachers. Those teachers cluster in some states more than others. Maryland has more than five times as many AP CS teachers as Alabama, for example.
How do we get more? The National Science Foundation is funding efforts around the country to address this problem. I direct an alliance called “Georgia Computes!,” an effort that teaches high school teachers about computer science. In the last five years, “Georgia Computes!” has taught over 400 teachers about computer science. Yet only about 20 percent of Georgia high schools offer AP CS. It’s hard to reach everywhere.
High school teachers could take existing computer science classes, though full-time teachers would likely need to take distance classes, working in evenings and weekends. However, access isn’t the only challenge. In a “Georgia Computes!” study of adult professionals in computer science classes, we found that they struggle with how computer science is taught – with little help when stuck, using complex tools, and too many hours spent struggling with programs. Computer science classes are designed to produce excellent professional software developers. We don’t need everyone to learn the same tools in the same way as professionals.
The National Science Foundation has funded a new effort at Georgia Tech to help high school teachers learn computer science, at a distance. The program is called CSLearning4U, because it’s about anybody (even you!) learning computer science anywhere, with new kinds of electronic books and materials. While learning CS does include learning to program, it doesn’t have to be about getting stuck with overly complex tools.
As educators, we need to prepare all those people who need to make the computer act for them, even if they will not be professional software developers. To have more CS classes, we need more high school computer science teachers. A challenge for researchers in computing education today is to invent new ways to learn computer science that work for teachers and other non-CS professionals.
Mark Guzdial is a professor in the College of Computing at Georgia Institute of Technology. He is the director of Georgia Computes!, an alliance formed to increase the number and diversity of computing students in Georgia.
All statements and opinions expressed on this blog are those of the individual contributors, and not of the Bill & Melinda Gates Foundation or NBC News.