Getting high-quality computer science education into high school would likely smooth out undergraduate enrollment. Rather than the spikes that we get when a new computational technology makes waves, and the lulls when students realize that they don’t know what computer science is, we would have better-informed students. Getting computer science into all high schools would mean that a more diverse population would get to try out computer science, and may discover that they like it. But how do we get good computer science education into high schools? Maybe we take a lesson from Calculus. In 2010, 245,867 students took the AP Calculus AB test (to contrast with 20,210 AP CS Level A test takers.) That’s evidence that there is a lot of calculus in high schools. How did that happen? Was there a drive to push calculus into all state’s curricula? (I don’t remember ever hearing about “Calculus in the Core”? Was there a national effort to convert existing math teachers into Calculus teachers? Did the Colleges tell the high schools, “We need students who are calculus-literate”?
Here’s my take on how it happened, based on what histories I can find and the growth of Calculus II in high schools. Colleges and universities taught Calculus to undergraduates. The best high schools decided that they would start to teach Calculus, to better prepare their high-achieving students (back in the 1960′s). More colleges and more universities started requiring or expecting calculus. More and more high schools tried to raise their prestige by preparing students to teach calculus. Several organizations (College Board, NCTM, MAA) and universities today train teachers to teach calculus, because those teachers and their schools want it. If we want high schools to teach computer science to college-bound students, colleges and universities must require computer science of all their students. If not require computer science of all undergraduate students, require it for admission–but be prepared to offer remedial classes, since so few high schools do offer good undergraduate-level computer science. If computer science is important enough for high school students, it’s important enough for undergraduate students.
Efforts like Computing in the Core and the new AP CS:Principles are great ideas, and I hope that they succeed, but they are top-down efforts. A stronger effect comes bottom-up. We want teachers and administrators to say, “My local college requires CS for everyone. I want my students to be well-prepared for college by already knowing CS when they get in the door!” The bottom-up effort is slower — it’s taken decades for calculus to infiltrate high schools to the level that it has. But it’s less expensive and makes change happen pervasively. If we can’t convince our peers in the colleges and universities that computer science is important, how are we going to convince the high schools? And if we convince our colleges and universities, the high schools will likely follow. We can follow the Calculus lead.