What is the CS Education ask?
In this context, “ask” is a bizlingo noun meaning “request” or “proposed terms”. So an alternative title for this post could be, “What the hell do we actually want people to do?” The latest issue of ACM Inroads has an entire section devoted to CS Principles and the CS10K Initiative — or, as I like to call it, the most ambitious educational reform project without a web site.
I say that because if you’re actually putting together a “large-scale, collaborative project bringing together stakeholders from wide-ranging constituencies”, you don’t bury all the information about it behind a paywall. I happen to be teaching at UC Berkeley this summer, but otherwise I wouldn’t even have access to the paper that describes the CS10K project. And I think I’m the kind of person that might be able to help. I actually teach high school computer science! I want more colleagues! I believe CS education is vitally important for young people! The fact that the first result for “cs10k” in Google takes you nowhere is a problem. The lack of open, public discussion of the issues and plans is a problem. The lack of savvy about engaging the whole community — including high school teachers and administrators — is a problem.
But dire as it is, that’s not the biggest problem. The biggest problem is that we don’t agree on what we’re asking for. It’s not that we disagree. We just have no idea. But at least the goal has been made clear, even if not effectively publicized: A new AP course in 10,000 high schools by 2015. (Or maybe 2016 or 2017, I now hear.) In 2011, there were only 2,667 high schools in the world with students taking the AP Computer Science A exam. Today, I think there are about 2,100 high schools authorized to offer the course in the US (not that all of them actually do). There are about 40k total public and private high schools in the US.
So this is a massive operation, to move from something like 6% to around 25% of schools offering a CS course. We’re talking about bringing at least 7,500 new schools online — schools that have never had a computer science course. I’m assuming that the number of schools offering a legitimate non-AP computer science curriculum rounds to approximately zero. There may be a handful of amazing exceptions, but it’s a handful and this is a numbers game.
So what specific policy changes will help us get there? We can’t just wish for a unicorn. We have to be able to at least theorize a mechanism that delivers a unicorn. And that’s a lot harder to do. So is it simply a matter of offering an attractive, accessible, engaging curriculum along with professional development? I suspect that this alone, although wonderful, will not do it.
Even initiatives such as Computing in the Core, which acknowledges the complexity of the issues around graduation requirements and teacher certification, limits its advice to governments to broad general statements like, “Ensure that courses count toward a student’s core graduation requirements either as mathematics, science or computer science credits.” That’s getting to the unicorn by saying, “Make sure you like unicorns.” It doesn’t tell us anything about how to make it happen. There’s a whole world of difference between counting the course as math or counting it as its own subject.
Given the very decentralized nature of educational policymaking in the US, the best advice anyone has yet come up with is essentially, “Figure out what makes sense in your state/district/school and then try for it.” At least that’s what I read in Chris Stephenson and Cameron Wilson’s latest article, Reforming K-12 computer science education… what will your story be?. Again, sorry you can’t read it without a journal subscription. I hope this represents ivory tower obliviousness rather than the belief that anyone who isn’t an ACM member wouldn’t be a useful partner. But even if all current high school computer science teachers could and did somehow read the article, that’s still not nearly enough involvement for the non-plan to succeed. We need thousands of schools to act, but we’re not telling anyone at all what to do in any specific way. The little conversation we are having is taking place behind closed doors.
At the 2012 Berkeley CS4HS meeting last week, we tried to dig into some of the specifics. Pierre Bierre (of AlgoGeom, one of the few CS courses that has achieved (c) Mathematics status) asked us to consider what we’d like to work towards. These are the options that we discussed and the points raised for and against each:
Make CS a high school graduation requirement
Many in the room agreed that CS is as relevant as Biology or Algebra in terms of understanding how the world around us works and providing a model for thinking. However, it’s also a reality that teachers of required-for-graduation courses are under a lot of pressure to simply pass students. Many school districts now require three years of math for graduation in order to match the UC a-g requirements, and this has lead to the rise of all sorts of bogus courses that exist only to produce math credits. This reminds us that setting a bar often incentivizes the lowering of that bar to the point of meaninglessness. Which isn’t a reason not to try. But the question is: What would CS replace? If the answer is “any elective” then it will be a tough fight — a true CS course is probably harder for most students than most electives. But if the answer is “some current element of the core curriculum” then we’re fighting an even harder battle. There’s some indication that California’s Commission on Teacher Credentialing might be ready to test an experimental credential for CS. I don’t know much about that but I support the idea and would like to know if anyone is actively working on it.
Get a CS course recognized as a core curriculum (math or science) course
This is really about UC recognition — local district recognition means little if the student can’t use the credit to apply to a UC. So getting a CS course into the (c) Mathematics section is something that many teachers have tried and, when the focus of the course is on programming, it’s something that has been resisted strongly by the UC Office of the President. There’s also reluctance on the part of many, including outspoken disagreement from Brian Harvey, to creating a situation where students choose between Calculus and Computer Science. CS really isn’t math or science. Dan Garcia (sharing a sentiment I’ve also heard from Owen Astrachan) asserted that it’s engineering. So perhaps we should be looking for a broader kind of new graduation or admission requirement. But I don’t know of any other engineering area (mechanical? chemical? civil?) that’s ready to push curriculum to the high school level, and this would only compound the certification/credentialing problems.
Use AB 1330 to make space for new CS courses
This bill that allows CTE courses to substitute for language or arts courses a California-only strategy for now. The legislation was strongly opposed by arts and foreign language teachers who see it as a threat to their jobs and it’s a long battle to fight that state-by-state to get a change that we’re ambivalent about exploiting. There are mixed feelings in general about the CS being filed with Career Technical Education, partly because the perception is that such courses in general lack academic rigor. In CS this plays out as “applications” courses that teach the use of tools like Microsoft Word and PowerPoint — no one really believes these are “career” skills but more of these courses exist than you’d hope. A real career-oriented CS course might look more like CNC Machining. Or the ECS curriculum could be used to create a true CS CTE course. Still, no one feels great about pushing high schools to close arts or language courses even in favor of a true CS course. Most significantly though, AB 1330 does nothing to change the UC a-g requirements, which means that CS is still effectively relegated to its current elective slot for many students.
Push CS content into other required subjects
There’s a genuine belief that CS is an important and useful lens through which the study of other subjects (particularly the sciences, but also math as in the case of AlgoGeom) might be enhanced. On the other hand, someone asked how we might feel if the biologists showed up in our CS classes and demanded that we teach some bio while we’re doing what we’re doing — considering, you know, that biology is an important application of CS. So there are limits to how much computer science will really fit inside other subjects. I think there’s an opportunity here to do something (which the UCCI Institue is trying for this summer) but I don’t see where the urgency is going to come from that will suddenly start moving this into thousands of schools a year. Lots of “curriculum development” work is sitting on shelves in binders.
Add a UC admission requirement (turn the “a-g” list into an “a-h” list)
I believe the current list is frozen for a year, but when it thaws again we are in the same position as other young fields (academic subjects less than 100 years old) in desiring recognition. If the UC system phased in a requirement like this, it would certainly drive the creation of these courses in many high schools. While this is the most obvious and powerful lever, it is also therefore one that every educator and administrator in the state will be nervous about. I can imagine that some districts/schools wouldn’t be able to put a program in place, even if given a long runway. This would be a huge deal — but with so many districts committed to making their graduation requirements match “a-g” it’s the only option discussed so far that seems to me like it can really move the needle. This option is reported to be very unlikely, but it’s the one that would most clearly have an immediate impact. And even if this happened today, it would be at least 2016 before it could be phased in. Something on this scale has to appear pretty soon or else CS10K is a bust.
Add a UC admission recommendation (an “h” category with 0 required/1 recommended)
Get a UC admissions officer to state that CS is seen favorably in the admissions process
These seem to me like next-best options, but Tom Murphy from Contra Costa College raised a very important point: This could be a social justice disaster. Creating something “optional” or “encouraged” — knowing that parent involvement and district resources are wildly divergent — is a good way to increase the achievement gap. This reminds me of Justin Reich’s work (How Free and Open Education Might Widen Digital Divides). This is something that I’m sure UC officials would have to consider when discussing possible changes.
So it appears that we are in a very difficult position. None of the players in the industry who could throw their weight around (the Apple/Google/Microsoft/Oracle kind of players) legislatively really need anything to change. They can always skim from the top people around the world. The demand will drive enrollment at the top-tier brand-name schools they tend to hire from. It’s really the startups and smaller companies trying to hire proficient programmers who suffer. There doesn’t seem to be the political will to change, even though almost anyone you ask on the street will say that they believe computers and programming are important in our world, that learning about them will help in almost any career, and that it’s crazy for high schools not to teach this stuff. So where do we go from here?
Now Noah was there, he answered the callin’
and he finished up the ark just as the rain was fallin’.
He marched in the animals two by two,
and he called out as they went through,
‘Hey Lord, I got your two alligators and your couple of geese,
your humpy bumpy camels and your chimpanzees.
Got your catsandratsandelephants – but Lord, I’m so forlorn
’cause I just don’t see no Unicorn.’
from The Unicorn by Shel Silverstein