Archive for June, 2009

Software Carpentry

June 11, 2009

Yesterday I delivered my first day-long Software Carpentry workshop, based on some slides I had botch-converted from the web page. I decided to do object oriented programming (both parts), version control, unit testing and debugging.

I used an IT training lab here at Glasgow with a stack of customised live CDs, which seemed to work reasonably well. I may have inadvertently converted a few people to Ubuntu which obviously wasn’t the aim of the course! The only problem was that the liveCD didn’t boot properly without graphical “safe mode” which meant a rather low 800×600 resolution. I had hoped to demonstrate Eric, but it doesn’t actually fit on the screen at 800×600.

I may also have converted a few people to Python, which can only be a good thing if it stops them using Fortran.

I did struggle with a few of my examples – I haven’t set up an SVN repository for ages and I kept making silly path errors – which just shows you have to test everything before the course runs.

Most of my students were maths or engineering. The success was roughly bimodal: half of them were not strong enough programmers to get much from the course at all. They were mathematicians or engineers who had never seen Python before and could not adapt fast enough. The other half were stronger programmers who picked things up quickly and nodded sagely as I identified the less-than-optimal practice they were currently using and how modern techniques might benefit them.

The people who enjoyed it most were actually staff (all from maths), rather than students or post-docs. I told them Greg Wilson’s story of 3 of 38 faculty using version control and stressed how important it is for staff to lead from the front and insist their students and RAs use best practice and they seemed to buy into that. They also agreed that a software best-practice course should be compulsory for new students in subjects with a strong computational element.

I enjoyed giving the course, even though it was a really exhausting day. I’m meeting with the training people and hope to arrange further courses – maybe a “basic programming in Python” course for those poor Fortran programmers.