Software Carpentry Boot Camps: Software Engineering Training For Scientists

Yes, up at 7 am for a 3 mile run, a cold shower, then a breakfast of gruel followed by a full day of software engineering techniques … well, not quite: the software engineering part is true though. The Software Carpentry project is running what it calls Boot Camps to teach scientists modern software engineering practices.  The U. K. Software Sustainability Institute held the first such boot camp in Britain, and filed this report on the event.

Software Carpentry is a project started by Greg Wilson of the University of Toronto to help scientists become more productive programmers. The project came about because scientists are generally self-taught lacking the software skills to write sustainable code in this era of “Big Data,” in which computational expertise is assuming ever greater importance.  According to the numbers on Software Carpentry’s web site,  95% of scientists are primarily self-taught but spend 40% or more of their time “wrestling with software.”

Software Carpentry’s approach is to combine short, intensive “boot camp” workshops with self-paced online instruction. The camps cover the “core skills needed to be productive in a small team: program design, version control, testing, the shell, and data management,” while the on-line training covers the core topics in more depth. The aim is to develop healthy practices rather than teach particular technologies.

Software Sustainability Institute Director Neil Chue Hong summarized the pluses and minuses of the U.K. Workshop. Among the pluses (quoted verbatim)

  • Beginner friendly
  • Easy learning curve
  • Now know how to use SQL
  • Doesn’t matter what programming language I used in the first place
  • Taught functional programming rather than object-oriented
  • Material backed up by anecdotes and evidence
  • Good at giving thoughts rather than skills
  • Can go back and share with other members of the group
  • Killed my fear of version control

… and more. On the minus side:

  • Can’t afford to buy all the books referenced
  • Too early a start [9am start both days in central London]
  • Too much to take in
  • Not enough functional programming
  • Lower level than group is used to
  • Need coffee at the start of the morning [which we didn’t have on day 2]
  • Problems with the wireless network
  • Need biscuits in the afternoon (Love this one – astrocompute!)

… and more. Neil pointed out that for an intensive workshop, a comfortable working environment is required for productivity: sweaty rooms, lack of cookies and coffee make for grumpy scientists.

My impression from afar is that the workshop was a technical success, in that that the attendees learned valuable skills that will make them more productive scientists, and that the format promotes  fast learning. Aside from the need for an air-conditioned room, I gain the impression that perhaps too much may be included in the class. This is not a comment on the class, but on the nature of the work and skill-set scientists need: there is so much to learn. I wonder if the optimum long term term solution is to begin to lobby to have these techniques included in the graduate curriculum, so they can be learned over a couple of years rather than by “cramming.” The splendid Software Carpentry web site already contains much of the material needed for the curriculum.

This entry was posted in astroinformatics, education, information sharing, programming, software engineering, software maintenance, software sustainability and tagged , , , , , , , , . Bookmark the permalink.

3 Responses to Software Carpentry Boot Camps: Software Engineering Training For Scientists

  1. kellec says:

    yep, both undergrad and grad curriculum. but how? At least at Columbia, the grad students are doing it on their own: http://www.adrianpricewhelan.com/python/
    Is this type of grass roots effort happening in any other Astro depts?

    • astrocompute says:

      Kelle:
      How is a good question. I have had discussions on this with other parties. Some have said that schools do not have time to add material into their curricula, but this misses the point IMHO. The issue is one of what benefit scientists gain from this training. So we need to gather metrics on gains in productivity in taking S/W classes, and then use that to justify that it is worth doing them.

      Grass roots efforts can certainly be valuable, though the one you mention is about training in Python rather than in S/W techniques. I don’t know of any on S/W techniques.

  2. Greg Wilson says:

    Thanks for the mention — we do have some more workshops coming up this summer in Baltimore, Paris, Boston, Halifax, Waterloo, and Toronto, and are in the planning stages for others at Oak Ridge, Boulder, Vienna, Oxford, Sydney, Melbourne, and Austin. Please see http://software-carpentry.org/calendar/ for a calendar, and check out “Boot Camps” on the main menu of our web site for details.

Leave a reply to kellec Cancel reply