SWD3: Software development practices for Research
Booking for this course is through the IT Training Unit.
Click here to book
Suitability
Research postgraduate students and staff from all faculties and research domains who want to improve their workflows for code-related projects.
Workshop content
The purpose of this workshop is to introduce a number of the techniques and concepts that professional software developers use to manage their code, projects and teams. Although the development of research codes and software has different needs and challenges to the development of commercial software, there are nonetheless some tools and techniques that we can adopt or adopt to improve our Research Software Engineering. This will be a hands-on session with lots of discussion and small group activities.
While we will use Python as our example language to work through an example of software development; however, the concepts and content covered will be relevant regardless of what language you use for computation.
At the end of the workshop, attendees will understand:
- The difference between reproducibility and reusability of code, and how both contribute to robust research;
- Strategies to manage dependencies for their projects to ensure reusability and reproducibility;
- How to leverage version control and semantic versioning to share specific versions of their code;
- Licensing of open source software;
- How to enable easy citation of your software;
- Testing of research code: theory and strategies;
- Publishing code alongside research results
This course includes practical exercises and hands-on coding that you will be guided through.
Prerequisites
- We will contact you ahead of the course to confirm any required software installation (all software will be available for user install, so no admin rights required)
- Basic familiarity with the Linux command line.
- If you lack familiarity with command line Linux, please consider taking the following first: HPC0: Introduction to Linux for HPC
- Basic familiarity with git.
- If you lack familiarity with git, please consider taking the following first: SWD2: Version control as a tool for reproducible research (with git and GitHub)
Duration
2 half day sessions
Frequency
This course runs one to two times per year depending on demand. If you would like a bespoke version of this course run in your department then please contact us.