“Can you email me that script you used to do your analysis?”
“Sure. It isn’t very well commented but you should be able to work out what it’s doing. I’ve tested it on a few things and it seems to work.”
Sound familiar? Of course, the story normally ends happily but….
Teaching some of the tools and methods of software engineering to scientists so that they write code that is easy to understand, tested and so can be shared more readily. This is the idea behind Software Carpentry, a small but fast-growing movement.
I joined one of their online courses a few years ago and found it very useful, although inevitably I only managed to complete half the exercises before I had a bad week and fell off the back of the course.
So back in April 2012 when I was talking to Neil Chue-Hong at the Collaborations Workshop in Oxford and he mentioned Software Carpentry my ears pricked up. Neil is the director of the Software Sustainability Institute who were running the workshop and he mentioned that they were helping Software Carpentry run two-day intensive courses in the UK. I thought it would be just the thing for our department and, well, we have just finished running the first ever two-day Software Carpentry workshop at the University of Oxford.
Interest in the workshop has been high; although the plan was to limit it to Biochemistry we ended up with helpers and observers from other university departments as well as one of companies on the science park and if we’d opened it up could have filled the room at least twice over. In the end we only had enough chairs and desks for the attendees and everyone else had to perch.
The first day covered shell scripting using bash and awk, version control, and automation courtesy of GNU make. I think most people had seen shell scripting but everyone sat up a bit straighter during version control… I always think a good course is like a good physics lecture; you sit there at the beginning nodding thinking “this is easy”, then the difficulty slowly ratchets up and at the end you realise you’ve learnt a lot. Yesterday it was the turn of python, including unit tests and some of the more relevant modules to us such as numpy, scipy and MDAnalysis.
I’ll describe some of the feedback in a later post, but overall it appears to have been well-received. Just remains for me to say thank you to the instructors, all the helpers and, of course, the attendees.
Here’s to another one in 2013.