Introduction

This website hosts the instructions for the practical exercises of the “Robust Programming” computing training. Please use the arrows or the menu on the left to navigate between pages.

Goal

The aim of this training is to discover some of the software engineering concepts and methodologies and to practise using selected tools in order to write code that is better tested, better documented and easier to understand and maintain. We will cover:

  • automatic rule checks
  • documentation
  • tests
  • automation of workflows

Languages

For most practicals, Python and C++ versions of each exercise are provided. Unless otherwise stated, it is not expected that you complete both exercises (though you can if you are fast enough). The intent is rather that you pick the language you are most comfortable with, so that you can optimally focus on the new concepts introduced by this course.

For some exercises, you will find two tabs for each language:

print("Hello world")
#include <iostream>

int main() {
    std::cout << "Hello World";
    return 0;
}

Virtual machine

We deployed virtual machines in the cloud at VirtualData. To ensure that everyone works with the same environment during the practicals, it is strongly suggested that you do them on the Linux server that you have been given access. All instructions given in this document will assume that you are doing so, and may not work as expected on another computer. Simply connect to the virtual machine using ssh:

ssh <username>@<IP>

<username>, <IP>, and corresponding password will be given during the lecture. More information on the set up can be found on the platform section.