I just finished up my stint as a helper at Software Carpentry's Women in Science and Engineering boot camp, also known as WiSE. The event was held at Microsoft's space in Cambridge Center near Boston from June 24 - 25.
I was not an instructor. My post will be rather informal and detailed, from a helper's perspective. For a formal writeup from an instructor, see Aleksandra Pawlik's post for the Software Sustainability Institute. For a broad overview and perspective from someone new to Software Carpentry, see Kaitlin Thaney's post. Kaitlin is the new director of the new Mozilla Science Lab initiative. Since Software Carpentry now falls under Science Lab, Kaitlin is our boss... I think!
The month before, I had volunteered at the UMass Amherst boot camp. Since I am located reasonably close to Boston, I was asked to help out again at WiSE. The UMass boot camp was a low-key affair, but WiSE was a special, high-profile event for Software Carpentry. Any self-identified woman could register for the event, as long as she could make it to Boston and pay $20. This was unusual because up to this point, we ran boot camps at universities and research institutes with the participants mostly coming from that particular university/institute. Moreover, the WiSE boot camp was three times larger than normal and also had additional corporate sponsorship from J.P. Morgan, Microsoft, Intel, NumFOCUS, King Abdullah University of Science and Technology, and Python Software Foundation.
We had 7 instructors, 19 helpers, and approximately 120 participants -- all women! With so many people, we split the group into three rooms: novice, intermediate, and advanced. I was worried that we weren't going to have enough helpers1, but at the last minute, J.P. Morgan sent a bunch of people, including some technologists from their Manhattan office. Thank you, J.P. Morgan! The instructors and helpers came from all over. Many of us flew in from across the country, some even internationally from Europe.
In addition, Amy Brown, Software Carpentry's admin, came from Toronto to keep us organized. She bought snacks, monitored communications, and generally helped to make sure things didn't fall apart.
To prepare for the event, we held a conference call the week before, with all the instructors and helpers2. The agenda was on an Etherpad and we added notes to it during the call. Tracy Teal, who I had worked with at the UMass Amherst boot camp, graciously volunteered her time to lead our merry band and did her best to organize us over the conference call and the mailing list.
The night before the boot camp, the instructional staff caught a little relaxation at the Cambridge Brewing Company. I recall trading stories about traveling, Star Trek, and college visits. It was a great idea to meetup before the event started, because the boot camp itself was absolutely hectic. It was astounding to me that almost all of the staff traveled from out-of-town. After our beer get-together, I was asked to show people to the T stop because I was the only person who had ever lived in the Boston area.
The boot camp ran from 9 am - 5 pm over two days, but we instructors/helpers arrived at Cambridge Center around 8 am, in order to prepare and help out with installation problems. Since there were so many people, we tried to identify ourselves as instructional staff by wearing Software Carpentry t-shirts, buttons, and stickers.
I was assigned to help in the advanced room and our instructors were Jessica McKellar, Aleksandra Pawlik, and Sheeri Cabal. Jessica taught shell and scientific Python, Aleksandra taught Git, basic Python, and testing, and Sheeri taught SQL. They are all software experts with impressive credentials. Jessica is an organizer for the Boston Python User's Group and on the Board of Directors for the Python Software Foundation. Sheeri organizes the Boston MySQL User Group. Aleksandra Pawlik works at the Software Sustainability Institute in England. The Software Sustainability Institute focuses on software in research settings and sounds very cool. I wish we had something like that here in the USA.
Just like at UMass Amherst, I spent the majority of my time manning the Etherpad -- taking notes and answering questions in the chat box. I was worried that people might be so "advanced" that they were bored, so I would sporadically write comments like "hey did you know that there are non-SQL databases" or "check out the history of unit testing" to entertain them. I don't know if this was helpful or not. In between Etherpadding, I checked to make sure our room was well-organized and supplied and helped people with their software installs. During quieter periods, I worked on promotion -- taking photos in each of the three rooms and sending out a few tweets.
The evening of the first day, there was a reception and panel sponsored by J.P. Morgan. The panel consisted mostly of J.P. Morgan technologists, plus Jessica McKellar (Python expert / software engineer) and Wei Le (computer science faculty). Jessica and Wei were instructor and helper, respectively, in the advanced room. The panel was a discussion of women in software and how participants can get involved (see Aleksandra's post).
Unfortunately, I had to run to meet a friend for dinner, so I was only able to listen to the panel introductions. I did catch a funny remark by Prof. Le who said,
As a CS faculty, I look forward to work every day. Not true as a grad student.
As a former grad student, this made my day.
Problems, impressions, and anecdotes
As is usual in these boot camps, installation problems were a major issue. I heard reports that there were an unusually high number of install problems, partially because a number of people didn't bother installing anything before they came. Even though we provided a Python script to check installation and asked people to check their IPython version at the end of the first day, we still had quite a few problems in the advanced room. IPython notebook problems ate up the first hour of the second day. If you participate in a Software Carpentry boot camp or any software education event in the future, please please check your install as throughly as you can!!!
We were a bit disorganized in the advanced room, partially because it was hard to coordinate efforts with three instructors from different backgrounds. We forgot to set up the Etherpad and to ask for feedback on minute cards.3 However, once I realized this mistake, I informed the instructors and we rectified the situation quickly.
I got the impression that our advanced group was pretty bored during the shell
lessons. A couple people wanted to know about pretty advanced shell stuff like
awk. The room perked up a bit when we went on to teaching
Git. When we teach Git, I'm always worried that people think GitHub = Git or
that GitHub is open source software (it's a commercial web service). Sure
enough, someone asked if the Python software project used GitHub.4
A selection of my personal experiences:
- I had a nice chat with a couple women about open source software, R, and Python. They were interested in doing data analysis. We all complained about how R makes it too easy to do irresponsible research -- you can run R libraries and obtain results that you don't understand.
- I hung out with a participant after the first day and we talked about installing Python libraries on Mac OS X. I told her that we recommend all-in-one installers like Anaconda or Canopy to avoid issues during boot camps, but that in the long run, you want to be in charge of your software and should learn to install the libraries yourself with a tool like Pip.5 We also chatted a bit about machine learning.
- Mixed feedback on virtual machines. On one hand, a participant gave us a huge thumbs up for the virtual machine (VM). She was really happy to have everything working out of the box and was running the VM on her Windows laptop. On the other hand, someone else was very unhappy that she couldn't get superuser access on the virtual machine. I tried to help her over the Etherpad and even asked the Software Carpentry instructors mailing list for the superuser username and password, but apparently she still couldn't get it to work.
- A participant came up to me after the end of the second day and effusively gushed about how inspired she was by our teaching.
I learned from my time helping at UMass and tried to put together a list of resources and ideas for what people could do after the boot camp. At the UMass boot camp, people were really interested in follow up material, but the staff didn't have any formal list and we ended up pasting in URLs on the Etherpad. For a high-profile event like WiSE, I hoped that we could be more organized and that's why I attempted to come up with a collection of resources. You can see my list on the Software Carpentry blog.
Looking at the minute cards, there were many different opinions on what was easy vs what was hard and what topics people wanted to cover. This shows how difficult it is to teach a large group, even when we separated participants by level in this particular boot camp! I think we could have done a better job presenting the goals of the boot camp. We should have had formal introductory and wrap up presentations -- talking about how we want to promote good software practices, reproducible research, and open science. The reality is that we simply can't meet everyone's exact needs, but we hope to give an overview of good software practices and to inspire people so that 1) they make their software a priority and 2) find a community of like-minded scholars.
Overall, we received lots of positive feedback from the participants and apparently enough interest to start a mailing list or Google Group. I hope the women from the boot camp continue to educate and empower themselves with software.
We normally desire at least a 2:1 helper:instructor ratio. ↩
At that point we didn't know who J.P. Morgan was sending, so they weren't on the conference call. ↩
For a "standard" Software Carpentry boot camp, we usually ask the participants to write 1-2 sentences about what was good and what was bad 1-2x each day. The feedback is written on index cards or stickies, and we tell them not to spend to long on it -- hence the term "minute cards." ↩
Not only does Python not use GitHub, the project doesn't even use Git as their version control system. They prefer Mercurial! ↩
This is my personal opinion and not necessarily Software Carpentry's official recommendation. ↩