Search Contact
School of
Computer Science
and Communication

EL2310 Scientific Programming (7.5 ECTS)

Scientific Programming is a programming course tailored for the Systems, Control and Robotics program. The aim is to ensure that everyone can use MATLAB which will be used in many of the coming courses as well as to be able to program in C/C++. The examination of this course is through projects that should be solved individually. There is one project for MATLAB, one for C and one for C++. Each project is preceded by an optional lab that provides an additional opportunity to train before the project.

The themes for the projects are mainly from robotics. Over the past years, algorithms and methods such as path planning with potential fields and probabilistic road maps, scan matching and the control of robot manipulator arms have been investigated. Solving the projects requires not only the ability to program, but to analyse a problem and to go from a mathematical formulation to an algorithm and then to an implementation. Finally, and just as importantly, an evaluation should also be carried out to make sure that the implementation works as expected.

A full description for this course can be found in the KTH Course Catalogue.


The course has been developed and improved over several years by several people, including Patric Jensfelt, Carl Henrik Ek, Kai Huebner, Andrzej Pronobis, Florian T. Pokorny. Please provide feedback and let me know how we can further improve this course!


Virtual Machine

In order to provide an identical environment for all students working on the C and C++ projects, an Ubuntu virtual machine was prepared in VirtualBox. The VM has all the required tools preinstalled (gcc/g++/emacs/SDL etc.) and will be used to run the submitted project code for grading. You can download a RAR compressed VirtualBox VM here.

To use the virtual machine, download and install VirtualBox. Then, download and unpack the virtual machine and add it to VirtualBox using Machine->Add. To exchange files between the virtual machine (guest operating system) and your OS (host OS), use shared folders. More information about VirtualBox can be found here.


Details about labs, downloadable slides etc will be posted here as we proceed. Please check this website for updates to the schedule. Note that this course largely relies on your self-study and that the slides are mainly there to provide you with a frame of reference.