Vorlesung und Übungen: Datenstrukturen und Algorithmen

Dozent: Prof. Andres Bruhn
Übungskoordinator: Dr. Steffen Koch
Mitarbeiter: Dr. Uwe Breitenbücher, Wolfgang Fechner, Tanja Munz, Michael Stoll

Sommersemester 2018
Vorlesung mit Übungen (4+2SWS)
Sprache: Deutsch

Vorlesung: Montag, 15:45 - 17:15, Pfaffenwaldring 47, Hörsaal V47.02.
Vorlesung: Mittwoch, 15:45 - 17:15, Pfaffenwaldring 47, Hörsaal V47.02.

Beschreibung

In dieser Veranstaltung werden zentrale Algorithmen auf geeigneten Datenstrukturen vorgestellt, die für eine effiziente Nutzung von Computern unverzichtbar sind. Die TeilnehmerInnen lernen, zu gängigen Problemen geeignete Lösungen anzugeben und diese in einer konkreten Programmiersprache zu formulieren.

Weitere Informationen zur Vorlesung und Übung in ILIAS. (In der ersten Vorlesung gibt es hierzu nochmal genauere Details, sowie zur Anmeldung der Gruppen für die Übungen)

Lernziele

Kenntnis der Eigenschaften elementarer und häufig benötigter Algorithmen
Verständnis für die Auswirkungen theoretischer und tatsächlicher Komplexität
Erweiterung der Kompetenz im Entwurf und Verstehen von Algorithmen und der zugehörigen Datenstrukturen
Erste Begegnung mit nebenläufigen Algorithmen

Voraussetzungen

Grundlegende Kenntnisse in objektorientierter Programmierung (hier Java), theoretischer Informatik und Mathematik werden vorausgesetzt. Insbesondere wird der Besuch der Veranstaltung "Programmierung und Software-Entwicklung" als Grundlage empfohlen.

Prüfung

Die Bekanntgabe des Prüfungstermins und die Anmeldung zur Prüfung erfolgt im Campus-System.

Skript und weitere Materialien

Das Skript zu dieser Veranstaltung (Folien), Übungsblätter und weitere Materialien werden sukzessive in ILIAS bereitgestellt.

Termine und Themen der Vorlesung
Vorlesung 01 09.04.2018 Organisatorische Einführung, Listen
Vorlesung 02 11.04.2018 Listen und Suchen 
Vorlesung 03 16.04.2018 Listen und Sortieren
Vorlesung 04 18.04.2018 Komplexität
Hörsaalübung 01 23.04.2018 Listen und Komplexität
fällt aus 25.04.2018 Kontaktmesse
Vorlesung 05 30.04.2018 Bäume
Vorlesung 06 02.05.2018 Baumtraversierung
Vorlesung 07 07.05.2018 Ausgeglichene Bäume
Vorlesung 08 09.05.2018 B-Bäume und digitale Bäume
Vorlesung 09 14.05.2018 Heaps und Heapsort
Hörsaalübung 02 16.05.2018 Bäume
fällt aus 21.05.2018 Pfingsten
fällt aus 23.05.2018 Pfingsten
Vorlesung 10 28.05.2018 Räumliche Datenstrukturen
Vorlesung 11 30.05.2018 Graphen
Vorlesung 12 04.06.2018 Graphalgorithmen 1
Vorlesung 13 06.06.2018 Graphalgorithmen 2
Vorlesung 14 11.06.2018 Graphalgorithmen 3
Hörsaalübung 03 13.06.2018 Graphalgorithmen
Vorlesung 15 18.06.2018 Räumliche Graphen
Vorlesung 16 20.06.2018 Textalgorithmen
Vorlesung 17 25.06.2018 Textalgorithmen & Hashing
Vorlesung 18 27.06.2018 Hashing
Vorlesung 19 02.07.2018 Verteilte Algorithmen
Hörsaalübung 04 04.07.2018 Textalgorithmen, Hashing und Verteilte Algorithmen
Vorlesung 20 09.07.2018 Implementierung Verteilter Algorithmen
Vorlesung 21 11.07.2018 Algorithmenentwurf 1
Vorlesung 22 16.07.2018 Algorithmenentwurf 2
Vorlesung 23 18.07.2018 Algorithmen des Maschinellen Lernens
 

Links

Link zur Veranstaltung im Campus-System (Vorlesung)
Link zur Veranstaltung im Campus-System (Übung)
Link zur Veranstaltung in ILIAS


Literatur
  • G. Saake; K. Sattler:
    Algorithmen und Datenstrukturen: Eine Einführung mit Java. 5. Auflage, dpunkt-Verlag, 2013.
  • T. Ottmann, P. Widmayer:
    Algorithmen und Datenstrukturen. 5. Auflage, Springer-Verlag, 2012.

Zum Erlernen und Nachschlagen von Java (kostenlose Version verfügbar):

  • Java ist auch eine Insel
  • Java-Programmierung - Das Handbuch