This is something I've been wanting to write about for a long time, especially as the issues have become more apparent to me through my experiences as a CS undergrad. I could really write a long diatribe on this, so I'm going to break it up into parts, which will (hopefully) address a specific concern. Part 2 will probably come after a few other posts, and I plan on spacing them all out like this so my writing doesn't become a total drag and alienate everyone who isn't interested in or bothered by this.
There are both social and technical issues with computer science, but I'm really more interested in the social issues because I think they have created the technical problems and might alleviate them once the social problems are fixed. I'll spend some time on the technical issues later, but expect this to mostly be about the culture of computer science. Also, pedants will be bugged by the fact that I'm calling this "Computer Science is Fucked" because I'm mostly dealing with software engineering issues, but computer science education fits into all this and these fields exist in symbiosis anyways, so deal with the terminology.
The gender gap in computer science has long been a known issue, and one that has greater acknowledgment in academia. The gender gap has long been thought to exist in many sciences, but the erosion of diversity within computer science appears to be the most serious. According to the New York Times, when all technical fields are accounted for, women enrollment in these programs has shown gains from 39% to to 51% 1. Yet despite increasing awareness of the issue, women enrollment in computer science is only getting worse.
The same New York Times article points out that despite the fact that management computer systems degrees in the mid-1980's were roughly made up of 40% women, in 2001-2002 only 28% of computer science students were women, and in 2008 many computer science schools reported that women made up less than 10% of new students.1
I think some historical context is necessary here to drive home how badly this situation has deteriorated. Many people consider the first computer ever built to be Charles Babbage's Analytical Engine, built in 1837. The Analytical Engine was basically a large machine that could do basic integer arithmetic by feeding it punch card commands. The programmer for the Analytical Engine, and by extension the very first programmer, was a woman named Ada Lovelace.
That's right, computer science has gone from a field co-founded by women, to Lambda Lambda Lambda.
So how in the fuck did this happen, and why hasn't the trend reversed if schools are so concerned about it?
Jane Margolis, a social scientist, researcher, and all around awesome person (huh, wonder why she doesn't have a wikipedia page or ACM award to acknowledge how important her work is) wrote a book in 2002 titled Unlocking the Clubhouse: Women in Computing, which is currently at the top of my summer reading list.
In a CNET interview with Jane, she talked about what she thinks could have caused this:
"
Q: What did you discover in your research at Carnegie Mellon University?
A: One of the major findings was that women come to the field of computing at a different pacing and with different forms of attachment. Unfortunately, the field--the expectations in the field, the culture of the field, the curriculum in the field--is very much oriented toward the appetites and the learning styles of a narrow slice of males.
When we asked students to tell us why they decided to major in computer science, women would say, "I want to be in computing to work in environmental pollution. I want to be in computing to explore space. I want to be in computing for biogenetics."
"2
At the University of Maryland, College Park where I study computer science, they have tried to address this by creating an AWC, or the Association for Women in Computing, chapter. The club functions to encourage women to enter computer science and offers a mentoring system to get women through classes saturated with men. This, I think, is a really important thing and will go a long way towards encouraging women to get CS degrees at UMD.
But it isn't enough. The real issue here, and the one that Jane totally nails, is that computer science has a HUGE issue with cultural insularity. Computer science is something fundamentally interdisciplinary and something that should be concerned with humanity and social issues. Computer Science education, however, is almost totally concerned with technical feats and challenges, and generalizing problems so the original intent is irrelevant. This is such a big issue that I'm going to save the topic for the next part of this rant.
Another issue that she doesn't address in that interview, is that major figures in computer science seem to be incredulous or oblivious to the problem at all. Richard Stallman, a free software advocate who, when he isn't eating shit off the bottom of his foot or insulting audience members (earlier in the same video), is considered an important figure in computer science, having developed emacs and started the GNU Project. Yet Stallman is shockingly oblivious to how scary and fucked up men can make computer science for women, as this blog illustrates:
"The nadir for me was Richard's explanation of "EMACS virgins" as "women who had not been introduced to EMACS" along with the advice that "relieving them of their virginity" was some sort of sacred duty for members of "The Church of EMACS"."3
Sorry Stallman, you're not encouraging women to get excited about programming or using your software by evangelizing that they need to get raped by the "Church of Emacs".
Once again, I think Jane Margolis really gets this issue, and I'm hoping that CS departments will start listening to her advice. I'll leave you with this, which I'll probably talk a lot more about next time:
"
Your research has had an impact on the computer science department of Carnegie Mellon, raising women's enrollment in the program from 7 percent in 1995 to 42 percent in 2000. How? What can be done to get more women involved in the field?
If women come to computing with a different motivation--which is they're very interested in linking computing to other arenas and social contexts--then that has implications for how programming is taught and the type of examples used. The whole way programming is taught could be in an interdisciplinary fashion with teams of people from other departments that would reflect what happens in the real world.
What happened at Carnegie Mellon is that there was an accounting for this different motivation. There's been an attempt to teach computing in a more interdisciplinary way. Also, the university accounted for the different levels of experience--one of our findings being that women came in with different levels of experience, but there was no difference in ability.
A new set of courses was introduced in the first year, allowing everyone to self-select where they wanted to be according to their experience, and then everyone would be at a similar level by the second year. That means you wouldn't have students with little experience sitting next to someone that's been hacking their whole life and then get really discouraged.
"
2
1.http://www.nytimes.com/2008/11/16/business/16digi.html
2.http://news.cnet.com/2008-1082-833090.html
3.http://opensourcetogo.blogspot.com/2009/07/good-gcds-beginning-with-significant.html