Programming 1 and 2, and Mathematics for Computer Scientists 1 and 2 or comparable courses in mathematics are recommended.
Successful completion of the exercise sheets entitles to take part in the exam.
Will be determined from performance in exams, exercises and practical tasks. The exact modalities will be announced at the beginning of the module.
2 h lectures + 2 h tutorial = 4 h (weekly)
60 h of classes + 120 h private study = 180 h (= 6 ECTS)
Students get to know the most important methods of designing algorithms and data structures:
divide-and-conquer, dynamic programming, incremental construction, "greedy algorithms", decimation, forming hierarchies, randomization. They learn to analyze algorithms and data structures for their time and space requirements with respect to the usual RAM machine model and to compare them on this basis. Various kinds of analysis are considered (worst case, amortized, expected case).
Students get acquainted with important efficient data structures and algorithms. They should acquire the ability to apply theoretial analyses and considerations to given methods in order to check their applicability to actually occuring scenarios. Moreover, students should school their skills in developing or adjusting algorithms and data structures with performance guarantees in mind.
Will be announced before the start of the course on the course page on the Internet.
This module is identical in content to the German-language module Grundzüge von Algorithmen und Datenstrukturen.
This module is part of the following study programmes: