Home » Scientific software development toolbox

Scientific software development toolbox

General aims of the course

The aim of this course is to demonstrate and familiarize the students with the best available tools and best practices 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 and Mercurial
  • Collaborative web-based development with GitHub, Gitlab, and Redmine
  • Working with IPython
  • Testing: Unit tests, regression tests, 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


  • Basic knowledge of Linux/Unix shell.
  • Basics in at least one interpreted language (example: Python).
  • Basics in at least one compiled language (example: C or C++ or Fortran)
  • You will need to bring a laptop and you will need access to eduroam or KTH wireless.
  • We will post here installation instructions for software that you will need.

More information

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

Timetable and room

The course consists of one week preparation time, one week lectures with exercises and one week project work.

Lectures will start Monday December 1, 2014 at 11:00 and end Friday December 5, 2014 at 12:00. We will start every day at 9:00 (except Monday) and finish at 17:00 (except Friday). Every day we will have four lessons and an exercise session. The course will take place in room 304 at Plan 3, Teknikringen 14 at the KTH campus in Stockholm.


Contact and questions

Radovan Bast (bast at kth.se), phone: +46-8-790-6628.


5 points.


The registration to the course is closed.