Uni-Logo
Algorithms and Complexity
 


Algorithmen und Datenstrukturen
Sommersemester 2022
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).


Klausur

    Nachklausur:
  • Klausureinsicht: Wir bieten einen Einsichtstermin am Dienstag den 02.05.2023 zwischen 14:00 und 16:00 Uhr. Gebé‹Ÿde 106, Seminarraum 00-007.
  • Zeit: Dauer: 180 min - Datum: 10.03.2023 - Klausurbeginn c.a. 14:00 Uhr (um den Einlass zeitlich zu entzerren bitten wir 20 Minuten fr黨er vor Ort zu sein).
  • Ort: Gebé‹Ÿde 101 auf dem Gel鋘de der Technischen Fakulté‹ž. Wir werden Ré‹Ÿme und Sitzplé‹žze beim Einlass ins Gebé‹Ÿde 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!
  • Hauptklausur:
  • Klausureinsicht: Wir bieten demné‹hst zwei Einsichtstermine am Freitag den 30.09.2022 und am Mittwoch den 05.10.2022 an. Schreiben Sie sich daf黵 bei einem der freien Timeslots in Zulip ein!
  • Zeit: Dauer: 180 min - Datum: 24.08.2022 - Klausurbeginn c.a. 14:00 Uhr (um den Einlass zeitlich zu entzerren bitten wir 20 Minuten fr黨er vor Ort zu sein).
  • Ort: Gebé‹Ÿde 101 auf dem Gel鋘de der Technischen Fakulté‹ž. Wir werden Ré‹Ÿme und Sitzplé‹žze beim Einlass ins Gebé‹Ÿde 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!
  • Maéªahmen bzgl. COVID-19: Es soll ein Mindestabstand von 1,5m eingehalten werden. Es besteht eine dringende Empfehlung durchg鋘gig Masken zu tragen (OP-Masken oder FFP2 oder 膓uivalent). Weitere Informationen finden Sie hier.
  • Bitte 黚erprfen Sie die Angaben zeitnah vor der Klausur noch einmal, falls sich 膎derungen ergeben (insbesondere bzgl. der Corona Maéªahmen).

Ablauf der Vorlesungen

Die Vorlesung wird im Voraus aufgezeichnet und jeweils am Anfang der Woche auf folgender Website zur Verf黦ung gestellt.

Vorlesungsaufzeichnungen und -folien

Interaktive Fragestunde: Es wird zudem eine w鯿hentliche, interaktive Fragestunde geben. Der Termin ist immer am Dienstag von 10:15 bis 12:00 Uhr im Geb鋟de 101 H鰎saal 00-026. Ein Teilnahme per Zoom is ebenfalls m鰃lich. Details zu den Zoom-Veranstaltungen finden Sie in der nachfolgenden Rubrik.

Pré‹enztutorat: Jeden Donnerstag (ab dem 17.05) wird ein optionales Pré‹enztutorat von 12:15-14:00 Uhr in Gebé‹Ÿde 51 Raum 00-031 angeboten.


Details zu den Online-Veranstaltungen

Zoom: Den w鯿hentlichen Veranstaltungen kann digital per Zoom beigewohnt werden. Die notwendigen Daten f黵 die Zoom-Meetings finden Sie auf dieser Website. Bitte beachten Sie, dass dieser Link nur innerhalb des Uni-Netwerkes funtkioniert. M鯿hten Sie von auérhalb zugreifen ké°Šnen Sie einen VPN Tunnel benutzen.

Zulip ist eine Mischung aus Forum und Instant Messanger auf dem alle Fragen rund um Vorlesung geklé‹œt werden ké°Šnen. Daten f黵 den Zulip Server finden Sie demné‹hst ebenfalls auf dieser Website. Bitte beachten Sie auch hier, dass dieser Link nur innerhalb des Uni-Netwerkes funtkioniert.


躡ungen

Abgabezeitpunkt der 躡ungsbl鋞ter ist um 10:00 Uhr


Thema Abgabe Aufgaben Lé°ungen

Sortieralgorithmen 03.05 躡ungsblatt 01, QuickSort.py Lé°ung 01, QuickSort.py
O-Notation 10.05 躡ungsblatt 02 Lé°ung 02
Sortieren in Linearzeit 17.05 躡ungsblatt 03, BucketSort.py, RadixSort.py, Queue.py, ListElement.py Lé°ung 03, BucketSort.py, RadixSort.py
Kollisionsauflé°ung 24.05 躡ungsblatt 04, HashTable.py Lé°ung 04, HashTable.py
Hashfunktionen 31.05 躡ungsblatt 05 Lé°ung 05
Biné‹œe Suchbé‹Ÿme 14.06 躡ungsblatt 06, BST.py, input.txt Lé°ung 06, BST.py
Balancierte Suchbé‹Ÿme 21.06 躡ungsblatt 07 Lé°ung 07
Graphtraversierung 28.06 躡ungsblatt 08, Scheduling.py, AdjacencyList.py, dag.txt Lé°ung 08, Scheduling.py
Minimale Spannbé‹Ÿme 05.07 躡ungsblatt 09, TSP.py, AdjacencyMatrix.py, cities.txt Lé°ung 09, TSP
K黵zeste Pfade 12.07 躡ungsblatt 10, Maze.py, WeighAdjList.py, maze.txt maze_vis.txt Lé°ung 10, Maze.py, solution.txt
Dynamische Programmierung 19.07 躡ungsblatt 11, DP.py, set1.txt, set2.txt, set3.txt Lé°ung 11, DP.py
Textsuche 26.07 躡ungsblatt 12, StringMatching, input Lé°ung 12, StringMatching
Bonusblatt 02.08 躡ungsblatt 13, Heap.py Lé°ung 13, Heap.py

Richtlinien zur Abgabe der 躡ungsbl鋞ter

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

Laden sie Ihre theoretischen und praktischen Lé°ungen immer in Ihr SVN Repository hoch, und zwar in einen Unterordner mit dem Namen uebungsblatt-XY wobei XY die aktuelle Nummer des 躡ungsblattes angibt (mit f黨render Null falls die Nummer einstellig ist). Mehr Details gibt es hier.

Ihre praktischen Lé°ungen m黶sen direkt in uebungsblatt-XY hochgeladen werden (und nicht in einen weiteren unterordner) damit Jenkins diese findet. Nach der Deadline des entsprechenden 躡ungsblattes XY sind keine 膎derungen mehr am Unterordnet uebungsblatt-XY mehr mé°ƒlich.

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

Die hier verlinkte 躡ersicht beschreibt die typischen Schritte die Sie f黵 die Abgabe der praktischen Lé°ung durchf黨ren sollen.

Information zur Abgabe in Übungsgruppen: Eine gemeinsame Abgabe in Gruppen von bis zu drei Personen ist erlaubt. Um eine bungsgruppe zu bilden, senden Sie bitte eine Mail an Philipp Bamberger mit dem Betreff AD-Gruppe, welche ausschlieé§ich die RZ-K黵zel der Gruppenmitglieder enthé‹–t. Bitte beachten Sie, dass jedes Gruppenmitglied die Lé°ungen in seinen SVN-Ordner laden muss. Bitte teilen Sie zudem Ihrem Tutor in der file erfahrungen.txt Ihre Gruppenpartner mit.


躡ungsklausuren

Hinweis: Die folgenden Klausuren stammen vom Kurs "Informatik 2" welcher é‹’nlich 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