Hier werden die Fragen und Antworten zum Programmierwettbewerb 2023 gesammelt:

  • Muss die Programmiersprache wieder Java sein?
    • Nein. Die Sprache kann frei gewählt werden.
  • Es gilt nur wer am Ende den besten Score erreicht, oder?
    • Ja, die Bewertung erfolgt anhand des Scores. Dieser wird auch für die Verteilung des Preisgeldes genutzt.
  • Wird die Diversität/Simpson-Index über die ganze Fläche oder Teilflächen berechnet?
    • Es wird die gesamte Fläche für die Berechnung des Index genutzt.
  • Wie genau wird denn der Score berechnet?
  • Ist das Skript zur Überprüfung von Überschneidungen im Repo enthalten?
    • Ja, als ausführbare Datei.
  • Gibt es für den Endscore relevante Testfälle, die nicht offen vorliegen?
    • Nein. Allerdings sind die von dem Teams erstellten Testfälle erst nach dem Midterm und nicht von Anfang des Wettbewerbs an sichtbar.
  • Werden die Koordinaten von dem Skript zur Überprüfung von Überschneidungen als Double interpretiert?
    • Ja. Die Genauigkeit ist darauf begrenzt.
  • Dürfen nur MATSE teilnehmen oder auch Leute aus anderen Bildungsgängen?
    • Es sollen grundsätzlich MATSE-Auszubildende der aktiven Jahrgänge teilnehmen. Bei Ausnahmen gerne nachfragen.
  • Wie erhält man zugang zu dem git-repo?
    • Nach dem Kickoff ist eine Teilnahme am Wettbewerb einfach durch eine E-Mail mit folgenden Informationen an Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein! möglich:
      • Name für das Team
      • Git-ID, die nach dem Login bei https://git-ce.rwth-aachen.de angezeigt wird. Nach einem Klick rechts oben auf das Icon wird die ID im erscheinenden Dropdown unter ihrem Namen (@...) angezeigt.
    • Sobald möglich erhalten Sie dann den Zugang zum Repository.

Testtext

 

 

Zwischenstand Programmierwettbewerb Endstand

Platzierung Team Bestandene Tests Gesamtlaufzeit (s)
1. md-2022-g10 18/18 61.26
2. md-2022-g05 16/18 37.35
3. Trivial 16/18 104.52
4. md-2022-g03 14/18 156.27
5. md-2022-g09 9/18 12.26
Stand: 2022_03_07_23:22:25

Hier werden alle für das Teilnehmendenfeld gestellten und beantworteten Fragen gesammelt:

  • Ist die Nutzung von Libraries erlaubt?
    • Grundsätzlich ja.
    • Für die zentrale Auswertung müssen ggf. Voraussetzungen geschaffen werden, so dass die genutzte Library dann allen Teams zur Verfügung steht.
    • Grenzen stellen Aspekte wie Sicherheit, Größe der Bibliotheken, Fairness (z.B. Ressourcenbedarf) dar.
  • Zwischenauswertung
    • Wie wird die Platzierung bestimmt?
      • Zunächst wird die Anzahl der gelösten Tests gewertet. Teams, die dieselbe Anzahl gelöster Tests werden nach der Summe der Laufzeiten aufsteigen, beginnend mit der Geringsten, sortiert.
    • Wie lange dauert die Aktualisierung der Zwischenergebnisse?
      • Dies ist stark abhängig davon, wie lange die Programme für die Berechnung der Lösungen benötigen.
      • Angestrebt wird ein Aktualisierungszyklus von max. 1h.
  • Auf welchem Branch läuft die Auswertung?
    • Die Auswertung erfolgt auf dem main-Branch.
  • Müssen alle möglichen Lösungen für eine Problemstellung angegeben werden?
    • Nein, es reicht eine korrekte Lösung bzw. die Aussage das keine Lösung existiert.
  • Werden die Tests nacheinander durchlaufen, auch wenn ein Test fehlschlägt oder werden alle Tests durchlaufen?
    • Ja, es werden alle Tests durchlaufen. Jeder Test läuft dabei maximal zwei Minuten.
  • Warum ändert sich die Zeit eines anderen Teams, wenn ich einen Push mache?
    • Ein Push löst, wenn er lokal erfolgreich getestet wurde, einen zentralen Lauf aus. Der zentrale Lauf nutzt dabei von jedem Team, den aktuellen Stand des main-Branch. Es gibt jetzt mehrere Szenarios: Ein Team hat eine lokal nicht erfolgreich getestete Lösung, die nun für einen zentralen Lauf ausgewertet wird, und so zu einer Änderung der Zeit führt. Weitere Szenarios können durch Pushs auf Development-Branches, schnell aufeinander folgende Pushs verschiedener Teams oder durch Lösungen deren Laufzeit variiert  entstehen.
  • Bei einem Fall mit der Dimension 1x2x3, darf die Lösung in einer anderen Form z.B. 3x2x1 zurückgegeben werden?
    • Ja, der Test-Algorithmus lässt dies zu.
  • Wie sehen die Fälle aus, die im zentralen Lauf getestet werden?
    • Ein Fall, wie aus den Ergebnissen zu Beginn abgeleitet werden konnte, hat keine Lösung und prüft, ob dieser Zustand korrekt erkannt wird.
    • Ein weiterer Fall hat die Kantenlängen von 10, 10 und 2 Würfeln und bis zum jetzigen Zeitpunkt (01.03.2022) sind alle eingesandten Lösungen an dem Zwei-Minuten-Limit gescheitert.
  • Wie viele Threads kann ein parallelisierter Algorithmus nutzen?
    • Es werden vier Prozessorkernen für das Ausführen der Tests bereitgestellt. Die Anzahl an Threads sollte aber auch die Struktur des gewählten Algorithmus berücksichtigen.

Finde die Lösung! Und optimiere sie.

Wir laden Dich – als Einzelkämpfer*in oder als Mitglied eines Teams – dazu ein, Dich an unserem diesjährigen Programmierwettbewerb zu beteiligen.

Worum geht es in der Aufgabenstellung?

Ohne jetzt schon zu viel zu verraten: Die einzuliefernde Lösung soll auf einer vorgegebenen Fläche eine optimale Anordnung gleichartiger Objekte unter Berücksichtigung zweier, gegenläufiger Parameter finden. Und dem Vereinszweck zu folgen: Die Auseinandersetzung mit Programmierung auf einem spielerischen Wege. Die detaillierte Aufgabenstellung ist im Repository das den teilnehmenden Personen bereitgestellt wird enthalten.

Gibt es auch Preise?

Ja, klar – es winkt für die Sieger*innen – egal ob Einzelperson oder Team – eine Siegprämie von bis zu 250 Euro. Insgesamt werden durch den Sponsor Daten- und Systemtechnik GmbH 1.000€ an Preisgeldern bereitgestellt.

Wie melde ich mich oder mein Team an?

Gestartet wird mit einem gemeinsamen Kickoff, bei dem Du bzw. Dein Team die Aufgabenstellung erhalten und euch anmelden könnt. Um Dich später anzumelden, schickst Du eine Mail an mit Deinem Namen (Einzelteilnehmer*in) bzw. allen Namen der Teammitglieder (Teamteilnahme) an Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!.

Was passiert dann?

Nach der Anmeldung stellt der Mathe-dual e.V. Dir bzw. dem Team ein GitLab-Projekt als Arbeitsumgebung zur Verfügung. In diesem Projekt befinden sich alle benötigten Informationen.

Wann startet die Wettbewerbszeit?

Die Wettbewerbszeit startet mit der Kickoff-Veranstaltung am 06.02.2023 um 16:00 Uhr. Hier bekommen alle Teilnehmer*innen die Aufgabenstellung und alle Infos zur Bearbeitung.

Was passiert während der Wettbewerbszeit?

Während der Wettbewerbszeit wird es möglich sein Zwischenergebnisse unter Zwischenstand Programmierwettbewerb einzusehen.

Bis zum 17.02.2023 können Testfälle von den Teilnehmenden eingereicht werden, die dann ggf. in die Testsuite aufgenommen werden.

Am 21.02.2023 um 16:00 Uhr gibt es ein Midterm-Event (Zoom-Link) bei dem unter anderem Fragen gestellt werden können und diese nach Möglichkeit beantwortet werden.

Wann ist die Deadline?

Bis zum 6.3. 23:59:59 Uhr können Lösungen eingestellt werden. Am Ende dieser Zeit werden die erarbeiteten Lösungen bewertet und die Gewinner ermittelt.

Wie erfahre ich oder mein Team, ob wir gewonnen haben?

Am 23.3. 16:00 Uhr gibt es eine weitere Veranstaltung, bei der die Auswertung vorgestellt und die Gewinner*innen bekanntgegeben werden. Der Mathe-dual e.V. benachrichtigt alle Gewinner auch per Mail und veröffentlicht die Ergebnisse auf den Web-Seiten des Vereins

Neugierig geworden? Besucht die Kickoff-Veranstaltung am 06.02.2023 um 16:00 Uhr für weitere Details. Wir freuen uns auf eure Teilnahme!