As research increasingly depends on software, adopting effective development practices can help you produce work that is reliable, reusable, and easier to maintain. This course introduces practical techniques used by professional developers and shows how they can be adapted to strengthen everyday Research Software Engineering practice.
You’ll explore tools and approaches that help you write more reusable code, manage projects more effectively, and collaborate with others with far fewer headaches. Although examples use Python, the concepts apply to any programming language.
This is a hands‑on workshop with guided discussion and small‑group activities.
Learning aims
By the end of this workshop, you will understand how to:
- Distinguish reproducibility from reusability, and why both matter for robust research.
- Manage project dependencies so your work is reliable, portable, and future‑proof.
- Use version control and semantic versioning to share and cite specific, stable versions of your code.
- Choose and apply open‑source licences that clarify how your software can be reused.
- Enable software citation to give proper credit and improve research transparency.
- Apply core principles of testing to ensure your code behaves as expected.
- Publish code effectively alongside research outputs.
Suitability
This course is for research postgraduate students and staff from any faculty who want to improve how they develop, structure, and share code in their projects.
Prerequisites
- We will contact you before the course to confirm any required software installation or cloud‑based access.
- Basic familiarity with the Linux command line (covered in HPC0: Introduction to Linux for HPC).
- Basic familiarity with Git (covered in SWD2: Version control as a tool for reproducible research).
When and where
This course is delivered over two half‑day sessions, one in person and one online.
- Session 1: Fri 5 June, 10:00–13:00 (In person) — Worsley LIDA (11.06)
- Session 2: Fri 12 June, 10:00–13:00 (Online)
How to book
Booking for this course is made via the IT Training Unit.



