Oxford Research Software Engineering Group
Oxford Research Software Engineering Group Software Engineering Course

Course sessions

0

Course Introduction

Why software engineering matters in research, how the course is structured, and where modern tooling and AI fit in.

1

Tue 20 Oct09:30

Object-Oriented Programming

How to use classes to encapsulate data and behavior, and how inheritance and composition can make code more maintainable.

2

Tue 20 Oct14:00

Functional Programming

Core functional programming concepts, including pure functions, immutability, and higher-order functions.

3

Tue 27 Oct09:30

Version Control with Git

A practical Git foundation for safer collaboration, reproducibility, and confident control over changes in your code.

4

Tue 27 Oct14:00

Collaborative Code Development

Working effectively with branches, pull requests, issue trackers, and code review in shared repositories.

5

Tue 03 Nov09:30

Software Testing

Strategies for how to test effectively to improve reliability, including unit and integration testing, and test-driven development.

6

Tue 03 Nov14:00

Continuous Integration

Setting up automated testing and quality checks with continuous integration tools to catch issues early and maintain code health.

7

Tue 10 Nov09:30

Packaging and Dependency Management

How to package and manage dependencies so software stays reusable and distributable.

8

Tue 10 Nov14:00

Containerisation with Docker

Using Docker to package applications and environments consistently across development, CI, and deployment.

9

Tue 17 Nov09:30

Introduction to HPC

An introduction to high-performance computing concepts, architectures, and use-cases.

10

Tue 17 Nov14:00

Workflows with Snakemake

Building reproducible computational workflows with rules, dependencies, and easy scalability.