SWD3: Software Development Practices for Research

This course covers good practices for management of research code, projects, and teams.

This course introduces key techniques and concepts that professional software developers use to manage code, projects, and teams. While research software development has unique needs and challenges, many tools and techniques from commercial software development can be adapted to improve our Research Software Engineering practice.

This hands-on session includes discussion and small group activities. Although we’ll use Python to demonstrate software development concepts, the content applies regardless of your programming language.

Learning aims

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

Suitability

Research postgraduate students and staff from all faculties and research domains who want to improve their workflows for code-related projects.

Prerequisites

Duration

2 half day sessions 

Frequency

This course runs one to two times per year depending on demand.

How to Book

Booking for this course is through the IT Training Unit.

Bespoke Courses

Want us to deliver a bespoke version of this course in your department?

Submit a Research Computing Query (login required) and we’ll be in touch to discuss your requirements.