Algorithmen und Datenstrukturen
Vorlesung im Sommersemester 2013
Professor Ulf Leser
Die Vorlesung behandelt klassische Themen aus den Bereichen Algorithmen und Datenstrukturen. Betrachtete Probleme sind z.B. Sortieren, Suchen in Strings, Listen, und Bäumen, Patternmatching und Wegesuchen in Graphen. Die verschiedenen Verfahren werden ausführlich dargestellt und in ihrer Komplexität analysiert. An ausgewählten Beispielen werden Korrektheitsbeweise durchgeführt. Durch die Vorlesung lernen Studierende grundlegende Algorithmen, effiziente Datenstrukturen und eine Reihe von Entwurfstechniken kennen und sind in der Lage, für ein gegebenes algorithmisches Problem verschiedene Lösungsansätze bzgl. ihrer Effizienz zu beurteilen und den am besten geeigneten Ansatz auszuwählen.
Die erste Vorlesung findet am Montag, den 8.4.2013, statt.
Die Vorlesung wird durch eine Übung begleitet. Die Einschreibung in GOYA erfolgt ausschließlich über die Übungen.
Voraussetzungen
Voraussetzung für den Besuch sind gute Kenntnisse in Java.
Prüfungen
Das Modul wird mit einer Klausur abgeschlossen. Voraussetzung zur Zulassung ist die Erreichung von mindestens 60% der Punkte in der Übung. Die Klausurtermine sind:
- Dienstag, 16.7.2013, 9-12 (Raum 0'110 und 0'115)
- Montag, 16.9.2013, 9-12 (Raum 0'115)
Die Ergebnisse der 1. Klausur sind dem Aushang im Flur vor Raum 4.402 (Rud 25) zu entnehmen.
Fragestunde
Für die 2. Klausur wird es auch wieder eine Fragestunde für die Studierenden geben. Hier können Fragen zum Stoff der Vorlesung und der Übung gestellt werden.
Termin: Montag, 9. September, 13 Uhr c.t. Raum 3.113 (Rud 25).
Anrechnung
Das Modul (Vorlesung + Übung) kann angerechnet werden für
- Monobachelor Informatik (typischerweise im zweiten Semester, 9 SP)
- Monobachelor INFOMIT (typischerweise im zweiten Semester, 9 SP)
- Kombibachelor Informatik, Kern- und Zweitfach (typischerweise im vierten Semester, 9 SP)
- Für einige Fächer auch im Beifach Informatik
Literatur zur Vorlesung
- Ottmann, Widmayer: Algorithmen und Datenstrukturen, Spektrum Verlag
- Saake, Sattler: Algorithmen und Datenstrukturen (mit Java), dpunkt.Verlag
- Sedgewick: Algorithmen in Java: Teil 1 - 4, Pearson Studium
- Cormen, Leiserson, Rivest, Stein: Introduction to Algorithms, MIT Press
Themen der Vorlesung
Die Folien werden hier jeweils nach der Vorlesung als PDF erhältlich sein.
- Einführung
- Maschinenmodell und O-Notation
- (Abstrakte) Datentypen
- MaySubArray - ein Problem, viele Lösungen
- Listen
- Anwendungen von Listen
- Sortieren: Einfache Verfahren und untere Schranke
- Merge Sort und Quick Sort
- Radix Sort und Bucket Sort
- Suchen und Selektieren
- Selbst-Organisierende Listen
- Amortisierte Analyse (von SOLs)
- Priority Queues
- Hashing - Einführung
- Open Hashing (korrigiert, 14.7.13)
- Suchbäume
- AVL-Bäume
- Optimale Suchbäume; Tries
- Graphen
- Transitive Hülle, Floyd-Warshall und Starke Zusammenhangskomponenten
- Minimal Spanning Trees
Interessante Links
- Intuitive Erklärungen vieler (eher einfacher) Algorithmen
- Sorting as Dancing: Eindrucksvolle Demonstration elementarer Sortierverfahren
- Buch von Sedgewick, R.,"Algorithms in Java", als ebook
- Umfassende und gute Erklärung zur Amortisieren Analyse mit einer Vielzahl weiterer Beispiele