Topic outline

  • General

    • Seminar: Algorithmen für Programmierwettbewerbe

      Umfang: 5 ECTS, 2 SWS
      Zeit & Ort: Mi 16-18 Uhr, online
      Voraussetzung:
      • Algorithmen und Datenstrukturen (notwendig)
      • Algorithmische Graphentheorie (dringend empfohlen)
      Zielgruppe: Bachelor Informatik, Bachelor Luft- und Raumfahrt-Informatik, Master Informatik
      Modul: Bei erfolgreicher Teilnahme wird die Leistung als (benotetes) Seminar eingetragen.
      Dozenten: Thomas van Dijk, Jonathan Klawitter

      Thema und Ziele

      In diesem Seminar sollen die Techniken aus den Vorlesungen ADS und AGT vertieft und angewendet werden. Dazu nutzen wir Aufgaben aus vergangenen Programmierwettbewerben. Fähigkeiten, die im Speziellen in diesem Seminar vermittelt werden:

      • Programmierprobleme mit Hilfe der Techniken aus ADS und AGT lösen
      • Vergleich/Abwägen von verschiedenen Lösungsansätzen
      • Implementierung gängiger Programmiertechniken einüben
      • Recherche und Präsentation verschiedener Lösungsansätze

      Die Teilnehmenden lernen, sich intensiv in ein abgegrenztes Thema aus dem Themengebiet einzuarbeiten, dieses didaktisch aufzubereiten und den anderen Kursteilnehmenden in einem Vortrag zu vermitteln. Dieses Thema und die zugrundeliegende Literatur sollen sie selbstständig finden und vorschlagen.

      Anmeldung

      Wenn du am Seminar teilnehmen möchten, melden dich hier in WueCampus an. Die Teilnahme erfolgt in 2er-Teams! Gibt uns daher nach der Anmeldung bitte bescheid, ob du noch ein Teammitglied benötigst oder aber mit wem ihr ein Team bildst. In der ersten Semesterwoche werden wir dann entscheiden welche Teams einen Platz bekommen. Gleichzeitig wird in dieser Woche dann die Themenvergabe erfolgen.

      Wenn ihr einen Platz im Seminar bekommen habt, dann meldet euch in WueStudy für das Seminar an. Dies ist nur im November möglich und wenn diese Anmeldung verpasst wird, kann keine Note verbucht werden.

      Ablauf

      In diesem Seminar verbinden wir die Vorträge mit praktischen Übungen. Jedes Team wird einen Votrag (~15 Minuten) online als Aufnahme zu einer Programmieraufgabe präsentieren. Die anderen Teams implementieren anschließend selbstständig eine Lösung für die Aufgabe. Das jeweils vortragende Team steht im Chat für Fragen und Hilfestellungen bereit.

      Vor dem eigenen Vortrag, trifft sich jedes Team zwei mal mit einem der Dozenten. Bis spätestens zwei Wochen davor muss der Lösungsansatz des eigenen Problems und bis spätestens eine Woche davor müssen die (bis dahein bereits erstellten) Folien für den Vortrag besprechen werden.

      Chat

      Für Ankündigungen, Gruppenbildung, Diskussionen und Fragen werden wir eine Slack-Gruppe nutzen. Ihr könnt euch dort mit diesem Link anmelden. Bitte benutzt eure Klarnamen bzw. Vorname + erste Buchstabe des Nachnamens. Falls ihr noch nicht in einem Team seid, könnt ihr im Channel Teamfindung nach jemandem suchen.

      Evaluierung

      Zum Bestehen des Seminars muss ihre Gruppe ein Vortrage online als Aufnahme präsentieren, wobei ein Nichteinhalten einer Fristen für Besprechungen als Nichtbestehen bewertet werden kann und wobei der Vortrag zu gleichen Teilen unter den Mitgliedern aufgeteilt wird. Außerdem müssen die meisten Probleme in DOMjudge gelöst werden. Hierfür gelten die folgenden Bedingungen:

      • Jedes Team muss vier der ersten fünf Seminarprobleme lösen (also alle bis auf eines aus ??).
      • Jedes Team muss vier der verbleibenden fünft Seminarprobleme lösen (also alle bis auf eines aus ??).
      • Zeitplan

        Termin Thema
         Material
        04.11.2020
        Einführung, Gruppeneinteilung, Themenvergabe, X
        TvD
         
        11.11.2020 Vortrag -1: Y Thievery        
        TvD
        Folien
        18.11.2020 Vortrag 0: Z Jinxed Betting
        JK
        Folien, Java, Python
        25.11.2020



        02.12.2020


        09.12.2020


        16.12.2020


        13.01.2021


        20.01.2021


        27.01.2021


        03.02.2020 


        10.02.2020


        17.02.2020




        • Themen

          Die Themen wurde all in der ersten Semesterwoche vergeben.

          Jeder Teilnehmer sollte über DOMjudge (siehe unten) einen Account erstellen und Problem X lösen.

          • Einreichungssystem DOMjudge

            Lösungen werden eingereicht mit DOMjudge; der Server ist Uni-Intern und über VPN verfügbar unter: http://bordon.informatik.uni-wuerzburg.de/domjudge/public/

            Sehen Sie unsere Videoanleitung. Erstellen Sie ein Account und lösen Sie das Problem X.

            Der Server kompiliert und führt Ihren Code aus. Es gibt Sicherheitsmaßnahmen, die versuchen, Sie daran zu hindern, zu den geheimen Instanzen zu gelangen, aber hier ist die eigentliche Sicherheitsmaßnahme (genau wie bei echten Wettbewerbe): Wenn Sie versuchen, uns zu hacken, werden Sie disqualifiziert.
            Zeit- oder Speicherüberlauf sollte von DOMjudge aufgefangen werden, also machen Sie sich darüber keine Sorgen. Aber eine Fork-Bombe (z.B.) wird den Server wahrscheinlich umbringen. Machen Sie es einfach nicht.