Research Software Development Workshop for Maths PhD Students

Posted by s.aragon on 28 February 2019 - 9:46am
DweXn1bXcAA8hhg.jpg
Photo courtesy of Geraint Palmer.

By Geraint Palmer, Nikoleta Glynatsi, and Vincent Knight.

On the 8th and 9th of January 2019, three Fellows of the Software Sustainability Institute (Vincent Knight (2016), Nikoleta Glynatsi (2017), and Geraint Palmer (2018)) delivered an annual Research Software Development Workshop for PhD students are the School of Mathematics, Cardiff University. This is the second year the event has ran. In a similar way to the Software Carpentry workshops, its aim is to raise awareness of sustainable software development concepts and their application to the research environment, for mathematics PhD students entering academia.

This year seven new or returning PhD students enjoyed the two-day workshop, which was a lot of fun. The course content can be found on the workshop page.

The first morning covered concepts of automation and reduction of human error: communicating with your computer by using the command line. The afternoon was then concerned with becoming aware of and comfortable with best practices in some everyday tools for mathematicians: programming and communicating work with LaTeX.

The programming concepts that we focussed on were:

  • Documentation: ensuring code is readable by using appropriate comments and variable names,

  • Modularity: breaking down code into manageable and readable functions and modules,

  • Testing: ensuring each modular component works as expected on a subset of cases.

 

image1_15.png

For LaTeX the focus was on reducing human error by reading in research assets exported directly from software.

Next day’s morning introduced version control with Git, and collaboration with GitHub and finally the workshop rounded off with a mini project. Here the students teamed up to put into practice all the concepts and tools they had discovered over the course of the workshop. One group worked on investigations intro the Fibonacci sequence, while the other investigated numerical solutions of differential equations. They combined writing code using best practices, version control, collaboration in GitHub, and best practice in LaTeX to produce a piece of research. This was a nice opportunity to focus entirely on implementing sustainable software and reproducible research concepts in an open supportive environment.

Overall, the workshop was a lot of fun. We hope that students will have taken away ideas around how to organise their workflows to facilitate reproducible research. The workshop will run again in subsequent years, and in fact we open places up for returning students who might want to refresh their minds and practice their skills too.