Uni-Logo
Algorithms and Complexity
 


Algorithmen und Datenstrukturen
Sommersemester 2024
Fabian Kuhn

 



Nachholklausur

    Klausur:
  • Datum: 12.03.2025 - Klausurbeginn c.a. 14:00 Uhr (um den Einlass zeitlich zu entzerren bitten wir 20 Minuten früher vor Ort zu sein).
  • Ort: Noch nicht festgelegt.
  • Modus: Schriftlich und NICHT OPEN BOOK. Stattdessen ist es erlaubt 6 Din A4 Seiten Handgeschriebene Notizen mitzubringen. Also entweder 3 doppelseitig beschriebene Din A4 Blätter, oder 6 einseitig beschriebene Din A4 Blätter. Elektronische Hilfsmittel sind nicht erlaubt!
  • Hinweis: Denken Sie daran ihren Studierendenausweis zur Klausur mitzubringen.

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).


Klausur

    Klausur:
  • Einsicht: Die Planung der Klausureinsicht findet in Zulip statt. Bitte den dortigen Poll bis zum 13. September beantworten.
  • Datum: 08.08.2024 - Klausurbeginn c.a. 14:00 Uhr (um den Einlass zeitlich zu entzerren bitten wir 20 Minuten früher vor Ort zu sein).
  • Ort: Gebäde 101 auf dem Geläde der Technischen Fakultät. Wir werden Räume und Sitzplätze beim Einlass ins Gebäude zuweisen.
  • Modus: Schriftlich und Open book. Letzteres bedeutet, dass alles auf Papier gedruckte oder geschriebene Material mitgebracht und benutzt werden darf. Elektronische Hilfsmittel sind nicht erlaubt!
  • Hinweis: Denken Sie daran ihren Studierendenausweis zur Klausur mitzubringen.

Ablauf der Vorlesungen

Die Vorlesung ist Wöchentlich am Dienstag 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

Aktuelles: Am 18.06 entfällt die reguläre Vorlesung. Stattdessen findet eine Fragestunde zu den aktuellen Folien statt.


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 Übungsblatt 05 Lösung 05
Binäre Suchbäume 04.06 Übungsblatt 06 Lösung 06
Balancierte Suchbäme 11.06 Übungsblatt 07, Tree-Template.zip Lösung 07
Graphtraversierung 18.06 Übungsblatt 08 Lösung 08
Minimale Spannbäme 25.07 Üungsblatt 09, TSP.py, AdjacencyMatrix.py, cities.txt Lösung 09, Code
Kürzeste Pfade 12.07 Übungsblatt 10 Lösung 10
Dynamische Programmierung 09.07 Übungsblatt 11, DP.py Lösung 11, DP.py
Textsuche 16.07 Übngsblatt 12, StringMatching.py, input Lösung 12, StringMatching.py
Bonusblatt 23.07 Übungsblatt 13, Heap.py Lösung13.pdf Heap.py

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