Proseminar Effiziente Algorithmen
Dozent: Prof. Dr. Christian Scheideler
Zeit und Ort: Donnerstag, 14:15-15:45, F2.211
Inhalt
Ziel des Proseminars ist es, zu lernen, wie die in der Vorlesung "Datenstrukturen und Algorithmen" vorgestellten Methoden verwendet und erweitert werden können, um algorithmische Probleme, die im renommierten International Collegiate Programming Contest (ICPC) erschienen sind, lösen zu können. Dazu wird es wöchentliche Treffen geben, in denen jeweils eine bestimmte Klasse von Problemen behandelt wird. Weiterhin werden einige dieser Probleme pro Treffen als Hausaufgabe aufgegeben, die von studentischen Teams bestehend aus bis zu 3 Leuten gelöst werden müssen. Jedes Team muss am Ende des Kurses einen der ICPC Wettbewerbe aufarbeiten und die Lösungen in einem Treffen präsentieren. Dabei reicht es, wenn ein Team bestehend aus k Mitgliedern 2k der Probleme eines ICPC Wettbewerbs auswählt.
Schein
Einen Schein bekommt, wer regelmäßig am Proseminar teilnimmt, mindestens 60% der Probleme korrekt gelöst hat, und am Ende mindestens 50% der Punkte für die Lösung und Präsentation der ausgewählten ICPC Probleme bekommen hat. Die Endnote ergibt sich über die finale Punktzahl. Dabei gibt es für jede korrekt gelöste Hausaufgabe 1 Punkt und für jede korrekte und gut vorgestellte Lösung eines ICPC-Problems in der Präsentationsphase 2 Punkte. Für jedes ICPC-Problem ist die Wertung wie folgt:
- 0 Punkte: Problem ist nicht gelöst worden.
- 1 Punkt: Lösungsweg ist richtig, aber die Präsentation war schwer nachzuvollziehen oder die Implementierung ist nicht akzeptiert worden.
- 2 Punkte: Lösungsweg ist richtig, die Präsentation war gut nachzuvollziehen, und die Implementierung ist akzeptiert worden.
Übersicht über die Themen
- Einführung
- Datenstrukturen
- Zeichenketten
- Sortieren, selektieren und suchen
- Arithmetik und Kombinatorik
- Zahlentheorie
- Graphdurchlauf
- Graphalgorithmen
- Divide & Conquer und Dynamische Programmierung
ICPC Wettbewerbe
Einige Beispiele sind:
Alle Wettbewerbe können auf der Webseite https://icpcarchive.ecs.baylor.edu gefunden werden. Klickt man auf einen Wettbewerb, wird auch mitgeteilt, wie schwer die Probleme sind, so dass das helfen sollte, einen geeigneten Wettbewerb auszuwählen.
Übungsaufgaben
- Werden in PANDA bekannt gegeben.
Die Probleme können unter http://www.cs.uleth.ca/%7Echeng/contest/hints.html nachgeschlagen und über http://uva.onlinejudge.org/index.php eingereicht werden. Die Programme müssen zusammen mit der Bestätigung des Servers, dass sie akzeptiert worden sind, und den Namen der Gruppenmitglieder bis spätestens zum angegebenen Abgabetag um 14:00 Uhr per Email an den Dozenten geschickt werden (der Zeitstempel der Email zählt).
Hilfsmittel