Software Carpentry trains the trainers

Written by: C. Titus Brown

Primary Source: Living in an Ivory Basement

tl;dr? The Software Carpentry train-the-trainers workshop in Toronto this past M-W was just fantastic. I can’t recommend it enough.

A bit of background: Software Carpentry is a project to teach scientists to use computing more effectively. Started by Greg Wilson about 16 years ago, the project has progressed through many different moults, including attempts to provide online training materials and lecture videos for reuse by others (Note: I’ve been involved for about 10 years).

In its latest incarnation, Software Carpentry has been running two-day workshops by invitation. Now under the umbrella of the Mozilla Science Labs and funded by the Sloan Foundation, Software Carpentry has recently exploded in popularity, with almost 100 workshops and more than 3500 students trained in just the last calendar year. Part of this is no doubt due to the stunning increase in interest in data science and Big Data, but another part is that we have finally found a format that works well. Two day workshops are enough to give people a taste for what life could be like if they improved their computational practices. One particularly effective catch phrase is, “In two days of teaching, we can improve your effectiveness enough to save you a day a week for the rest of your research life.”

As part of Software Carpentry’s success over the last two years, Greg has put a lot more effort into training new instructors. Our instructors are typically self-taught grad students, postdocs, or (increasingly) faculty; however, there simply wasn’t a large enough supply to meet the demand for workshop instructors. So Greg decided to train ’em. For the past two years, he’s done this with a ~quarter-long online training. The training (by rumor — I’ve never taken it, having been grandfathered in because of Greg’s desperate need for instructors Back When) consisted of teleconferences going over the best known practices in teaching and learning. However, as with many online courses, the completion rates have been low, and friends and colleagues who have taken it online tell me that it’s difficult to maintain focus over a quarter.

This past Monday, Greg took the online training offline — a typical reversal for Greg, who hates the overhyped (and rather ineffective) trend of moving education efforts online :). About 40 of us met up at the Mozilla offices in Toronto to receive Greg’s papal blessing as teachers. In a three-day marathon, Greg and his co-instructor Warren Code (@warcode) ran us through a grueling-yet-fun series of lectures, active learning techniques, and lesson development and evaluation skits.

Was it worth it?

Absolutely. On Tuesday I told Greg that I thought the workshop rated a 7 or 8 out of 10; on more reflection, I now think I’d rate it at a solid 9/10. Greg held our attention the entire time, kept us energized and moving and thinking, and systematically turned us from an audience into participants. During that period, he taught us a wide range of proven good practices in classroom education.

On teacher training, more generally

I’m generally viewed as a decent teacher. I do a lot of teaching between my workshops and courses at MSU, and I put a lot of energy into it. I’m usually not that well prepared and I get flustered easily when things don’t work, but overall I’ve been evaluated well by the students (which doesn’t necessarily mean that much, but I’ll take it). I’ve won two teaching awards at MSU, one student-awarded, and my students regularly come back and tell me that my classes were pretty good.

But before the SWC training in Toronto, I’ve _never_ done anything more than a half-day workshop on teaching, and even those were but a pale image of Greg and Warren’s workshop. My overall frustration has been in translation: I can read books, and papers, and blog posts on teaching, but translating that into effective practices in the class room is really tough.

This is what Greg and Warren did with the Toronto training: translated the concepts of peer learning, active learning, etc. into an interactive, hands on workshop. In fact, the best part of the workshop was that most of the concepts they introduced as effective teaching techniques were actually used during the workshop to demonstrate themselves.

Simply put, it’s better than any other training I’ve ever done on teaching. Even if that’s a low bar (given my lack of previous training), it was also just an objectively good experience. Greg and Warren should be happy.

What does the future hold?

That’s not clear.

For me, I’d love to have all of my teaching-interested students take this workshop; 3 of them were at this workshop. And I’m planning to amend my summer NGS workshop budget to send wannabe instructors to Greg for indoctrination next year.

More generally? I’m pretty worried about the future of Software Carpentry, and the train-the-trainers component specifically. I haven’t been closely involved in all the discussions of its future, but Sloan hasn’t committed to funding it long term (fair ’nuff) and we’ve had a hard time getting federal funding organizations to fund it in the US. I’ve had a few different grants that all support Software Carpentry in small ways, but by no means will this (even magnified by 10 professors applying for grants in parallel) be enough going forward. Absent a major commitment by some funder — something like $500k/yr for 5 years — this tremendously valuable and important set of resources, people, and workshops risks dissolving or at least moving into abandonware.

I’m not sure Greg would be up for it, but: he could probably sustainably do ~12 of these workshops a year, at a cost of about 30-40k USD per workshop; that’s only 1000 USD/participant, and it’d be totally worth it for the students. If anyone’s interested, drop me a note; I can often get Greg to do things on spec :).

As a side note, evaluation is a big mess. We need to prove that Software Carpentry works, and that’s just tricky; good evaluation and assessment people are hard to find and expensive to fund. A big chunk of the $500k USD above would go to putting in place systematic evaluation money, I think.

A recurring thought is that the NIH is very interested in training biomedical scientists in computing. Software Carpentry has demonstrated its chops in training for computing, and has invested in teaching people how to teach; it also has quite a track record, and has invested in open everything. Seems like a good potential fit.

Three final thoughts.

First — more than half of my students and postdocs are Software Carpentry instructors. In fact, I think MSU now has more accredited Software Carpentry instructors than any other single location (I think we’ve got 8-10 after this workshop?) I expect this to have an real impact on their ability to get jobs in and out of academia: not only do they know more people in more places than is typical for grads and postdocs, but they communicate better with others and know more about computational research practices than most. I already have stories about Software Carpentry-nucleated recruiting to research labs and academia; more on those once they reach a critical mass.

Second — the good practices that Software Carpentry teaches are essential for reproducible research. Stop writing new platforms, stop amending policy to “encourage” reproducible research, stop arguing loudly that computational scientists should be doing reproducible research; just send ’em to Software Carpentry bootcamps and they’ll figure out that doing things reproducibly is intrinsically more efficient than otherwise. I agree with Arfon Smith’s statement that _this_ is the way to drive progress towards reproducible computational science.

Third — you know how everyone is going nuts about data science, and data management in science? Some Software Carpentry-affiliated folk are spinning up a Data Carpentry course now. Someone should fund that, yo.


p.s. My talk at the Toronto Bioinformatics Users Group (slides here) is a good introduction to how my lab uses the Software Carpentry skills when doing novel research. Might be worth a look. Since they recorded it, I’ll link to the video if and when they make it public.

The following two tabs change content below.
C. Titus Brown
C. Titus Brown is an assistant professor in the Department of Computer Science and Engineering and the Department of Microbiology and Molecular Genetics. He earned his PhD ('06) in developmental molecular biology from the California Institute of Technology. Brown is director of the laboratory for Genomics, Evolution, and Development (GED) at Michigan State University. He is a member of the Python Software Foundation and an active contributor to the open source software community. His research interests include computational biology, bioinformatics, open source software development, and software engineering.