CodeRefinery workshop in Reykjavik

Teaching researchers in sustainable software development

August 21-23, 2018, 9:00 am to 5:00 pm

Registration is closed
More information about the registration procedure.



Hands-on informal and interactive three-day event with type-along type of presentations, live coding and demos. Short tutorials alternate with practical exercises.

Software requirements

Please follow the links below and make sure that you install all the required software packages (why we ask you to do this). Note that, e.g., a working Python executable on your laptop is not sufficient - a version greater than 3.4 is strongly recommended and a number of extra packages need to be installed as detailed on the Python installation page.

  • Bash
  • Editor
  • Git
  • Python
  • (optional) Visual diff tools
  • Make
  • Jupyter
  • Snakemake
  • (optional) Docker
  • Schedule

    Tuesday, August 21 Wednesday, August 22 Thursday, August 23


    Tæknigarður, room 227 (2nd floor), University of Iceland.


    9:00 am to 5:00 pm


    Free of charge.

    Course goals

    The aim of this course is to demonstrate to and familiarize the workshop participants with best practices and tools in modern research software development. The main focus is on professional tools for efficiently developing and maintaining research software. Since most research code is developed in a collaborative setting, we will discuss tools and workflows which facilitate this process. Most of the content is also relevant to a single developer.

    Note that a workshop covering HPC topics will be held on June 13-15, see Nordic High Performance Computing & Applications Workshop. While both are funded by NeIC, the topics and trainers are different.

    Who the course is for

    Are you doing any of these things below:

    • You write scripts to process data.
    • You change scripts written by your colleagues.
    • You write code that is used in research by you or others.

    If yes, then this course is for you. Most participants are not "professional code developers" or computer scientists.

    If you develop research code and you know all the tools already, join us as a helper! It's fun, and you always learn something new about a subject by teaching it.

    What we will not teach

    This is not a course about a specific programming language or the Linux/Unix terminal shell. We assume that you are familiar with the programming language that you use in your work and research. We try to keep the course as language-independent as possible but we will show some basic code examples in Python.


    • You should be able to navigate the file tree in a terminal session and edit text files in the terminal.
    • Basics in at least one programming language.
    • You will need to bring a laptop.
    • It is good if you have access to Eduroam.
    • You need to install some software. Please follow links in the schedule.
    • It is useful if you have a basic idea of how Git works. We will start from the basics, but please go through this Git-refresher material for a basic overview and important configuration steps.


    • Radovan Bast
    • Bjørn Lindi
    • Kjartan Thor Wikfeldt


    (tips for helpers)

    • TBA


    CodeRefinery is a project within the Nordic e-Infrastructure Collaboration (NeIC). NeIC is an organisational unit under NordForsk.

    GitHub and Twitter


    Radovan Bast
    High Performance Computing Group
    UiT The Arctic University of Norway
    +47 776 44117