Computing Applications BLOG@CACM

Why the U.S. Is Not Ready For Mandatory CS Education

The Communications Web site,, features more than a dozen bloggers in the BLOG@CACM community. In each issue of Communications, we'll publish selected posts or excerpts.

Follow us on Twitter at

Mark Guzdial considers the consequences of requiring all schoolchildren to study computer science.
  1. The Danger of Requiring Computer Science in K–12 Schools
  3. Author
Mark Guzdial
Georgia Institute of Technology professor Mark Guzdial
April 15, 2014 has changed how people think about computer science in schools in the United States. Their successful video ( and Hour of Code event in December ( have attracted enormous attention. There are more calls for computer science in schools, and more states are making computer science count toward high school graduation ( (including some odd efforts to make computer science count for foreign language credit—

Some are now calling for computer science to be a required subject for U.S. schoolchildren. Lawmakers in California are considering Bill AB 1530 (, which would add CS to the required course of study for grades 1 to 6 (for students roughly six to 12 years old). quoted Ashley Gavin, the curriculum director at Girls Who Code (, as insisting that computer science be mandatory in schools. "You make it an option, the girl is not going to take it. You have to make it mandatory and start it at a young age."

We are not ready to make computer science a requirement for all children in the United States—even if that is where we might want to be one day. We do not know how to do it, and if we simply made it a mandate today, we would not achieve our goals.

I have written before ( about how far behind other STEM subjects we are in computer science. In the U.S., maybe one high school in 10 has a computer science teacher. Far fewer schools serving grades 1–6 have CS teachers. If we mandated computer science tomorrow, where would we get the teachers? Who would teach CS to so many teachers?

And what would they teach? I recently spoke with Roy Pea at Stanford ( about the California legislation. Roy was one of the first to study how children learned to program ( He said that when schools first started creating programming classes in the 1980s, teachers often did not know much about programming themselves. So, they tested students on what they could test. One of Roy's examples was, "what are the dimensions of a 5.25-inch floppy disk?"

Here in Georgia, we were one of the first states to use the CSTA Model K–12 Curriculum ( to design a computer science set of courses ("pathway") in high school. The initial course was "Computing in the Modern World" ( However, soon after adoption (2007), the professional development budget was cut dramatically. Too few teachers learned to teach the new courses. As the curriculum were revised, the learning objectives were lowered. Most of the CS content was removed. The new (2013) initial course is "Introduction to Information Technology" (, and learning objectives now include the skills necessary to run a customer support call center ("Determine the best method to maintain a customer list and communication platform").

While we can argue that computing is important for everyone (, requiring computer science in K–12 schools really means everyone. Tony Dillon in South Carolina's Department of Education worries about the lower-end students. South Carolina already has a requirement that every student must take computer science, but as Roy Pea would predict, the requirement can currently be met with courses in CAD or Photoshop. Tony Dillon is worried about the impact on special education students of raising the CS standard. For these students, a high school degree is a challenge, and if they are successful, the degree helps them get a job. Do we know how to teach CS to students with learning or developmental disabilities? Can we confidently state that, without CS, those students should not earn a high school degree?

I doubt that Ashley Gavin is right. Girls might take CS if it is available. Studies like Stuck in the Shallow End ( show us how female students and members of underrepresented minorities lack access to CS classes. Our first step is to provide access. If computer science counts toward high school graduation, then schools have a reason to offer it. We can improve (in most states, "create") CS teacher certification ( to offer schools a way to identify well-prepared teachers. Will a girl choose to take a high-quality CS class as an option for meeting a math or science requirement? I think so. A single all-girls school in Tennessee sent so many girls to the Advanced Placement (AP) CS exam (, they made Tennessee the top state in the U.S. for female AP CS exam takers. When 90% of schools do not offer CS at all, we cannot know how much will change if we provide access.

The argument for requiring computer science of all higher-education students ( is much stronger. Every campus with a computing department has faculty who know fundamental CS—no professional development needed. Many (if not most) of our undergraduates will likely need knowledge of computing, including some programming (, at some point in their future careers. There is likely a productivity cost of not having that knowledge ( even for today's college-educated workers. If we cannot make the case on our campuses, when the argument is so much stronger, why would we think it is better or easier to push CS on all the K–12 schools in the U.S.?

Back to Top


I dread the introduction of programming into the curriculum in the U.K. One headteacher has already informed me that her staff have received their one-day training in Scratch, and are therefore now qualified to teach the subject. At best, they will be afraid; at worst, they will be deluded. It will all end up like maths class: enjoyed by a lucky few and hated by everyone else. The subject has been distorted, with poor educators hammering pupils for getting the "wrong answer." What can you expect when their own performance targets are riding on exam results?

The answer lies with adults in the real world. Adults have to show a personal interest in learning programming and apply it for fun and profit. If they do not, kids will not see what the point is. It will be another artifice of the school system to them, like high school trigonometry or medieval England. But this is an inconvenient answer, because it means we have to take responsibility for failing kids ourselves, whereas now we have teachers to be our scapegoats.

As a society, we see the education system as a magical way to create better adults than we were. We are like a competitive father who forces his son to play football, because he missed his own chance to join the youth team as a teenager. But does anyone care whether the children are interested? Why should they learn something that we do not seem to value ourselves? I see society-at-large reading and doing arithmetic, but I do not see them programming. For that matter, I do not see the typical adult enjoying a discussion of the cultural consequences of Mughal India, worrying about the problem of favelas in Brazil, piqued by how photosynthesis converts light into energy for a living organism, or any of the other actually incredibly interesting things that I was forced to learn in school at exampoint. The net effect is that the adults do not appear to value these things, but they tell the children to cram it in, lest they end up destitute.

So if there is anywhere that we should introduce a computer science curriculum, it is in our own lives. And if we do not want to do that, well, then, we should shut up about getting kids to learn it.

Justin Megawarne

I think Ashley Gavin is correct. She said that if "you make it an option, the girl is not going to take it." That is, many girls will opt out of a computer science course if you give them the chance. We do not even offer an introductory CS course at Bryn Mawr College for non-majors for this very reason. In fact, if you make CS optional and more widely available, chances are that you would see an even larger disparity between boys and girls in CS than we see now. Unless you want to see a growing disparity when courses become more widely available, the only alternative is to "make it mandatory."

Many women do not discover that they enjoy CS until college. That is too late for many. It makes sense to try to fix this to "start it at a young age."

Yes, we do not have enough teachers. Yes, we do not know how to teach it (or Math, Physics, or Latin either, many would argue). Yes, many students hate and do not appreciate what is already required. But if you restructure what is already taught in K–12, and revise how it is taught, you might find that CS principles fit nicely in many areas.

Douglas Blank

Doug, I think Jill Pala would disagree. She's the AP CS teacher in Tennessee whose 30 female AP CS exam-takers in 2013 gave Tennessee the distinction of having the most females in AP CS in the US ( They were not required to take CS. I am sorry that Bryn Mawr does not offer intro CS to non-majors. You might reconsider. Stanford's course is not required for non-majors, but 90% of all Stanford undergraduates take it (

I totally agree that we need to make CS accessible at a younger age. Making it mandatory will force the majority of schools to invent something they will call "computer science," but it will look like Photoshop or CAD software instruction because that is all they can do without a CS teacher. Let us work first at making it accessible, before we try to require it. We do not even mandate a particular mathematics level for everyone nor any specific science (like physics or chemistry). How can we argue that computer science is more important than all the rest and demands a mandate that the others do not deserve?

Mark Guzdial

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