This post was imported from my old Drupal blog. To see the full thing, including comments, it's best to visit the Internet Archive.

I recently filled in a questionnaire that asked about the use of robots in teaching programming. (You can win a robot!) Some of the questions seemed to be particularly about attracting women into the field; I guess the thinking is that programming something that does something in the real world is more engaging (particularly for women?) than doing artificial exercises in linked list manipulation. Or something.

I like programming robots as much as the next geek, and am the proud owner of two regular Lego Mindstorms kits as well as a less complex, but more evil, Dark Side Developers Kit. Thinking around this, it struck me that there are two classes of projects you can do with robots:

  • a directive program, where you tell the robot exactly what to do (go forward for 5 seconds, turn, forward for 2 seconds etc.)
  • a facilitative program, where you define the feedback between sensors and motors, then just let the robot go

It’s a bit of a stretch, but these two classes of projects seem like they might be associated with masculine and feminine approaches to dealing with children. There was a great Child of Our Time episode a couple of years ago where parents helped their children draw a house on an Etch A Sketch. The fathers basically took over the controls – “turn yours… keep going… stop” – whereas the mothers let the child do it while uttering general words of encouragement. Both approaches are absolutely necessary for a child to learn how to do it on their own: they can’t know what to do unless they’re told, and they can’t learn to do it themselves unless they’re given space to try.

So I wonder whether programming in a directive way is more attractive to masculine people and programming in a facilitative way is more attractive to feminine people. Of course it’s kind of hard to simply encourage a computer to do something, but I certainly find it more engaging to see how little I need to tell a robot to do in order to get interesting behaviour. My favourite robot projects were creating ones that would locate and hide in the darkest part of a room (through a combination of random and goal-oriented movement), and setting up two kits to “sing” with each other (each responding to the others’ song in a feedback loop). In other words, simple programs that elicit complex behaviour simply by being used in a complex environment. (XSLT programming can be like this as well: the art of creating complex XSL-FO/HTML from complex XML with as little intervention as possible.)

Actually, I don’t think that simply programming robots would be any more attractive to women than other kinds of programming. What matters, I think, is whether there’s a real task to achieve. So getting a robot to do something useful, like vacuuming or tidying away toys, would be attractive. But equally so would designing a diary application, or a community website. Programming in the abstract isn’t exciting, but being able to do something with a program is. (And surely it can’t just be women who feel like that?)