Karthik Ram, Kyle Niemeyer, and Jeffrey Carver
January 29, 2020
In late December 2019, we ran our first ever URSSI school on research software engineering (https://github.com/si2-urssi/winterschool#tentative-schedule). We began accepting applications in July and received an overwhelming response to our call for applications. For the 30 participant slots available, we received 169 applications, meaning we had a challenging time selecting the participants and had to turn away a large number of interested researchers. Our students came from 22 different universities/research institutes, mostly graduate students (19 students, 8 postdocs, and 1 professional researcher), and from fields such as astrophysics, bioinformatics, chemical engineering and neuroscience. While the selection committee used multiple criteria to evaluate and select participants, successful applicants already had some experience with Python programming, Git, and Unix skills, which was necessary to benefit from the workshop.
Our goal wasn’t to repeat the same material covered in bootcamps and Software Carpentry style workshops, but to focus on the research software engineering skills that are not formally taught in most settings. These skills include best practices for converting a loose collection of scripts as installable software, testing, collaborative software development, code review, and related topics such as licensing and archiving. Two months before the workshop, we asked each student to select a software project related to their research to bring to the workshop. Our intent was to intermingle instructions with work time for students to apply these skills to their own projects. All of our materials are available on URSSI’s GitHub.
If anything it has become very clear to us that there is a strong demand for these skills, based on the demand for participation and general positive feedback from participants. We also found that, in this pilot, lectures and discussion ended up filling most of the time. We had originally scheduled roughly the same time for working on projects, but used much of that time for extended discussions. In the future we would like to run a longer workshop to allow students more time to work on their projects and apply the lessons they have learned in practice.
We also found that it was really important to have supplemental instructors (“helpers”), beyond the three lead organizers, who could help teach some material and/or answer specific questions. Through some advertising and direct requests, we found six teaching assistants from diverse backgrounds who brought a wealth of technical and domain knowledge. We’d like to thank Bryan Weber (University of Connecticut), Andy Loftus (NCSA), Ben Galewsky (NCSA), Leah Fulmer
(UW), Meredith Rawls (UW), and Brigitta Sipőcz (UW, AstroPy) for their help.
Despite our modest expectations for a first run of the course, the response from the participants was overwhelmingly positive. Here’s what a few participants had to say about the workshop:
– ”I really can’t say enough good things about this super empowering workshop! You did an amazing job identifying the things I didn’t know that I didn’t know, and teaching them at a level that was immediately actionable in my work.”
– “Thank you so much to everyone for taking this amazing initiative to teach young scientists on software sustainability.”
– “Thank you for putting together this winter-school, it was super useful to me and I’m looking forward to applying everything I learned to my future projects and to go deeper into the topics that were covered.”
We look forward to teaching a longer version of this school once the full institute is fully funded.