We started the morning with a general welcome session with the workshop organizer, then headed to the computer labs in two groups (French and English). I had my group of girls "interview" someone they didn't know yet after introducing myself, then had them introduce each other. It was really great to see what a big variety there was in their backgrounds. Some girls came because their older sisters brought them along, others already knew they were interested in programming, and still others came because their parents made them. All of these girls stood to benefit from attending.
As I often do, I began with a discussion of what computer science is really all about, and why women don't tend to go into it. I usually do this with a younger audience, so it was great getting insight from the high school perspective.
The key points that came up were the fact that many girls don't know what computer science is (and how it connects to so many different areas), that it's easily seen as a boy's thing given the current gender imbalance, and that it is intimidating being one of the only girls in a large class.
Interestingly, the discussion focused from there on the quality of high school programming classes. Over the years, I have been asking high school students what they thought of these courses. Anecdotally, it seems that they are often not overly effective, particularly for women. The girls in the workshop wished that the courses weren't just about programming, but rather used programming as a tool to solve more interesting problems that they actually care about.
It also seems that the backgrounds of some programming teachers is not even related to computer science. In one girl's high school, the gym teacher also happened to teach programming; he didn't even bother promoting programming when they had a course fair for students. This means that the quality isn't necessarily the fault of the teachers. There just aren't enough computer scientists willing to teach! But that doesn't mean we can't train others on how to teach CS. In fact, this is something I want to do as time goes on, similar to what Barbara Ericson from Georgia Tech does in her home state.
After our discussion, I had the girls download a finished Processing project. It was a memory game I had created for a previous workshop and then adapted for the undergraduate game dev tutorial I was TA'ing for. I told the girls I wanted them to play with the game, look at the code, and start finding ways to tinker with it. I interrupted them every ten minutes or so and taught them a new programming concept (variables, boolean and if, loops, arrays and lists, methods, and objects). After each concept, I left up a small snippet of code they could independently type in and tinker with to better understand the topic.
This was a new approach for me, but a few smart people had suggested it works pretty well (including Barbara mentioned above, as well as one of the creators of Processing himself!). It supported the idea of just-in-time teaching, where we expected the girls to run into problems so we could help them learn something right when they needed the knowledge.
Did it work? Let's just say a mentor mentioned to me that one girl said she had just learned more about programming in the first hour of the workshop than she had in four months at school. Sounds promising to me!
In the afternoon I had the girls choose a tutorial to work on where they were guided in making a mini-project of their own. Every needed step was described, but not always completely explicitly. Some of the girls struggled with these more than others, so it might be worth making an easier one for those who are less confident.
We still have some data to look at via surveys we gave at the beginning and end of the workshop, but overall I think the day was quite successful. Huge kudos to Nathalie Vallières from the University of Ottawa who organized the entire day, contacting me as a potential instructor months ago. I'm looking forward to this becoming an annual event!
Check out all the workshop material on my website.