Software Carpentry @ Oxford DTC
Posted: 14 May 2013 | 09:35
Wearing my Software Sustainability Institute (SSI) hat I participated as an instructor in a Software Carpentry bootcamp that took place on the 9th and 10th of May in Oxford. The bootcamp was organised by Jonathan Cooper and targeted at researchers involved in the Oxford Doctoral Training Centre. Shoaib Sufi from the SSI was the other instructor at this event. The three of us taught about 30 attendees from various disciplines studying for DPhils (this being Oxford) as well as some Postdocs, giving them some basic computing skills that we hope will make their research more productive.
This bootcamp included topics such as: version control (git), python, testing in python, python’s NumPy and SciPy and bits of MATLAB and relational databases. All the materials used are available on-line, and are a branch of the much larger, publicly-available Software Carpentry training material that is being developed on GitHub. There is a wealth of stuff there that is really worth looking at.
Software Carpentry was the brain child of Greg Wilson, who is now based at the Mozilla Foundation but who, before my time, used to work at EPCC. Software Carpentry bootcamps help researchers to be more productive by teaching them basic computing skills that will help them in their research. Uniquely, this is not done by just lecturing but by doing. That is, the instructor will type on the terminal of a machine, the output is then projected on to a screen and the attendees try to replicate it on their own laptops. If an attendee gets stuck or has a problem, they place a little red sticker over their screen and a willing helper – you usually want at least one helper per 10 attendees – will provide help. Green stickers are used to indicate that all is well or that an exercise has been completed. My experience thus far has been that this formula works and has been very successful, although sometimes there are issues with people getting left behind if they hit a problem or if the instructor races ahead.
I believe the SSI has been critical in promoting Software Carpentry bootcamps in the UK with Mike Jackson, my office mate of about a decade, currently coordinating a lot of them. Mike and Steve Crouch from Southampton have both instructed a lot of UK and European-based bootcamps. The hope is that bootcamps will go viral with some of the attendees becoming helpers at future bootcamps and then going on to become bootcamp instructors. At least that is the hope. The whole thing is done on a voluntary basis, although the protocol is for the instructors' travel expenses and subsistence costs to be met by the organisers. I have already been involved in two previous bootcamps as a helper – one that took place in Newcastle and the other in Edinburgh - so I thought I should now step up and instruct.
For this bootcamp I chose to instruct the version control and testing. I already had an interest in git and had been using it in a basic form. I really like git but it does give you plenty of rope to hang yourself with. I managed to screw up my local repository by basing the materials I was customising on a clone of the wrong repository and then updating from the right one – it led to a mess. Luckily it is hard to lose files but what I found is that you begin to care as much for the provenance, the history of changes and commit messages, as you do for the files themselves and if you do screw up badly enough you will probably lose that, which is bad. Still, I am now a convert and think git is way better than Subversion or CVS. The testing was interesting too. Preparation took a lot longer than I expected because I think the materials have to be tailored a little to make them into a more compelling narrative.
The verdict? The whole thing was a lot of fun. I deepened my understanding of the topics I taught and one always learns new things at these bootcamps. I also want to deepen my understanding of Python. Most of the attendees seemed to get something out of it as well, which after all is the main point, and enjoy the experience. One chap came to talk to me as he had got excited by git and had started porting his code to it.
I would highly recommend getting involved with Software Carpentry bootcamps as an attendee, a helper, an instructor or - if you fancy having one of these events at your institution/department - why not become an organiser? You can also contribute materials if you have any particular expertise that would help researchers to work more efficiently. If you are interested, start by looking at the Software Carpentry website.