The second week of April the University of Warwick in the UK hosted its first Software Carpentry bootcamp. The bootcamp was organised by GARNet which is a UK-based research network for the UK Arabidopsis and wider plant research community. GARNet facilitates collaboration and interaction between different researchers and supports skills development.
The bootcamp was open to all researchers from the domain and many out of 32 participants came from outside of Warwick. However, the longest journey prize goes to Christina Koch who came from Vancouver to co-instruct with Aleksandra Pawlik from the Software Sustainability Institute.
The two main organisers, Charis Cook and Lisa Martin did an amazing job making sure everything was in place for the bootcamp. Not only did the attendees receive a booklet with all essential information about the event, everyone had a chance to discuss and network at the end of Day 1 during the dinner which Charis and Lisa organised on the campus. The icing on the cake (almost literally)? The dinner was topped up with some fancy dessert.
The three helpers Leonor Garcia-Gutierrez, Krzysztof Polanski and Jason Piper helped make sure that things run smoothly. The participants were working either on Windows machines or Macs (with a slight prevalence of the latter). Some machines were problematic when it comes to the setup. Eventually, thanks to the helpers everyone had all necessary software up and running.
The pre-bootcamp questionnaire showed that around a half of the participants had no or very little experience with programming. Several had not used the command line before. For that reason, the module on using command line started with the explaining the basics of the environment and the simple commands. At the end of this session Christina taught how to write and run shell scripts. Showing the power of the shell to the attendees was very convincing. The only problem we encountered was the fact that the "chmod" command is not supported on GitBash which many of the attendees were using.
The next module, version control, was a new topic for almost all attendees. The module started at the right pace for everyone to follow, discussing Git workflow on a local machine. However, when we moved to working with remote repositories on GitHub, it became a bit too rushed. Git is not an easy start with version control for beginners and maybe this particular module should be extended at bootcamp where most of the audience is new to the topic.
Introduction to programming with Python was taught using the IPython Notebooks which everyone seemed to like. The only misunderstanding that emerged from using IPythong Notebooks was that some attendees were convinced we worked online (since the Notebooks open in a browser). Once the confusion was laid to rest, attendees were keen to learn more, especially once they realized they could use this tool anywhere, sans wifi.
Day 2 of the bootcamp covered more programming with Python and an introduction to the Pandas library. Using the latter we showed the participants how to easily manipulate large *.csv files which they are likely to use in their everyday research. The teaching finished with Christina discussing debugging and testing.
At the end of the bootcamp, participants were given a final exercise in which they had to fork a repository with an unfinished piece of Python code (which also included a small bug). The point of the exercise was to give the attendees an opportunity to see how the skills they learnt separately over the course of two days could be combined in one task. There was also time for attendees with specific questions to consult with the instructors and helpers about how to implement skills from the past two days into their work.