Teaching the world to program

Author: Mario Antonioletti
Posted: 18 Jul 2017 | 11:56

Smily participants on the R course.

Wearing my Software Sustainability Institute hat, I taught at the CODATA-RDA Research Data Science Summer School in Italy last week. With participants from five of the seven continents, sadly Australia and Antartica being under-represented, it was truly a global Summer School.

Participants are given the basic material in the first week of the School, and go on to look at more advanced workshops during the second week. I gave one-and-a-half days' of R content and half a day of SQL material based on the Software/Data Carpentry courses.

Workshop format

A typical Carpentry course consists of an instructor sitting at the front of the class typing commands into a shell or console with participants parroting the same content on their own shell or console to get the same output. In this way participants can see what the instructor is doing and replicate it on their own systems and thus assimiliate the content in a practical manner.View from my room at the Adriatico Guest House, the venue for the course.

For the R material, a lot of data can flash by the console (usually within RStudio) so the originating command is immediately lost to the participants. For this reason I abstracted the commands into a set of R scripts that could be executed using the Control-Enter mechanism available within RStudio and made this material available on GitHub. Students cloned the repository and, as they would have all the commands I would be executing, they could thus keep the context of what was happening. It also saved me a lot of manic typing on the day. 

For the SQL content I made use of GitHub gists to abstract a working script for myself and also to put out a copy of the students' questions, or challenges. Rather than use the Firefox SQLite manager add-on that is typically used for these lessons, I typed commands directly at the SQLite prompt on a shell - hard core. These too seemed to work OK for the participants.

In terms of participant satisfaction I did not carry everyone with me. Those who had not done any programming before were severely disadvantaged so some people fell by the wayside, but I was suprised by the enthusiasm and response of those who did manage to keep up and understand the material. In any case the Software Carpentry notes are excellent so they should be able to recap any material they did not follow.

Why be an Instructor?

People often ask why you might want to become a Carpentry Instructor. For me, reviewing SQL and R commands was really useful and even as an instructor I think I learnt a lot. I got to travel a bit but even better I got to meet an interesting bunch of people from literally all over the world. It is hard work and exhausting but the chance to review stuff and the opportunity to meet such people is more than worth it.


Mario Antonioletti, EPCC Software Architect, Software Sustainability Institute Consultant and Carpentry Instructor.