Last week, EPCC's ARCHER training team ran another Software Carpentry workshop here in Edinburgh, on 3rd and 4th of December. The workshop provided attendees with an introduction to version control and Git, building programs with Python, automating tasks with Make, and how (and how much) to test programs. These were set within the context of best practices for scientific computing.
My colleagues Mario Antonioletti, Alistair Grant and Arno Proeme joined me as co-instructors. EPCC's Emmanouil Farsarakis, and Leighton Pritchard and Peter Cock from The James Hutton Institute in Dundee were helpers. All had attended the Software Carpentry Instructor Training at TGAC back in October.
We had 38 attendees, mostly from Edinburgh and Heriot-Watt, including a group from the EPSRC Centre for Doctoral Training in Condensed Matter Physics. Other attendees came from institutions across the UK including Belfast, Birmingham, Bristol, Dublin, Durham Leeds, Oxford, St. Andrews and Strathclyde, the Royal College of Surgeons and the Roslin Institute.
There were a number of software difficulties we encountered:
- Multiple Python distributions in Windows (e.g. different flavours of Python 2, or Python and Python 3). These were sorted by editing the attendees' paths.
- matplotlib import error when non-ASCII characters are present in the user's current working directory or user name. This is a known issue One solution is to re-install Anaconda in another location without non-ASCII characters in the directory path but the attendee did not have permissions to do this. They logged into a machine into their home institution and did the sessions using this.
- "Permission Denied" when running ls from within ipython arose for one attendee. It was unclear why this arose since pwd ran fine and directory permissions were valid. The attendee just used ls from outwith ipython.
- Running ipython under GitBash on Windows 8 sometimes crashed. It is unclear why.
- BSome attendees had BitBucket accounts and public/private keys already set up. This caused issues when using git:// URLs when cloning repositories it expected to find a local copy of the public key. Using https:// URLs when cloning avoided this issue.
We gathered feedback (via sticky notes) after each session and you can view these as a MarkDown file in the workshop's GitHub repository. We also collected information using a post-workshop questionnaire, and a selection of the attendees' comments is as follows:
|Good points||Bad points|
|The range of topics was well thought out and very useful for my research.||When tasks were given to be completed, there was no extra material to be covered if you completed the task quickly. It would also be useful to have these extra examples to work on after the course.|
|Version control is really important, good idea to use [it] and for documents too.||There was a lot of dead space in the program coffee breaks and lunch were too long.|
|IPython seems super useful and I didn't know about it before.|
|Previously thought that make was used only for compiling Fortran codes.||I think some areas needed more exercises for us to do to ensure we knew what was going on.|
|I didn't know there were ways to test code without putting annoying print statements all over the place and messing up structure.||Testing used programs that I didn't really understand so found it hard to know exactly what the tests were meant to do.|
|Great working with other people to solve the problems posed.||I would have appreciated more explanation of the purpose of the example code, since I often found myself mindlessly copying it down without being certain what was going on|
|Interactive! Makes it easier / more fun to learn.||2-days time span is short...didn't get time to practice what I learnt.|
|Refreshing ideas about programming which is particularly useful for the majority of people, particularly myself, who have no formal programming training and, thus, are riddled with terrible habits in coding.||High diversity lead to some people struggling and some waiting around|
Our workshop was in collaboration with EPCC's PRACE Advanced Training Centre (PATC), and Software Carpentry, a Mozilla Science Lab initiative. ARCHER's training team plans more Software Carpentry workshops throughout 2015 - keep your eyes on ARCHER's upcoming courses for more information.