BLOG@CACM
Education

If You Want High School CS, Require ­Undergraduate CS

Posted
Georgia Institute of Technology Professor Mark Guzdial

There are several efforts to push more and higher-quality computer science education into secondary schools in the United States, and for good reason.  The Computing in the Core effort that ACM heads up tries to get computer science included in the new Governors' Core Standards. There is another effort (that I am part of, as a Commissioner) to create a new, more accessible, less programming-centric course leading to an Advanced Placement exam called CS:Principles.

There are lots of good reasons for these efforts. 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 attracts attention, 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.

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.  How do we get teachers and school administrators to want computer science?  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"?

The first Calculus textbook for undergraduate education was published in 1904.  Calculus became pretty much universal in undergraduate education by the 1940's, and required for most of sciences and engineering in the 1950's.  High schools started pushing Calculus in the 1950's and 1960's, in order to better prepare their students for undergraduate.  The top high schools started first, to advance their best students, much as Calculus II is appearing in more high schools today.  By the time of Sputnik and New Math, Calculus was considered a necessary part of high school mathematics. There was a huge push to teach teachers how to teach Calculus — the College Board did it (to support its AP test), as did the National Council of Teachers of Mathematics (NCTM), and today, the MAA is involved too. Across the board, there was a push to teach the teachers — but they were asking for it. They wanted their kids to go into undergraduate with that kind of preparation.

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 we don't require computer science of all undergraduate students, we should require it for admission–but we will have to be prepared to offer remedial classes, since so few states require high schools to offer good undergraduate-level computer science.  

If you think that the undergraduate curriculum is over-full of required courses, you haven't looked at high schools lately.  If we are going to get computer science in there, it has to be squeezed in, and something else has to go.  How do you make that argument to the high schools, that computer science is that important?  How about first trying on your colleagues in the colleges and universities?  If you can't convince them, you'll never convince the high schools.  If computer science is important enough for high school students, it's important enough for undergraduate students. 

Could we do it?  Could we teach computer science to everyone in a way that engages them?  It would require a big change in how we teach and in how we think about teaching.  I blogged recently on an effort to improve college Chemistry teaching, where they have had over a thousand Chemistry professors participate.  Could we get that kind of response from CS professors?  We'd have to have that kind of dedication to teaching, if we're going to teach everyone CS in a way that doesn't make them all hate it.

We want high school 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 slow — it's taken decades for Calculus to infiltrate high schools to the level that it has.  But it's less expensive than a top-down effort and makes change happen pervasively. If we convince our colleges and universities, the high schools will likely follow. We can follow the Calculus lead.

Join the Discussion (0)

Become a Member or Sign In to Post a Comment

The Latest from CACM

Shape the Future of Computing

ACM encourages its members to take a direct hand in shaping the future of the association. There are more ways than ever to get involved.

Get Involved

Communications of the ACM (CACM) is now a fully Open Access publication.

By opening CACM to the world, we hope to increase engagement among the broader computer science community and encourage non-members to discover the rich resources ACM has to offer.

Learn More