Women Programming, Just Not In CS

June 16, 2009 at 9:39 pm 3 comments

I gave a talk last week where I was attacked for asking students to program in my Media Computation classes.  “Women don’t want to program.  That will drive them away!”  Is it the activity of programming that leads to our lack of diversity, or something else?

My student, Brian Dorn, is studying end-user programmers.  These are professionals who are not software developers, but who do write programs.  In his studies, these are JavaScript (or ActionScript) users who program for Web pages or for Photoshop.  He just completed a round of interviews with his target population.  Biggest surprise?  Lots of members of minority groups, and lots of women.

I don’t want to steal any of Brian’s thunder and report his results early.  I’m not going to get into where Brian got his interviewees and if it was really a valid sample.  I want to raise the possibility: What if that result generalizes?

We know that there are too few women and minorities amongst professional software developers or undergraduates studying computing.  Almost nobody knows much about professionals from other fields who develop software for their own purposes.  The estimates that have been attempted suggest that there are many, many more end-user programmers than professional software developers.  What if that community reflects  the demographics of our overall population?  What if it’s half female and appropriately diverse?

That would suggest that we’re lacking women in our computer science classes and in the field because of perceptions of the classes and the field (whether or not they’re true), not because of the activity.  That’s a radical idea which suggests some very different strategies for those of us working to broaden participation in computing.  It could be that programming really is seen as fun and beautiful, but it’s how we do our classes and the conditions of software development jobs that are at fault for the lack of diversity.  That would be important to know, because it might be easier to change our classes than it is to change the activity within the field.

Entry filed under: Uncategorized. Tags: , , .

The Responsibility of APCS for the Decline of Enrollment in Undergraduate Computer Science Nudging Computing Education

3 Comments Add your own

  • 1. Mark Miller  |  June 17, 2009 at 6:42 am

    What you’re seeing with the “end user” programmers is that they start with an environment that they’re already getting some use out of, and are extending it with their own capabilities. It’s rather like what the late Randy Pausch and Richard Stallman have talked about, which is “learning programming while doing something else”.

    You’ve wondered before about “do students learn differently now?”, and I’ve given this some thought in the context of your post. In my generation we used to be satisfied with having a computer with a minimal OS and a programming language that we learned and used to build things with. We were forced to learn some low level computing concepts before we could get anything done, because almost every computer was like this.

    Seeing as how the current generation is immersed in digital technology by the time they get to you: the web, MP3/video players, cell phones, and console video game systems–socializing through most of them–the thought that’s occurring to me is perhaps the old model (I don’t mean to consign it to irrelevance by saying this) feels disempowering to freshmen. You’ve talked before about how many students have already played 3D video games in developed worlds. To go from that to “let’s write a loop” might not only feel irrelevant, but also give the impression that you’re dealing with primitive “stone age” tools when in comparison modern artifacts with advanced engineering in them have already been experienced in common use.

    My sense is there is a huge gap between the capabilities of the development tools we have available and the sense of computing’s possibilities that young people intuitively get from using what’s out there. The end user programming you speak of hints at an ideal environment, though I think there’s a point where people hit a wall with them, either in terms of how much power they can leverage from the programming environment, or how far they can explore into the development environment and extend it. Both of these limitations stunt their understanding of what computing is.

    I’m riffing off of one of Alan Kay’s ideas here. Imagine a video game that young people could get excited about, but which allows them to open a “portal” into it that allows them complete access to the gaming elements, AI, and its engine while the game is running, in a language that’s relatively easy to learn (in terms of architecture), using terms that a beginner could relate to (in an abstraction layer above the real code that does the work). They could make changes and see those changes appear instantly. That’s just one example. This gets back to an idea I talked about earlier of starting with artifacts that students are familiar with, and then “pulling back the curtain” layer by layer to get to know more about what makes it tick, experimenting with it, learning CS concepts along the way.

    What I imagine today’s students don’t appreciate is how much time and effort had to go into developing the technologies they now enjoy. What also makes things difficult is the source is not openly available to most of these technologies. Even if it was it would likely be too difficult for a beginner to understand.

    I heard a few months ago that MIT has decided to take an approach similar to what I outlined above (but in robotics) for incoming freshmen: an exploratory approach. It’s not as nice as what I’ve outlined above, but it’s in a similar vein. I’m wary of the approach, because CS is not just about exploring and tinkering (though these aren’t bad skills). It’s also about making your own artifacts using computing principles.

    There was a kind of “learn it” culture in my generation. We tended to take the computers we got as they were, assuming what we saw were their capabilities. And so we saw one essential step as learning those capabilities and how to use them to get the machine to do what we wanted. Sometimes we performed “gymnastics” to accomplish this (jumping through hoops, “making the right incantations”, etc.), rather than changing the development environment so it made more sense for the goal. There’s a danger if there’s too much emphasis on exploration that students could fall into that same sort of culture, rather than gaining a sense of self-sufficiency that will help them posses the power of this new medium.

    • 2. Mark Guzdial  |  June 17, 2009 at 9:37 am

      Brian will be publishing his results, so I don\’t want to comment more on those. What he told me meshes with your point, Mark. The people that he interviewed programmed to get something done. I\’ve heard some presentations about the new MIT approach, and it sounds similar to the IPRE approach but with more emphasis on hardware and really high-end, expensive robots.

  • 3. Sarah  |  April 2, 2011 at 10:03 am

    Even women in computer science majors tend to gravitate toward design, web design, and human-computer interaction, NLP, or plan to go into finance. The more “hard” subfields – systems, robotics – of CS have even less women than overall statistics would suggest. This study just quantifies what most computer science majors already know – women are more likely to do these “look and feel” kind of things instead of the back-end. As a back-end kind of girl, at least in my course selection and internship search, recruiting more women into web design/etc. does not improve the ratio of women in my courses/career path. It would be interesting to see what subfields of CS are most/least dominated by men.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackback this post  |  Subscribe to the comments via RSS Feed

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 9,005 other followers


Recent Posts

Blog Stats

  • 1,879,144 hits
June 2009

CS Teaching Tips

%d bloggers like this: