Uni-Logo
Algorithms and Complexity
 


Algorithmen und Datenstrukturen
Sommersemester 2024
Fabian Kuhn

 



Kursbeschreibung

Die Vorlesung widmet sich dem Entwurf und der Analyse von Algorithmen. Dabei werden die grundlegenden Algorithmen und Datenstrukturen besprochen. Unter anderem behandeln wir die folgenden Themen: Sortieren, Suchen, Hashtabellen, Suchbäume, (Prioritäts-)Warteschlangen, Graphenalgorithmen (z.B. kürzeste Wege, Spannbäume, Breiten- und Tiefensuche).



Ablauf der Vorlesungen

Die Vorlesung ist Wöchentlich am Dienstag den 16.04.2022 von 10:15 bis 12:00 Uhr im Gebäude 101 Hörsaal 00-026. Folien und Vorlesungsaufzeichnungen sind hier zu finden: Vorlesungsaufzeichnungen und -folien


Zulip ist eine Mischung aus Forum und Instant Messanger auf dem alle Fragen rund um Vorlesung geklärt werden können. Daten für den Zulip Server finden Sie demnächst ebenfalls auf dieser Website. Bitte beachten Sie auch hier, dass dieser Link nur innerhalb des Uni-Netwerkes funtkioniert.


Übungen

Abgabezeitpunkt der Übungsblätter ist jede Woche bis Dienstag 10:00 Uhr

Jeden Donnerstag ab 14:15 Uhr (beginnend am 25.04.24) findet ein freiwilliges Präsenztutorat in Gebäude 101 Hörsaal 00-026 statt.


Thema Abgabe Aufgaben Lösungen

Sortieralgorithmen 30.04 Übungsblatt 01, MergeSort.py Lösung 01, MergeSort.py, Makefile
O-Notation 30.04 Übungsblatt 02 Lösung 02
Sortieren in Linearzeit 07.05 Übungsblatt 03, BucketSort.py, RadixSort.py, Queue.py, ListElement.py Löung 03, BucketSort.py, RadixSort.py
Kollisionsauflöung 14.05 Üungsblatt 04 Lösung 04
Hashfunktionen 28.05 Üungsblatt 05

Richtlinien zur Abgabe der Übungsblätter

Die Übungen werden online mit dem Kursverwaltungssystem Daphne durchgeführt. Es wird dabei meist einen theoretischen Teil und einen praktischen Teil geben.

Laden sie Ihre theoretischen und praktischen Lösungen immer in Ihr SVN Repository hoch, und zwar in einen Unterordner mit dem Namen uebungsblatt-XY wobei XY die aktuelle Nummer des Übungsblattes angibt (mit führender Null falls die Nummer einstellig ist). Mehr Details gibt es hier.

Ihre praktischen Lösungen müssen direkt in uebungsblatt-XY hochgeladen werden (und nicht in einen weiteren unterordner) damit Jenkins diese findet. Nach der Deadline des entsprechenden Übungsblattes XY sind keine Änderungen mehr am Unterordnet uebungsblatt-XY mehr möglich.

Laden Sie Ihre theoretischen Lösungen als (einzelnes) PDF in den entsprechenden Unterordner uebungsblatt-XY. Am liebsten sind uns theoretische Lösungen die mit Latex angefertigt wurden. Word oder andere Zeichensetzungsprogramme sind OK. Scans müssen gut lesbar sein!

Die hier verlinkte Übersicht beschreibt die typischen Schritte die Sie für die Abgabe der praktischen Lösung durchführen sollen.

Information zur Abgabe in Übungsgruppen: Eine gemeinsame Abgabe in Gruppen von bis zu vier Personen ist erlaubt. Um eine Übungsgruppe zu bilden, senden Sie bitte eine Mail an Gustav Schmid mit dem Betreff AD-Gruppe, welche ausschließlich die RZ-Kürzel der Gruppenmitglieder enthält. Bitte beachten Sie, dass jedes Gruppenmitglied die Lösungen in seinen SVN-Ordner laden muss. Bitte teilen Sie zudem Ihrem Tutor in der file erfahrungen.txt Ihre Gruppenpartner mit.


Übungsklausuren

Hinweis: Die folgenden Klausuren stammen vom Kurs "Informatik 2" welcher ähnlich aber etwas umfangreicher war. Die Themen der Klausur "Algorithmen und Datenstrukturen" könen leicht abweichen.


Lehrmaterial

  • Introduction to Algorithms (3rd edition); T. Cormen, C. Leiserson, R. Rivest, C. Stein; MIT Press, 2009
  • Algorithmen und Datenstrukturen (5. Auflage); T. Ottmann und P. Widmayer; Spektrum Akademischer Verlag, Heidelberg, 2012
  • Algorithms and Data Structures; K. Mehlhorn und P. Sanders; Springer, 2008, online verfügbar
  • Links zu Vorlesungen mit Aufzeichnungen auf MIT Courseware:
    Introduction to Algorithms 2005    und    Introduction to Algorithms 2011