Personen: Prof. Dr. Tobias Friedrich, Philipp Fischbeck, Christopher Weyand (KIT), David Stangl
Links: Lehrveranstaltungsliste Bachelor/Master, Algorithm Engineering Moodle*
*Wenn du keinen Zugang zum Moodle hast (z.B., weil du nicht am HPI eingeschrieben bist), kontaktiere Philipp Fischbeck.
Beschreibung
Im Verlauf des Semesters werden Algorithmen und Datenstrukturen vorgestellt, welche aufgrund ihrer Effizienz und vergleichsweise kurzen Implementierung Anwendung in Programmierwettbewerben finden. Zu jedem Themengebiet (Strings, Zahlentheorie, Graphen, Treaps, etc.) müssen praktischen Übungsaufgaben implementiert werden. Höhepunkte der Veranstaltung ist ein Contest, in dem sich die Studierenden unter Wettbewerbsbedingungen miteinander messen. Aus den Teilnehmern der Veranstaltung werden außerdem die Teams ausgewählt, die das HPI/die Universität Potsdam beim ACM ICPC Regionalwettbewerb der Region Nordwesteuropa (NWERC) vertreten werden.
In diesem Jahr planen wir wieder, den Kurs in Zusammenarbeit mit dem Institut für Theoretische Informatik am KIT in Karlsruhe zu halten. Es wird gemeinsame Vorlesungen, ein gemeinsames Scoreboard und gemeinsame Contests geben, so dass sich HPI- und KIT-Teams direkt messen können.
Voraussetzungen
Zur Zulassung setzen wir die Veranstaltung (Advanced) Competitive Programming voraus.
Lern- und Lehrformen
Die Vorlesung soll maßgeblich von einer lebhaften interaktiven Diskussion unterschiedlicher Lösungsansätze und Tipps und Tricks geprägt sein. Zudem werden im Laufe des Kurses hilfreiche Konzepte eingeführt.
Im Laufe des Kurses stellen wir verschiedene fortgeschrittene Themen im Competitive Programming vor. Zu diesen Themen gibt es regelmäßig Aufgaben, die zuhause gelöst werden sollen. Zusätzlich werden die Teilnehmenden an Live-Contests. Die Aufgaben des Wochen-Contests löst jeder Student allein, um die in der Vorlesung gelernten Methoden anzuwenden; die Live-Contests werden in Teams bearbeitet und dienen als Training für den ICPC. Die Aufgaben werden per Online-Judge ausgewertet und in der Veranstaltung diskutiert. Am Ende des Semesters findet ein Endcontest statt.
Leistungserfassung
In die Bewertung gehen die Programmieraufgaben und Live-Contests während des Semesters sowie ein End-Contest nach Ende der Vorlesungszeit ein.
40% Programmieraufgaben (Abgabe jeweils 2 Wochen nach jedem Thema)
30% Live-Contest (10% pro Contest)
30% End-Contest (30% pro Contest)
Termine
Die Veranstaltung wird digital über Zoom stattfinden, der Link ist im Moodle-Kurs zu finden.
Offiziell findet die Veranstaltung freitags 13:30-15:00 und 15:15-16:45 statt. Es ist jedoch geplant, die Vorlesung 14:00-15:30 durchzuführen, um eine gemeinsame Vorlesung mit dem KIT zu ermöglichen. Der erste Termin am 29.10. beginnt jedoch schon um 13:30.
Der End-Contest findet am 24.02.2022 um 10:00-15:00 Uhr statt. Dieser Termin gilt auch als Prüfungstermin im Rahmen der 8-Tage-Regel für die Prüfungsanmeldung.