Introduction to GPU programming
Test Driven Development
Introduction to Version Control
Optimisation of a function
More Data Analysis in Python with Pandas
Data Analysis in Python with Pandas
Build Systems and Packaging
Getting ORGanised
What's the deal with Python 3?
Working with others
Project Structure
Introduction to Version Control
Writing Good Research Software
Floating Point Numbers
What, more Fast Fourier Transforms?
Hands on Object-Oriented Programming
Object-Oriented Programming
Modern C++
Common Lisp - The programmable programing language
What is a Fast Fourier Transform (FFT)?
Using the terminal effectively
Using Python for shell scripts
Meltdown and Spectre
Code Games
Python packaging
Installing Software on Linux
Installing Software on Linux
Working with remote computers
Getting started with version control
Introduction to Jupyter Notebooks
Mixing languages
Practical software design and style
Managing your software project
Introduction to Makefiles
Data Visualisation II
Data Management
GNU Coreutils
Searching for Answers in a Text-Based Universe
Test driven development
How to do everything in Emacs
Python for scientific calculations
What is a CPU?
Tests and testing
Version control