Home | english  | Impressum | Sitemap | KIT

Algorithmen I mit Übung

Algorithmen I mit Übung
Typ: Vorlesung / Übung (VÜ)
Lehrstuhl: Fakultät für Informatik
Semester: SS 2014
Ort: 30.95 Audimax
Zeit: Montag 15:45 bis 17:15
Mittwoch 14:00 bis 15:30
Beginn: 14.04.2014
Dozent:

Prof.Dr. Peter Sanders
Julian Arz
Timo Bingmann
Sebastian Schlag

SWS: 4
LVNr.: 24500

Klausur

Die Ergebnisse der Nachklausur sind online.

 

Die Ergebnisse der Klausur vom 28.07.2014 sind online.

Aktuelles

  • Link zum Praktomat
  • Bei Partnerabgaben im Praktomat bitte beide Teilnehmer als Kommentare im Quellcode eintragen. Eine Abgabe genügt.
  • Studenten ohne KIT-Account (z.B. Schülerstudenten) melden sich für einen Praktomat-Account bitte bei Julian Arz.
  • Das The Sound of Sorting Demoprogramm gibt es online und mit Quellcode. Falls jemand eine Anleitung zum Kompilieren für MacOS X schreibt und mir schickt, wird diese dort auch gepostet.
  • Für die Abschlussklausur am 28.07.2014 können Sie sich vom 23.06. bis einschließlich 22.07.2014 über das Studierendenportal anmelden, eine Abmeldung ist bis 27.07.2014 möglich. Bitte beachten Sie, dass für Anmeldungen in Papierform dieselben Fristen gelten, und geben Sie Ihre Anmeldung bis 22.07.2014 im Sekretariat von Prof. Sanders ab.
    Die Hörsaalverteilung geben wir noch bekannt.

Organisatorisches

Dias und Folien

Dateien zu den Programmieraufgaben

Buch zur Vorlesung

Kursbeschreibung

Das Modul beeinhaltet die 'Basic Toolbox der Algorithmik'. Im Einzelnen werden folgende Themen bearbeitet:

  • Ergebnisüberprüfung (Checkers) und Zertifizierung
  • Asymptotische Algorithmenanalyse: worst case, average case, probabilistisch, amortisiert
  • Grundbegriffe des Algorithm Engineering
  • Effektive Umsetzung verketteter Listen
  • Unbeschränkte Arrays, Stapel, und Warteschlangen
  • Hashtabellen: mit Verkettung, linear probing, universelles Hashing
  • Sortieren: effiziente Algorithmen (mergesort, quicksort), untere Schranken, radix sort
  • Selektion: quickselect
  • Prioritätslisten: binäre Heaps, addrssierbare Prioritätslisten
  • Sortierte Folgen / Suchbäume: Wie unterstützt man alle wichtigen Operationen in logarithmischer Zeit
  • Graphen (Repräsentation, Traversierung: Breitensuche, Tiefensuche, Anwendungen (topologisches Sortieren,...), Kürzeste Wege: Dijkstra's Algorithmus, Bellman-Ford Algorithmus, Minimale Spannbäume: Kruskals Algorithmus, Jarnik-Prim Algorithmus)
  • Generische Optimierungsalgorithmen (Greedy, Dynamische Programmierung, systematische Suche, Lokale Suche)

Lehrinhalt

Der/die Studierende

  • kennt und versteht grundlegende, häufig benötigte Algorithmen, ihren Entwurf, Korrektheits- und Effizienzanalyse, Implementierung, Dokumentierung und Anwendung,
  • kann mit diesem Verständnis auch neue algorithmische Fragestellungen bearbeiten,
  • wendet die im Modul Grundlagen der Informatik (Bachelor Informationswirtschaft) erworbenen Programmierkenntnisse auf nichttriviale Algorithmen an,
  • wendet die in Grundbegriffe der Informatik (Bachelor Informatik) bzw. Grundlagen der Informatik (Bachelor Informationswirtschaft) und den Mathematikvorlesungen erworbenen mathematischen Herangehensweise an die Lösung von Problemen an. Schwerpunkte sind hier formale Korrektheitsargumente und eine mathematische Effizienzanalyse.

Literaturhinweise

Algorithms and Data Structures -- The Basic Toolbox
K. Mehlhorn und P. Sanders
Springer 2008

Weiterführende Literatur

Algorithmen - Eine Einführung
T. H. Cormen, C. E. Leiserson, R. L. Rivest, und C. Stein
Oldenbourg, 2007

Algorithmen und Datenstrukturen
T. Ottmann und P. Widmayer
Spektrum Akademischer Verlag, 2002

Algorithmen in Java. Teil 1-4: Grundlagen, Datenstrukturen, Sortieren, Suchen
R. Sedgewick
Pearson Studium 2003

Algorithm Design
J. Kleinberg and É. Tardos
Addison Wesley, 2005

Vöcking et al.
Taschenbuch der Algorithmen
Springer, 2008