Fortgeschrittenes Algorithmisches Programmieren
Dozent: Thomas Bläsius, Christopher Weyand, Philipp Fischbeck (HPI), Hans Gawendowicz (HPI)
Links: VVZ
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 sind Contests, in denen sich die Studierenden unter Wettbewerbsbedingungen miteinander messen. Die gleiche Veranstaltung wird am Hasso Plattner Institut der Universität Potsdam unter dem Namen Competitive Programming 2 angeboten. Übungsaufgaben und live-Contests werden synchronisiert und es gibt ein gemeinsames Scoreboard.
Bewertung
In die Bewertung gehen die Programmieraufgaben und Live-Contests wärend des Semesters sowie ein End-Contest nach Ende der Vorlesungszeit ein.
- 40% Programmieraufgaben (Abgabe jeweils 2 Wochen nach Beginn jedes Themas)
- 30% Live-Contest (10% pro Contest)
- 30% End-Contest (30% pro Contest)
Ablauf
Die Veranstaltung findet Freitags von 11:30 bis 13:00 in 50.34 Raum 301 statt.
Alle 4 Vorlesungswochen gibt es anstatt des normalen Termins einen online Contest mit dem Hasso Plattner Institut.
Die Contests gehen von 13:30 bis 15:30 und die Teilnahme ist online.
Weitere Infos/Materialien sind im Discord.
Terminplan
Termin | Thema |
---|---|
28.10. | Intro |
04.11. | Topic 1: Flow |
11.11. | Contest 1 (13:30 - 15:30 online) |
18.11. | Topic 2: Segment Trees |
25.11. | Topic 2: Segment Trees |
02.12. | Topic 3: Treaps |
09.12. | Contest 2 (13:30 - 15:30 online) |
16.12. | Topic 4: Trees |
23.12. | Topic 4: Trees |
13.01. | Topic 5: Math |
20.01. | Contest 3 (13:30 - 15:30 online) |
27.01. | Topic 6: Strings |
03.02. | Topic 6: Strings |
10.02. | Topic 7: Convolutions |
17.02. | Topic 7: Convolutions |