Research Software Development Workshop for Maths PhD Students
Posted on 28 February 2019
Research Software Development Workshop for Maths PhD Students
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.
A fun two days running a two day workshop on research software development for @MathsCU postgraduate students with @NikoletaGlyn and @GeraintPalmer. pic.twitter.com/kHmCPnxOQC
— Vince Knight (@drvinceknight) January 9, 2019This 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.
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.