The Oxford RSE group offers training in the following areas. Our events page lists upcoming scheduled courses, you can also contact us to arrange one-off bespoke training for your group.

Scientific Python

Introduction to Python: syntax; built-in data types; using data structures; functions. Creating and using modules. Container types. The Python Standard Library. Error handling with exceptions. Classes and object-oriented programming. Numerical programming with numpy.

This is a two-day class.

Version Control with git

Concepts of version control. Command-line use of git. Detecting and resolving conflicts. Collaborative development using GitHub, branches, and pull requests.

A one-day class.

Introduction to C++

Introduction to C++: basic types, flow control, input/output pointers, references, dynamic memory allocation and arrays, functions, classes and object-oriented programming, templates and the Standard Template Library, Exceptions

This is a 4-5 day class

Modern C++

Overview of language and library evolution since 2011. Standard algorithms. Smart pointers. Lambda functions. The filesystem library. Refactoring legacy C++.

A one-day class.

Research Software Engineering

Requirements engineering. Software architecture. Automated testing and continuous integration. Building and deploying software. Object-oriented analysis and design. Using IDEs. Refactoring. Open source software and software citation.

A five-day class, that also recaps material from the Python and Version Control classes.