On the 3rd and 4th of October we ran a Software Carpentry workshop associated with PyConZA 2015, a conference for Python developers in South Africa. The workshop ran concurrently with the post-conference sprints, in a neighbouring room in the same venue.
Because we expected little overlap between the attendees of the conference (who are mostly existing Python programmers) and the target audience of the workshop, we organized the workshop as a separate event with separate tickets.
The turnout was very low, which may have been caused by our delay in advertising the workshop through academic research channels, and by our limited academic contacts in the Gauteng area. Although an instructor from the University of the Witwatersrand was initially involved in organisation of the workshop, the timing made it difficult for him to participate. In future, I think that we should seek more up-front interest from local academic institutions.
We have considered other possible causes of the low turnout, such as an inconvenient time, location, price or payment method -- but we received no specific feedback regarding any of these.
We ended up with four attendees who were present for most of the time, one attendee who was present for part of the second day, one helper and two instructors. Most of the attendees had heard of the workshop through the conference. The turnout was more or less in line with what I would have expected for a tutorial session attached to the conference.
Despite the low turnout, I thought that the workshop went quite well. The atmosphere was a lot more informal than it would have been with a larger audience, and we took more questions during the course of the lessons. Because there were so few learners we were able to give them more individual attention and assistance, and towards the end of the last day we spent some time looking at specific problems that they wanted to solve in their work.
We also had more freedom to shift the schedule around. Our original plan was to have the Bash lesson on Saturday morning with the first half of the Python lesson in the afternoon, and the second half of the Python lesson on Sunday morning followed by Git.
We ended up doing Bash for 3/4 of the first day, which allowed us to go as far as scripting, although unfortunately we had to omit the find and grep component. We spent the rest of the day introducing Python.
On the second day, we started with a brief Git primer, so that during the rest of the Python lesson we could demonstrate how to version control the evolving snippet of code used to plot the data in the exercises. We then continued with Python, and managed to cover most of the practical material, although we had to abbreviate some of the later chapters.
For the last quarter of the day we covered the more advanced material in the Git lesson, and for the last half an hour we assisted the two remaining attendees with specific tasks: writing a script to process CSV data, and setting up a GitHub repository.
I am not entirely happy with the default Git lesson materials, which is why this lesson ended up with the most modifications. I understand the logic of introducing local repositories before discussing remotes, but I feel that this obscures the most common and expected use case of version control (a remote backup of changes) and overcomplicates setup (it is much cleaner and simpler to create a repository on GitHub and clone it to a local machine than to create a local repository and push it to GitHub, and this is the approach we took in our morning quick-start introduction).
Although we still ended up having to skip some parts of the lessons because we were short on time, I'm much happier with the amount of material that we covered, compared to what I managed during the last workshop where I was an instructor -- I am very likely to extend the Python lesson to two sessions in future. I also enjoyed the environment of the smaller workshop, and would find it valuable to run a variant like this again, but perhaps by design rather than by accident.
Feedback received from attendees in the post-course survey:
- "Instructors were good. Food was good. Setting was good."
- "Excellent coverage of the basics. Small workshop allowed a lot of attention to individuals."
- "The material covered were really helpful and the assistance provided was outstanding. The supervisors were outstanding with their communication and teaching the material. They were also very friendly which made the learning experience all the more enjoyable. Furthermore the supervisors have given their time to assist us which I am all the more appreciative! Thank you!"
- "Sometimes the instructors over elaborated on some issues."
- "It would have been nice if there was air conditioning as the room temperature became relatively unbearable, which made concentrating an effort."