Scalable Algorithms (ITI)

Fortgeschrittenes Algorithmisches Programmieren

Dozent: Thomas Bläsius, Christopher Weyand, Michael Zündorf

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 Contest mit dem Hasso Plattner Institut. Die Contests sind von 13:30 bis 15:30 in Gebäude 50.28 Seminarraum 2. Online Teilnahme ist auch möglich. Weitere Infos/Materialien sind im Discord.

Terminplan

Termin Thema
27.10. Topic 1: Segment Trees
03.11. Topic 1: Segment Trees
10.11. Topic 2: Treaps
17.11. Contest 1 (13:30 - 15:30 in 50.28 Seminarraum 2)
24.11. Topic 3: Trees
01.12. Topic 3: Trees
08.12. Topic 4: DFS Trees
15.12. Contest 2 (13:30 - 15:30 in 50.28 Seminarraum 2)
22.12. Topic 5: Flow
12.01. Topic 5: Flow
19.01. Topic 6: Math
26.01. Contest 3 (13:30 - 15:30 in 50.28 Seminarraum 2)
02.02. Topic 7: Strings
09.02. Topic 7: Strings