Home » Scientific software development toolbox, 2016

Scientific software development toolbox, January 25-29, 2016

General aims of the course

The aim of this course is to demonstrate and familiarize the students with best practices and tools in modern scientific software development. The main focus is on professional tools for developing and maintaining scientific software efficiently. Since most scientific programs are developed in a collaborative setting, we will discuss tools and workflows which facilitate this process. But also for a single-person development the demonstrated tools will prove invaluable.

Course contents

  • Distributed version control with Git
  • Collaborative web-based development with GitHub
  • Working with Jupyter notebook
  • Test-driven development
  • Continuous integration
  • Expressing dependencies with make
  • Building portable software with CMake
  • Profiling and code optimization toolbox
  • Controlling complexity with functional programming
  • Debugging toolbox
  • Modular programming and mixed-language development
  • Code documentation
  • Software packaging, distribution, and release mechanism
  • Survival guide for working with legacy code
  • Software licensing


  • Basic knowledge of the Linux/Unix shell.
  • Basics in at least one interpreted language (example: Python or Julia or Matlab).
  • Basics in at least one compiled language (example: C or C++ or Fortran).
  • You will need to bring a laptop.

More information

For more information and timetable please follow http://toolbox.readthedocs.org.

Timetable and room

The course consists of one week preparation time, one week lectures (Jan 25-29, 2016) with exercises and one week project work. The course will take place in room 304 at Plan 3, Teknikringen 14 at the KTH campus in Stockholm.


Contact and questions

Radovan Bast (firstname.lastname@uit.no).


5 points.


The registration is closed.