de | en

Advanced Programming

Modul IN1503

Dieses Modul wird durch Fakultät für Informatik bereitgestellt.

Diese Modulbeschreibung enthält neben den eigentlichen Beschreibungen der Inhalte, Lernergebnisse, Lehr- und Lernmethoden und Prüfungsformen auch Verweise auf die aktuellen Lehrveranstaltungen und Termine für die Modulprüfung in den jeweiligen Abschnitten.

Modulversion vom SS 2012

Von dieser Modulbeschreibung gibt es historische Versionen. Eine Modulbeschreibung ist immer so lange gültig, bis sie von einer neuen abgelöst wird.

verfügbare Modulversionen
WS 2017/8SS 2012WS 2011/2


IN1503 ist ein Semestermodul in Englisch auf Master-Niveau das im Wintersemester angeboten wird.

Das Modul ist Bestandteil der folgenden Kataloge in den Studienangeboten der Physik.

  • Allgemeiner Katalog der nichtphysikalischen Wahlfächer
GesamtaufwandPräsenzveranstaltungenUmfang (ECTS)
150 h 60 h 5 CP

Inhalte, Lernergebnisse und Voraussetzungen


- von-Neumann architecture; definition of algorithms; machine languages: compiler, linker, and interpreter; machine code
- variables, identifiers & expressions; comments & documentation; built-in datatypes, expressions, and assignments
- control structures, branches & scopes; while loops
- functions & functional programming; call-stack and the memory layout; call-by-reference, call-by-value, and call-by-const-reference; overloading; recursion
- applicative programming; source code organisation and the C precompiler; namespaces; for loops; enumerations
- pointers and arrays; dynamic memory allocation; structs
- dynamic data structures; simple sorting algorithms as demonstrator use case; algorithm complexity
- object-based programming; functions vs. operations; constructors and destructors; const operations
- object-oriented programming; polymorphism & inheritance
- type-generic programming


At the end of the module, students have a sound expertise in C/C++. They are able to remember and explain the underlying machine behaviour and the corresponding efficiency aspects. The participants can describe the C/C++ instruction set and, in particular, can distinguish the impacts and effects of high level language constructs on the machine level.
They are able to define and illustrate the fundamental programming paradigms and how they are represented by the C/C++ language. The students are able to analyse and apply these techniques for real-world challenges and to design, realise, and verify the implementation of considerably complex applications in an efficient manner.


Sound programming skills in one of the standard programming languages (such as Java, Python, Fortran, C/C++) are expected, experiences with an object-oriented programming language will be helpful.

Lehrveranstaltungen, Lern- und Lehrmethoden und Literaturhinweise

Lehrveranstaltungen und Termine

Lern- und Lehrmethoden

This module comprises lectures and accompanying tutorials. The contents of the lectures will be taught by talks and presentations.
Students will be encouraged to study literature and to get involved with the topics in depth. In the tutorials, concrete problems will be solved - partially in teamwork - and selected examples will be discussed.


Slides, whiteboard, exercise sheets


- Randall Hyde. Write Great Code I: Understanding the machine
- Randall Hyde. Write Great Code II: Thinking Low-level, Writing High-level
- Scott Meyers. Effective C++
- Scott Meyers. More Effective C++
- Walter Savitch. Absolute C++
- Bjarne Stroustrup. The C++ Programming Language


Beschreibung der Prüfungs- und Studienleistungen

Type of Assessment: written exam (90 minutes)

In the exam students should prove to be able to identify a given problem and find solutions within limited time. The examination will completely cover the content of the lectures. The answers will require own formulations. In addition, questions requiring short calculations and/or programming tasks may be posed. Questions on advanced aspects in C/C++ assess the students' knowledge on efficiency aspects. The definition and illustration of fundamental programming paradigms are tested with various assignments. Tasks on small code snippets allow to evaluate the participants' capability to formulate and/or verify the implementation of applications in an efficient manner.


Eine Wiederholungsmöglichkeit wird am Semesterende angeboten.

Nach oben