The Software Carpentry Foundation is an international volunteer organisation that teaches basic programming skills to researchers in science, engineering, medicine and other disciplines. Further, the foundation maintains a wealth of open-source, open-access teaching materials for a several programming related topics, including Python, the Unix shell, Git, SQL, R and Matlab.
Lessons from Software Carpentry are usually delivered in the form of two day workshops. Taught by trained instructors, these workshops cover automation of repetitive tasks using the shell, building modular and testable programs using Python or R and using version control to build software in a collaborative and efficient manner. Furthermore, workshops may be expanded, covering topics such as SQL and the use of databases to reliably store and maintain data. Though of course it is impossible to train expert programmers in two days, Software Carpentry has had great success in teaching ‘just enough’ to researchers that they can then return to the lab with a strong foundation of skills to build from.
This presentation will focus on the major progress that has been made by Software Carpentry in Australia and worldwide since PyCon-Au 2014. In particular, the pool of Australian instructors has dramatically increased through the live training session held as part of the Research Bazaar conference held at Melbourne University in February. As such, the presentation will be somewhat meta – answering the question ‘What are the educational principles and techniques you should know before attempting to teach novice programmers?’ The Software Carpentry lesson content has also evolved in the last 12 months, with the lesson content expanding to such topics as the use of Pandas and the more effective use of the iPython Notebook to work with data and visualisation. These changes allow Software Carpentry to cater to a broader audience of researchers. There will also be some discussion of the Research Bazaar conference, which partnered with Software Carpentry this year to not only train instructors, but also run a series of other ‘basic skills’ workshops for researchers. Finally, there is an interesting sister organisation of Software Carpentry, known as Data Carpentry, which focuses on improving the way researchers work with and store their data.