Computer science is not widely taught, even though programming may be one of the most important skills of the 21st century. While most schools do recognize the importance of helping students learn how to use new technologies, you'll still find scant opportunities in K-12 classes for students to learn how to actually build those very technologies.
A report issued last year by the Association of Computing Machinery found that very few states offer K-12 computer science education at all. Just nine states allow CS courses to count towards graduation requirements for math or science. And no states require computer science for graduation.
Why the absence of CS courses from elementary and secondary schools? A recent article in Technology Horizons Journal points to a few obstacles to teaching computer science: questions about teacher certification, debates about what a CS curriculum should contain, and concerns about where CS fits into the curriculum and/or the schedule. Is computer science math? Is it science? Does it replace another course?
There are, no doubt, increasing opportunities for kids to learn programming. But these often occur as after-school projects (things like the First Lego League) or as self-directed programs (such as learning to code with online materials like Hackety Hack). While these do attract those students who are interested in programming, they do little to expose the general student population to computer science.
Studies have repeatedly shown that early exposure to science, technology, engineering and math (STEM) subjects is important in convincing students to think about STEM careers. Earlier this year, Microsoft surveyed some 500 college students pursuing STEM degrees, and nearly four out of five of them said they had made the decision to be a STEM major in high school or earlier. One in five said they made the decision in middle school or earlier. These students pointed to the influence of a particular teacher or a particular class as sparking their interest -- notably, almost 70% of girls said this was what made them decide to study STEM (versus just 51% of boys).
But just one in five of these college students said that their K-12 education helped prepare them extremely well for their college courses. While that can be interpreted as a challenge to the state of STEM education broadly, this is particularly true when it comes to computer science. There are plenty of opportunities for students to take biology before stepping into a Biology 101 class in college; there are very few opportunities for students to take programming before stepping into CS 101.
"Program or be programmed," as author Douglas Rushkoff says, noting that we must learn how to be producers not just consumers of computer technology.
But teaching computer science isn't simply about learning to program. It's about computational thinking, logic, reasoning, and problem solving too. These skills are imperative to what K-12 students should be learning. The challenge: finding the support among administrators and teachers to make learning computer science the way in which students gain these skills.