This entry originally appeared at the OpenHatch.org blog.
My name is Jessica, and I’m an organizer, curriculum developer, and lecturer for the Boston Python Workshop, a free, 1.5 day project-driven introduction to Python for women and their friends. The workshop has run twice, in March and May, and the third run is happening in July at Google Cambridge.
I’d like to share some of the lessons the Boston Python Workshop staff have learned about organizing outreach workshops and our goal of bringing more gender diversity to the local Python community.
First, the structure of the Boston Python Workshop
The Boston Python Workshop is for women and their friends who have no or limited programming experience (I’ll talk more about “women and their friends” in a bit).
The workshop is held on a Friday evening and all day Saturday. On Friday, attendees set up their development environments and start learning Python through a self-directed tutorial and practice problems.
On Saturday, attendees continue learning Python with a 2 hour interactive lecture. Attendees and staff socialize over a sponsored, on-site lunch. In the afternoon, we break out into groups to practice Python while rotating through three short projects on a variety of fun and practical topics. Our projects have included writing parts of a Twitter client, how to cheat at Words with Friends, writing a basic web app in Django, and writing graphical effects for a ColorWall. Our material is all online, so check it out.
This comes to a solid 10 hours of learning and practicing Python, with support from a strong group of volunteers from the local programming and open source communities. The workshop is run under the auspices of the Boston Python Meetup (I’m one of the Meetup organizers) and we hold follow-up events like an open Project Night through the Meetup.
Lessons learned about teaching Python to beginners
There is a huge difference between teaching Python to people with programming experience in another language and people with absolutely no prior programming experience. The biggest lesson we learned is that if you are going to teach absolute beginners, you have to commit to really starting at the beginning:
Make getting your environment set up a part of the event. If you say that attendees need to install Python and dependencies before the event, you will scare off some beginners. For us, environment setup includes:
- installing Python
- on Windows: adding Python to your PATH
- practicing starting and exiting a Python prompt
- installing a code-friendly text editor
- practicing running Python code from a file
- installing dependencies for the Saturday projects
We provide step-by-step instructions for Windows, OS X, and Linux. We want people to leave Friday confident in their ability to create and navigate a Python development environment.
Introduce programming vocabulary before you use it. It’s easy to toss around words like ‘variable’, ‘parameter’, ‘string’, or ‘syntax’ without thinking about it. Define these words as you use them, and tell other staff and attendees to call you out if you start using jargon. Consider having a glossary to which attendees can refer.
Make it clear that experimenting is okay. This isn’t a sculpture or glassblowing class; there is no physical or expensive resource “wasted” on mistakes, so don’t be afraid of making them. Get attendees in the habit of answering their own questions by testing and tinkering. As much as you can, give answers at a Python prompt instead of saying them. We also introduce tracebacks very early and strip away any intimidation or sense of having done something “wrong” when attendees encounter them.
Have clear, bite-sized goals. Completing a task, no matter how small, is encouraging and lets you know that you are on the right track. Our Friday night material has explicit steps for each bit of environment setup and ends in a check-off of a handful of key lessons with a staff member.
Give attendees opportunities to practice thinking about and solving problems in code. It is a huge leap from following along with an instructor or tutorial to solving a problem on your own in code, and it’s a leap that is often neglected in intro material. We have attendees practice with codingbat.com and some staff-written exercises.
Motivate the experience. Start and end the workshop with why programming is useful, empowering, and fun. Our Saturday projects are an opportunity to experience this first hand. Have the staff share their programming stories.
Lessons learned about outreach workshops focused on women
It is always important to keep a positive, inclusive tone, even when you are focusing on a particular demographic:
Make it clear that trans women are welcome. I had a tough time coming up with language that I liked, so I asked some trans women I knew for help.
Make the situation for men clear. Our rule, adopted from RailsBridge, is that men can come as guests of women.
Here’s how we describe our audience in the Meetup event blurb:
Audience: Women and their friends who have no or limited programming experience. This event is welcoming and respectful of trans women. Men are welcome as guests of women who are attending.
Friendly and to the point.
Talk about childcare. Childcare responsibilities are often overlooked at events like this. Maybe you can afford childcare; maybe you can get a volunteer to watch kids on-site. Even if you can’t provide any help, acknowledging that childcare is a concern for some women who’d like to attend goes a long way towards cultivating an inclusive environment.
Have female instructors. Studies show that female instructors can substantially impact the confidence and performance of women pursuing science and engineering . It’s also an opportunity for attendees and the general Python programming community to see more examples of smart, confident, capable women programmers. Need help finding staff? Ask around your local user group, universities, and tech companies.
Lessons learned about sponsorship and publicity
You can’t run a workshop without a venue, food (for all-day events), and attendees. The Boston Python Workshop is a free event run by volunteers, so we have to handle space, food, and publicity through donations, grants, and a lot of on-the-ground effort. Here’s how we do it, from a women’s outreach perspective:
Ask local businesses and universities for space and food. Don’t underestimate the ability of local businesses and universities to help you with space and food donations. Often all it takes is asking. A lot of bigger companies have budgets for community relations or diversity outreach that they are dying to use on events like this.
Short on attendees? Send an e-mail blast. Advertise the event with your local user group (better yet, make it a user group event). Still not full? How about contacting:
- local chapters of engineering societies like the Association for Women in Computing and the Society for Women Engineers
- women’s groups at local universities, including engineering and science societies.
- computing clubs at local universities.
- local tech companies.
- local tech reporters and bloggers.
- the organizers of local Science, Technology, Engineering, and Math (STEM) youth initiatives. Some examples from Boston are Science Club For Girls and Citizen Schools.
These are all also great communities for recruiting workshop staff.
Play the social media game. Get on Twitter, pick a hashtag, and promote the event. Write blog posts and encourage attendees to do the same. Invite famous local tech women to attend the event and blog about it.
Lessons learned about goals and iteration
What are the long-term goals for these outreach workshops, and are we achieving them?
In Boston, our goal is sustained involvement in the local Python community. For us, it’s important to:
Have a roadmap. An intro workshop is a great first step, but what’s next? We end the workshop with explicit suggestions for next steps and reiterate them on our wiki and in a follow-up e-mail. We also specifically invite workshop attendees to a pre-scheduled follow-up Project Night, and since attendees joined the Boston Python Meetup to register for the workshop, they’ll get information about all future Meetup events.
Be data-driven. We run detailed exit surveys and use that data to iterate on the curriculum and projects. We hold a staff wrap-up shortly after the workshop where we dissect every part of the event from the instructor perspective and identify parts that can be improved. We also track attendance at general Meetup events.
Prior to our outreach workshops, Meetup events were under 5% women. I can happily report that the 6 general Meetup events (which typically bring in 40 – 70 people) held since running our first workshop have all had at least 15% women attending, and we have some fantastic workshop alums who have become Project Night regulars.
There is a huge, unmet demand for programming events for women, across the US and globally. Our workshops fill up within hours, and we plan on running the Boston Python Workshop every 2 months for the foreseeable future.
You can read more about the Boston Python Workshop on our wiki. We are #bospythonworkshop on Twitter, and we run under the auspices of the Boston Python Meetup (@bostonpython) and the OpenHatch project (@openhatchery). We plan events and share strategies with other outreach events on the OpenHatch Events list.
It’s your turn! What programming or open source communities are you passionate about? What kinds of outreach are important to you, and what are the biggest barriers to running a workshop in your city? We want to see more outreach events across the globe, so tell us what you need and we’ll help make it happen!
Already a veteran event organizer? We want to hear about your experiences!
Leave a comment with your story and join in the discussion on the Events list.
 GÃ¼rer, D. & Camp, T. (2001). Investigating the incredible shrinking pipeline for women in computer science (Final Report — NSF Project 9812016).
 Sonnert, G., Fox, M. F. and Adkins, K. (2007). Undergraduate Women in Science and Engineering: Effects of Faculty, Fields, and Institutions Over Time. Social Science Quarterly, 88: 1333–1356. doi: 10.1111/j.1540-6237.2007.00505.x
 Bettinger, Eric P. & Long, Bridget Terry. (2005). Do Faculty Serve as Role Models? The Impact of Instructor Gender on Female Students. The American Economic Review
Vol. 95, No. 2, Papers and Proceedings of the One Hundred Seventeenth Annual Meeting of the American Economic Association, Philadelphia, PA, pp. 152-157
For an excellent introduction to the gender gap in computer science, see:
Margolis, J. and Fisher, A. (2002). Unlocking the Clubhouse: Women in Computing. Cambridge, MA: MIT Press.