Last week’s New York Times article reporting efforts to bring more women to computer science by downplaying programming had a deservedly harsh reception from working programmers.

I am not happy that women are underrepresented in software programming. The absence of talented women who would otherwise speed software progress (a logical certainty) is not good for the field, nor is it good for those women who aren’t making the most of their talents. In summing up the problem, Cornelia Dean’s opening paragraph hits the right points:

For decades, undergraduate women have been moving in ever greater numbers into science and engineering departments at American universities. Yet even as they approach or exceed enrollment parity in mathematics, biology and other fields, there is one area in which their presence relative to men is static or even shrinking: computer science.

This is a solid jumping off point, but Dean quickly fell in with the wrong crowd in researching the story.

Trying to pry CS from our cold, typing hands

As far as I can tell, software programming is the most important technology in the world: no other does more to improve and expand our civilization. It is deep, mind-stretching work (software that matters, anyway) and becoming proficient in it requires time and effort. It stands to reason not only that programming should have its own field of study, but that it should dominate that field of study. Advancing software programming, through programming itself and computational theory that lends to programming, is and must be the purpose of computer science.

Yet there is resistance to this workaday, civilation-enhancing idea. As I heard many times in my study of it, computer science is a young field, too young for anyone to authoritatively say what exactly it is. Wikipedia’s article on CS is typically convoluted, throwing in the famous Dijkstra quote, “Computer science is no more about computers than astronomy is about telescopes.” It is a truism: the principles of programming exist outside the physical world of computers. But whatever Dijkstra’s point was, it is not in conflict with computer science as a discipline ultimately concerned with software programming. Even astronomy has a purpose, that of expanding human knowledge beyond Earth’s atmosphere, and there’s no shame in it.

Many academics have exploited the uncertainty of computer science’s boundaries, and the cultural mantra of inclusiveness, to encompass in the field any contribution to computing. The effort seems harmless on its own, and as a student I once intended to specialize in the HCI sub-field (because I do care about software interfaces). But after two classes, I realized it was just an easy, boring sideshow within CS.

Not that there shouldn’t be collegiate study of human interaction with computers. It’s a terribly important question for society—it just doesn’t belong in computer science, programming’s only academic home. Being there, it has stagnated as a holding pen for students and faculty who want to be “computer scientists” but are not capable programmers. This travesty is as insulting to the study of interaction design (its own vigorous, competitive, and productive sub-discipline of design) as it is to computer science.

The easy-bake oven

In looking for the missing women in computer technology, our intrepid reporter drifted into the backwater of computer science that is not about programming. Many of us graduates had forgotten that nonsense existed, but its practitioners are still collecting paychecks, brandishing Ph.D.s, and claiming that high school girls avoid computer science because they erroneously “think of it as programming.” Reading their quotes is like hearing your alcoholic uncle speak for the family on the TV news.

“The nerd factor is huge,” Dr. Cuny said. …high school girls think of computer scientists they think of geeks, pocket protectors, isolated cubicles and a lifetime of staring into a screen writing computer code.

Cubicles are a hallmark of corporations, not programming; the programmer is not even the most common species to be found therein. Those entering CS for a corporate meal ticket mostly flunk out freshman year; the rest deserve their cubicles. And, please: all people spend a lifetime staring into screens in our era, and they should be proud if theirs is more often a computer than a brain-sapping television. At least, if they want to be computer scientists!

The Advanced Placement high school course in computer science may be part of the problem, according to Dr. Cuny. “The AP computer course is a disaster,” she said. “It teaches Java programming, which is very appealing to a lot of people, but not to others. It doesn’t teach what you can do with computers.” She and others think the course needs to be redesigned.

There is no such a thing as a national “course” in U.S. public high schools, but advanced placement tests are standardized nationally, and teachers are given course outlines. Personally, I found the whole idea of AP tedious and stifling, so I took English and Biology courses at a local college instead.

Passing the computer science AP test acts as a substitution for the first programming course that CS freshmen take, which is a horrible idea in its own right. It would actually be a good thing for the AP board to take Cuny’s advice and water down their CS test, making it more obviously unacceptable for its misguided purpose. Let it substitute instead for that Intro to CS yawn-fest.

Moving emphasis away from programming proficiency was a key to the success of programs Dr. Blum and her colleagues at Carnegie Mellon instituted to draw more women into computer science. At one time, she said, admission to the program depended on high overall achievement and programming experience. The criteria now, she said, are high overall achievement and broad interests, diverse perspectives and whether applicants seem to have potential to be future leaders.

How incredibly self-destructive. I used to think that Carnegie Mellon was the best computer science school in the U.S. (they rejected my application) but it looks like they’re eager to throw that reputation away in a cheap bid to meet gender quotas.

Speaking of Barbie, this reddit thread points out cultural influences that may discourage girls from programming.

Expanding the non-programming ghettos of computer science and promoting them as a way to interest and accommodate girls is a spectacularly poor attack on the problem. It is throwing out the baby, the bathwater, the tub, and yourself too. It is idiotic. It is the most insulting thing to girls since the “math is hard” Barbie. Girls could learn more computer science in home economics than in a “wonders of computing” class because there at least they might get to program a new stitch into an the electronic sewing machine.

If anyone is really interested in getting more girls (and boys) into computer science, the answer is to teach it earlier in school. It doesn’t have to be “Java programming,” but it does need to be programming. Start them off in the interpreter of a scripting language like Python and show the kids how easy it is to create something. Because that is what programming is all about: making things. Move on to pygame and animate some sprites. If students are to be taught Java, start with the hands-on, graphical Processing environment and make interactive art for art class.

There is no reason to be defensive, to pretend that computer science is not programming or isn’t “nerdy.” There is no shame in being able to write computer software. Being a nerd is actually pretty cool in this century. Perhaps Cornelia Dean doesn’t spend much time below Houston Street: we nerds are running this place! Everyone has ideas for computers and the internet, but we’re the ones that can see our own ideas through.

Shame on these no-talent hacks for telling girls that the only kind of computer scientists they can be are non-programming airbags—the world’s first programmer managed just fine as a woman.