Scientific Programming
This website aims to be a self contained basics course designed for scientists who need to do some programming as part of their research. The topics covered are:
Containerisation - How can a team of developers, often working remotely from one another set up a consistent environment for developing their software? If you have ever been sent code by someone and not been able to run it, this section is for you… We will show you how to configure a container to run a C/C++ or Python application using Docker.
Version Control - No longer will you have 5 versions of your code in a folder with names like ‘main-working-18-04-2017.cpp’, ‘main-not-working-16-08-2018.cpp’… We’ll teach how to set up a history of code development using the tool Git.
Continuous integration and Testing - If you make a change to your code, how do you know that it’s not broken? If you’ve ever come to use a part of your code and realised that it no longer works because you changed something else, this will be useful to you. We will teach you how to write appropriate tests for scientific codes, and show you how to set up a continuous integration system for Git repositories.
Documentation - What makes good documentation? At a minimum, what should the requirements be? In this, we’ll go through some examples and talk about and show some of the tools for documenting software.