April 15, 2014
Code.org has changed how people think about computer science in schools in the United States. Their successful video (http://bit.ly/1hgVB7w) and Hour of Code event in December (http://code.org/hourofcode) 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 (http://code.org/action) (including some odd efforts to make computer science count for foreign language credit—http://bit.ly/1pJ2ocK).
Some are now calling for computer science to be a required subject for U.S. schoolchildren. Lawmakers in California are considering Bill AB 1530 (http://bit.ly/1kzszAP), which would add CS to the required course of study for grades 1 to 6 (for students roughly six to 12 years old). CIO.com quoted Ashley Gavin, the curriculum director at Girls Who Code (http://bit.ly/1jWJ18o), 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 (http://bit.ly/1kF6O1u) 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 (http://bit.ly/1kztbX9) about the California legislation. Roy was one of the first to study how children learned to program (http://stanford.io/1nuacMv). 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 (http://bit.ly/1mXLSAZ) to design a computer science set of courses ("pathway") in high school. The initial course was "Computing in the Modern World" (http://bit.ly/TiSEc2). 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" (http://bit.ly/1tMqNMf), 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 (http://bit.ly/1mg8OtG), 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 (http://bit.ly/1pb7vAbO) 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 (http://bit.ly/1oxV2VZ) 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 (http://bit.ly/1nmrLhH), 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 (http://bit.ly/1nmrLhH) 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 (http://bit.ly/1rPck6y), at some point in their future careers. There is likely a productivity cost of not having that knowledge (http://bit.ly/1nmrPOv) 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.?
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.
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.
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 (http://bit.ly/1hCcAl7). 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 (http://on.mash.to/1rPe1kp).
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?
©2014 ACM 0001-0782/14/08
Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and full citation on the first page. Copyright for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or fee. Request permission to publish from firstname.lastname@example.org or fax (212) 869-0481.
The Digital Library is published by the Association for Computing Machinery. Copyright © 2014 ACM, Inc.
I think I understand what Ashley Gavin is trying to say, but it is not quite the whole picture. If CS courses are simply offered, many underrepresented groups will not choose to take the course. But some do. I am a huge supporter of providing equitable access to CS Education for all students. I think it is necessary for all students to learn the basic principles of Computer Science and programming, regardless of what path they choose to pursue in the future. However, if we rely on students self-selecting in to optional courses or extracurricular programs, we will continue to get the same pool of people gaining exposure and choosing to pursue a CS career. Mark is right though, on a national scale, we aren't ready for a CS Ed mandate.
In my school, I have spent years convincing/inviting/begging girls to try CS. Once we get past the misconceptions, stigmas and stereotypes, some girls do choose to take a course (and usually more than one once they see they like it!). Now that we have built up a little momentum, more girls are choosing to take CS classes without as much effort on my part. This is a great step forward, but it is certainly not the finish line. I still want to reach the other 70% that do not choose to take a CS class, which is why I am now fighting for a CS requirement in my school. Much like the universities, we have the faculty to teach a legitimate introductory course that would give students a solid foundation and the opportunity to know before college that they want to pursue a future in CS. It is an uphill battle, but the reward for the students will be worth it!
Very nice discussion. I'd like to add another aspect - what exactly would be taught? The choice of the language is very important (should the student memorize/regurgitate all of the Classes in Java?), but just as important (maybe more important) is what would be done in the course. Algorithms are of central importance, and that's strongly related to problem solving - which *is* of much broader applicability in real life than coding. How do algorithms and their application affect our lives - I could see using this really good book in the course: Nine Algorithms That Changed the Future: The Ingenious Ideas That Drive Today's Computers - John MacCormick ISBN: 9780691147147 248 pp. Princeton University press http://press.princeton.edu/titles/9528.html
I'm not sure I'd want this course to be taken *instead* of math and/or science - but I think it could have all students (not just one gender) trying to get into it.
What's the catch? One big one is having well qualified teachers - which means knowing more than the dimensions of a floppy disk! :-(
P.S. I do think it should include some coding - and for that I'd suggest a scripting language (e.g. Perl, Python) or even perhaps spreadsheet macros. The major idea I'd want to get across is "The computer does what you tell it to do, not what you want it to do!"
Displaying all 2 comments