Algorithmen und Datenstrukturen
Vorlesung im Sommersemester 2011
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 14.04.2011 statt. Die Vorlesung am 12.4.2011 entfällt.
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 Prüfungstermine sind:
- 22.7. um 10:15 (Einlass ab 10:00) in RUD26 0'115
- Wiederholungstermin 25.8. um 10:15 (Einlass ab 10:00) in RUD26 0'110
- Die Anmeldung erfolgt über Agnes
Liste der zugelassenen und angemeldeten Studenten
In dieser Liste stehen die Matrikelnummern aller Studenten die mindestens 120 Punkte in den Übungen erreicht haben, und sich bereits über Agnes angemeldet haben. Wenn Sie ihre Matrikelnummer auf dieser Liste vermissen, melden Sie sich bei ihrem zuständigen Übungsgruppenleiter.
179937 | 194367 | 196800 | 197003 | 502087 | 503292 | 516273 | 518332 |
527151 | 527162 | 527169 | 528459 | 529568 | 531588 | 531605 | 531967 |
532021 | 532115 | 532153 | 533030 | 533269 | 533440 | 533591 | 533861 |
534118 | 534348 | 534678 | 535000 | 535084 | 536911 | 537224 | 537231 |
537472 | 537554 | 537587 | 538171 | 538226 | 538306 | 538374 | 538378 |
538382 | 538465 | 538606 | 538664 | 538670 | 538731 | 539049 | 539120 |
539127 | 539148 | 539163 | 539219 | 539242 | 539268 | 539272 | 539320 |
539463 | 539599 | 539658 | 539659 | 539678 | 539690 | 539748 | 539768 |
539785 | 540727 | 540755 | 540789 | 540812 | 540825 | 541118 | 541130 |
541889 | 542541 | 542561 | 542696 | 543353 | 543474 | 543843 |
Anrechnung
Das Module (Vorlesung + Übung) kann angerechnet werden für
- Monobachelor Informatik, (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
Evaluation
Auf dem Evaluationsportal der Humboldt-Universität können Sie die Vorlesung und Übungen bewerten. Wir bitten Sie, dies auch zu tun - Ihr Feedback wird Beachtung finden.
Themen der Vorlesung
Die Folien werden hier jeweils nach der Vorlesung als PDF erhältlich sein.
- Einführung
- Abstrakte Datentypen
- Komplexität von Algorithmen
- Ein Problem, viele Algorithmen: MaxSubArray
- Listen und Iteratoren
- Anwendungen von Stacks und Queues (korrigierte Fassung, 11.5.2011)
- Einfache Sortierverfahren; Mergesort
- Quicksort, Radix-Exchange-Sort, Bucketsort
- Suchen und das Auswahlproblem
- Priority Queues
- Selbstorganisierende Listen
- Hashing
- Offene Hashverfahren
- Bäume (korrigierte Fassung, 3.7.2011)
- AVL-Bäume
- Optimale Suchbäume und Tries
- Graphen
- Floyd-Warshall Algorithmus; starke Zusammenhangskomponenten
- Minimale Spannbäume
- Abschluss
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