Friday, July 18, 2014

This past June, I designed and taught an introductory programming course through Girl Develop It! Ottawa called Learn to Program With Python. It was a two-part course hosted at Shopify and geared toward complete beginners. I wanted to give a solid foundation in four core programming concepts — variables, conditionals, iteration, and functions — using the visual context of Python's turtle module, then reinforce these concepts by building up a simple text adventure game.

You can check out the outline and delve into the detailed contents of the course here.

Overall, I'm pleased with how the two three hour sessions went. Not only did I think that the material was about right for the length of time, it served as a test run for my arts and social science class. I am hoping to use Turtle this fall to get my students to learn the same core programming concepts.

One negative aspect was that we had a mix of experience in attendance. Generally those who weren't beginners would have not benefited from the course as much; I truly wanted to start from the very beginning. Deciding how to pace the course is difficult when some students already know how to program, and just want to learn Python in particular. It is impossible to please everyone. That said, if I prepare myself and the TAs better for this in the future, we should be able to come up with extra challenges and things to try for those with more experience.

The general feedback was positive, and the sense of community both nights was amazing. Alexandra sums it up well! I think our next courses will start to delve into the core Girl Develop It tracks, which will please those with more experience. First we need to figure out what to do about setting ourselves up properly as a foreign Girl Develop It! chapter in Canada. I hope it doesn't take too long because it's clear there is a need for more opportunities to learn to code!

I would like to leave you with a picture one of the more experienced students Carolyn drew during the course. She was actually a star student of mine this past year at Carleton, and came this course for a fun way to learn some Python.

The coolest part is that she showed her daughter this picture as the turtle drew it, and the daughter thought it was like magic. Hopefully Carolyn can turn that excitement and wonder into a desire to learn some programming! :)

Thanks a million to the wonderful TAs who came out to help with this course, and to Kristyn for taking the wonderful photos you see above and in the Meetup event.

How can educators create better mentoring opportunities for young women?

The first answer was a great one: be visible, and be outspoken. Show why this is such an exciting time to be in games.

The experience of some panellists is that no matter how they set up workshops featuring game programming, it's always the boys who sign up. We need to talk to teachers and actively talk to girls, personally inviting them to come. Perhaps girls-only groups are needed (that's what I've been doing in my own outreach!).

One panellist pointed out that she was able to attract girls by featuring stories, music, and animations rather than games and programming directly. The students don't even realize they are programming at first. In another panellist's workshop, attendees would work on e-textiles; in this case, marketing must be done very carefully as both boys and girls hold onto stereotypes they aren't even aware of ("no sewing, circuitry or programming required").

Another challenge is that many still hold onto stereotypes about what it means to be a gamer; supposedly, only uncool gamers take game design classes. At ASU, they are trying to infuse game design into journalism. Foregrounding the subject matter that games are about seems to be a successful way to attract more women.

How can we approach teaching game design in ways that support a diversity of ideas and process?

In a sense, the discussion surrounding this question presented a solution to the previous one.

One of the most interesting ideas was that all art is technical - there are always technologies to learn that you use to be creative. Hence, making games, and all the technology behind that (including programming) could be considered an arts subject. The technical element is simply something you need to learn in order to effectively express yourself.

How might we engage young girls in game design, programming, and technology at earlier ages?

Something to remember: "We can't do it all, and we can't do it all in programs." Nonetheless, it is not difficult to find really good tools to help design programs to engage girls. We can engage kids in actively designing and making things, and in making connections to things they care about.

One greater issue is the poor quality of many games designed for girls. According to panellists, there is nothing in these games to get girls interested in computing and other technical pursuits. The games have a low level of complexity.

We are often trying to get girls interested in game design and computing at the same time. Perhaps, panellists pointed out, we should sometimes keep these types of outreach separate. Learning about technology, for example, doesn't always have to be done through game design. There are many other great opportunities like e-textiles. At the same time, we don't always have to be trying to get girls interested in programming and computer science when we teach them game design.

Remember that each kid is already designer ("I designed my first games during recess"). That's a start. Now let's talk about how games are actually made. In the 1980's, you typed game code from a magazine to be able to play. Everyone understood how programming worked because we had to. Can we make programming not such a special thing?