Advanced (practical) Programming (for scientists)

Things you never dared to asked, things you never wanted to know about programming.

When? Where?

Time:Fr, 12:00-14:00
Room:MA 749
Duration:17.10.2014 - 13.02.2015
Veranstaltungsnr.3236 L
Length2 SWS
Credits5 LP (ECTS)
ExpectedRegular attendance, completion of homework assignments
Grade/ExamPart of the later homework will be a small programming project. Grades will be devised from the results
ModulFortgeschrittene Themen der Algorithmischen Diskreten Mathematik


Prof. Dr. Thorsten Koch
Matthias Miltenberger


COMA and/or good knowledge of at least one programming language, preferably C/C++.
ADM I helpful but not necessary.
This course is intended for master and (advanced) bachelor students.
Particpants need a computer running Linux/Mac OS-X (you can try Windows, but you will be on your own).


Lecture will be in German or English depending on the participants.


Everyone knows that debugging is twice as hard as writing a program in the first place.
So if you're as clever as you can be when you write it, how will you ever debug it?

-- Brian Kernighan

The main focus will be on how to design and develop correct, maintainable, and well performing scientific software. Given that typically quite some time is used for debugging it is unfortunately still the case that many programs are not correct. If a scientific program produces the wrong result, it does not matter how fast this is done. By using good design and programming styles it is possible to reduce the time for debugging considerably, while still maintaining higher hopes for correctness.

The lecture, will also give an introduction to the kind of tools that should be used in software development today. While very popular, writing correct programs was never one of the design goals of C/C++. We will investigate languages that aim to provide more help in this regard and allow even to some degree proofs of correctness.

Planned Topics (subject to change)

Slides and Exercises

Please submit a pull request on GitHub/GitLab for your code - the submissions will then be tested for correctness

Literature / Resources

Related stuff

Contact: Thorsten Koch
© 2014 by Thorsten Koch, Imprint, Last Update 18. Dec 2014