Scalable Algorithms (ITI)

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