DE

Modul

Algorithm Engineering [M-INFO-100795]

Credits
5
Recurrence
Jedes Sommersemester
Duration
1 Semester
Language
German/English
Level
4
Version
3

Responsible

Organisation

  • KIT-Fakultät für Informatik

Part of

Bricks

Identifier Name LP
T-INFO-111856 Algorithm Engineering Pass 1
T-INFO-101332 Algorithm Engineering 4

Competence Goal

The students acquire a systematic understanding of algorithmic problems and solution approaches in the field of Algorithm Engineering, building on existing knowledge in the subject area of algorithms. In addition, they will be able to apply learned techniques to related problems and interpret and comprehend current research topics in the field of Algorithm
Engineering.

Upon successful completion of the course, the student will be able to
• Explain terms, structures, basic problem definitions, and algorithms from the lecture;
• select which algorithms and data structures are suitable for solving an algorithmic problem and, if necessary, adapt them to the requirements of a specific problem;
• Execute algorithms and data structures, analyze them mathematically precise and prove the algorithmic properties;
• Explain machine models from the lecture and analyze algorithms and data structures according to these models
• Analyze new problems from applications, reduce them to their algorithmic core and create a suitable abstract model; based on the concepts and techniques learned in the lecture, design and analyze own solutions in this model, and prove algorithmic properties in this model.

Prerequisites

There are two partial achievements Algorithm Engineering and Algorithm Engineering Exercises. The partial achievement Algorithm Engineering Exercises must be started to be allowed to take the oral examination for Algorithm Engineering.

Content

• What is Algorithm Engineering, Motivation etc.
• Realistic modeling of machines and applications
• practice-oriented algorithm design
• implementation techniques
• experimental techniques
• evaluation of measurements


The above skills are taught primarily using concrete examples. In the past these were for example the following topics from the area of basic algorithms and data structures:


• linked lists without special cases
• sorting: parallel, external, superscalar,...
• priority queues (cache efficient,...)
• search trees for integer keys
• Full text indexes
• graph algorithms: minimal spanning trees (external,...), route planning


In each of these cases, the focus is on the best known practical and theoretical methods. These usually differ considerably from
from the methods taught in beginners' lectures.

Workload

Lecture and exercise with a combined 3 semester hours, 5 ECTS

5 ECTS correspond to about 150h of work, split into

about 45h visiting lectures and exercise or block seminar

about 25h preparation and follow-up on lectures

about 40h solving exercise tasks (programming, preparing presentation for mini seminar, etc)

about 40h exam preparation