252-0026-00L Algorithms and Data Structures
Semester | Autumn Semester 2022 |
Lecturers | M. Püschel, D. Steurer |
Periodicity | yearly recurring course |
Language of instruction | German |
Abstract | The course provides the foundation of the design and analysis of algorithms. The material is introduced using classical algorithmic problems including graph problems. The necessary basic introduction to graph theory is provided as part of this course. |
Learning objective | An understanding of the design and analysis of fundamental algorithms and data structures. A basic understanding of graph theory and several basic graph algorithms. |
Content | This course is an introduction into the design and analysis of algorithms. On the one hand this includes classical algorithm design patterns including induction, divide-and-conquer and dynamic programming. We study these using classical example such as searching and sorting. On the other hand the course covers the interaction between algorithms and data structures including linked lists, search trees, heaps, and union-find structures. A particular focus are graph algorithms for shortest path and minimal spanning tree problems. We provide the necessary introduction into graph theory as part of this course. |
Lecture notes | A complete script in German is under development. A complete draft is already available on the course website. |
Literature | Abgesehen vom Skript und Vorlesungsunterlagen empfehlen wir die folgenden Bücher als zusätzliches Nachschlagewerk. Th. Ottmann, P. Widmayer: Algorithmen und Datenstrukturen, Spektrum-Verlag, 5. Auflage, Heidelberg, Berlin, Oxford, 2011 Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein: An Introduction to Algorithms, 3rd edition, MIT Press, 2009 |