
3. Programmierwettbewerb von Catalysts
Bereits zum dritten Mal lädt Catalysts zum Programmierwettbewerb an der Johannes Kepler Universität.
Man kann sich nur dann zielgerichtet weiterentwickeln, wenn man weiß wo man steht und wenn man weiß, wohin man will.
Dabei wollen wir folgenden Fragen nachgehen:
- Wer ist schneller, effizienter, effektiver, produktiver?
- Sind Einzelkämpfer schneller oder “Pair Programmer”?
- Führt testgetriebene Entwicklung tatsächlich zu weniger Fehlern?
- Auf wieviele verschiedene Arten kann ein Problem gelöst werden?
- In welcher Programmiersprache lässt sich das Problem am besten lösen?
- Wie viele Zeilen Code sind notwendig?
Wir hätten gerne ein bunt durchmischtes Teilnehmerfeld:
- Schüler, Studenten und Praktiker
- Pair Programmer und testgetriebene Entwickler
- Team-Player und Am-liebsten-isoliert-Arbeitende
- Erfahrene und Neulinge usw.
Vor-Ort-Teilnahme
Für alle, die physisch zum Programmierwettbewerb kommen, gibt es:
- Preisgelder: 1. Platz: 400€, 2. Platz: 200€, 3. Platz: 100€
- Sachpreise: in der Höhe von 800€ (verlost unter den Anwesenden)
- Buffet und After-Contest-Party
- Ausfahrtsticket für den Universitäts-Parkplatz
Details zu den Teilnahmebedingungen
Remote-Teilnahme
Alle, die am Wettbewerbstag nicht nach Linz kommen können oder wollen, können einfach über das Internet teilnehmen.
Details zu den Teilnahmebedingungen
Anmeldung
[wpsc_category=3]
Hall of Fame
Nach dem Wettbewerb werden wir die Rangliste veröffentlichen. Wer möchte, kann den Deckmantel der Anonymität ablegen und ist namentlich erwähnt (optional auch mit weiteren Kontaktinformationen).
Vorbereitung
Um den Ablauf kennen zu lernen, kann man schon vorab ein Beispiel mit dem CatCoder lösen (weitere Informationen dazu werden in Kürze bekannt gegeben).
Details zur Vorbereitung und zum Ablauf des Programmierwettbewerbs
Presse
Wir sammeln die Presseberichte über den Programmierwettbewerb.
Fernsehbeitrag vom 2. CCC im Jahr 2008
Haben Sie eine lineare Leistungskurve?
Wenn Sie als Software-Entwickler die Wahl haben, nehmen Sie lieber einen Algorithmus mit linearer Laufzeit-Komplexität “O(n)” als einen mit quadratischer “O(n²)” oder gar einen mit exponentieller “O(2^n)”.
Wenn Kunden bzw. Auftraggeber die Wahl haben, nehmen Sie lieber einen Software-Entwickler, der auch unter Stress und hoher Belastung eine lineare Leistungskurve hat.
Die besten Entwickler brauchen auch für die schwierigeren Aufgaben nicht länger als für die einfachen – ihre Leistungskurve ist linear.
Auf der Hall of Fame sehen Sie für den letztjährigen Programmierwettbewerb, welche Teilnehmer quasi lineare Leistungskurven und welche eher quadratische oder exponentielle Leistungskurven haben.
… Sie zögern, weil Sie sich nicht blamieren möchten?
Der Programmier-Wettbewerb wird vollkommen anonym ablaufen:
- Natürlich müssen Sie für die Anmeldung und Rechnung Ihren Namen angeben.
- Die Rechnung bzw. einen Zahlungsbeleg nehmen Sie dann mit zum Programmierwettbewerb.
- Beim Wettbewerb selbst melden Sie sich allerdings am Test-Server unter einem Pseudonym an (von Ihnen frei gewählt).
- Sie können ihr Pseudonym verschiedenen Gruppen zuweisen (z.B. Student / Schüler / Praktiker / Java / C# /…). Damit können Sie vergleichen, wo Sie innerhalb der Gruppe stehen.
- Nur Sie kennen dieses Pseudonym. Nur Sie wissen somit, welcher Datenpunkt zu Ihnen gehört.
- Am Ende des Wettbewerbs können Sie noch immer entscheiden, das Pseudonym fallen zu lassen (wenn Sie z.B. unter die besten 10 gekommen sind, die gebührende Anerkennung erhalten und den Preis entgegennehmen wollen).
Sie entscheiden über Ihren Source-Code:
- Wenn Sie wollen, schicken Sie nur Testergebnisse zum Test-Server. Ihr Source-Code verlässt dann Ihren Rechner gar nicht.
- Da wir aber natürlich aus dem Wettbewerb möglichst viel lernen wollen, würden wir den Source-Code im Nachhinein gerne analysieren.
- Sie können deshalb am Ende des Wettbewerbs Ihren Source Code anonym am Test-Server ablegen (um uns Vergleiche und weiterführende Analysen zu ermöglichen). Sie können dabei natürlich auch preisgeben, wer der Autor ist (in diesem Fall verifizieren wir natürlich, ob die Angabe stimmt).
- Sie können sich auch schon im Vorhinein dazu entscheiden, den Source-Code automatisch am Test-Server ablegen zu lassen. Dazu bekommen Sie ein kleines Programm, das alle 15 Minuten den aktuellen Source Code auf den Test-Server überträgt. Dadurch können wir im Nachhinein die Entstehungsgeschichte Ihrer Lösung nachverfolgen. Aber auch in diesem Fall müssen Sie Ihre Identität nicht preisgeben, sondern können mit Ihrem Pseudonym arbeiten.
… Sie zögern noch immer?
- Wir bieten Ihnen die Möglichkeit, sich anonym einer Aufgabe zu stellen. Sie können herausfinden, wie gut Sie sind.
- Sie erleben “live”, welche Techniken sehr gut funktionieren, welche Strategie zum Erfolg führt.
- Sie können testgetriebene Entwicklung einfach einmal ausprobieren.
- Als Teilnehmer bekommen Sie im Nachhinein Einsicht in die besten Lösungen und können auch daraus noch etwas lernen.
- In einer sicheren Umgebung können Sie Techniken spielend ausprobieren und Interessantes lernen.
- Es kostet Sie die Teilnahmegebühr und (je nachdem, wie schnell Sie sind) bis zu 4h Zeit. Wenn Sie am Abend ins Kino gehen, dazu Popcorn essen und etwas trinken, kostet es Sie genau so viel, allerdings lernen Sie nichts daraus.
- Ihre Anonymität ist garantiert, dafür bürgen wir.
- Schlussendlich haben Sie auch die Chance auf einen der Preise, aber das Lernen steht aus unserer Sicht im Vordergrund.
… Sie wissen nicht, ob Sie noch mithalten können?
- Wenn man schon einige Zeit im Berufsleben steht, weiß man oft nicht mehr, wie gut man im Vergleich zu “den Jungen” ist.
- Anstatt immer nur zu grübeln, kann man einfach am Programmier-Wettbewerb mitmachen.
- Man sieht dann sehr schnell, wie es um einen steht.
- Natürlich handelt es sich dabei ja nur um ein Einzelereignis, das nicht “statistisch siginifikant” ist. Natürlich kann man einen schlechten Tag erwischt haben usw.
- Aber alle diese Rechtfertigungen sind gar nicht nötig, weil niemand außer Ihnen das Ergebnis kennt. Nur Sie wissen am Ende des Tages, wie es Ihnen ergangen ist.
- Und eines ist aus der Statistik auch schon im Vorhinein klar: Die eine Hälfte der Teilnehmer wird überdurchschnittlich sein, die andere Hälfte wird unterdurchschnittlich sein. Also ist auch der Fall, dass man unterdurchschnittlich ist, nicht schlimm, sondern halt (im Prinzip) genau so wahrscheinlich wie der andere, dass man überdurchschnittlich ist.
Aufgabenstellung
Natürlich verraten wir die Aufgabenstellung nicht im Vorhinein. Ein bisschen was können wir allerdings schon verraten:
- Es geht nicht um Benutzeroberflächen, nicht um Persistenz oder Ähnliches.
- Man muss keine Frameworks kennen, um das Problem zu lösen.
- Es geht eher um etwas Algorithmisches, aber nicht schlimm ;-)
- Es ist ein bisschen knifflig, d.h. nachdenken zahlt sich aus.
- Wir selbst haben für die Lösung etwa 2h gebraucht.
Organisatorisches
- Sie programmieren auf Ihrem eigenen Notebook, in der Programmiersprache Ihrer Wahl, mit der Entwicklungsumgebung Ihrer Wahl.
- Sie können alleine oder in Zweierpaaren arbeiten. Größere Gruppen sind nicht vorgesehen.
- Stromverteiler und Netzwerkkabel werden von uns zur Verfügung gestellt.
- Die Teilnahmegebühr schließt die Getränkeversorgung während des Wettbewerbs, das anschließende Buffet und ein Ausfahrtsticket vom Universitäts-Parkplatz ein. Es entstehen Ihnen keine weiteren Kosten durch die Teilnahme.
- Für Studenten und Schüler haben wir Sponsoren, die diese Teilnahmegebühr übernehmen, d.h. wir zahlen den Schülern und Studenten die Teilnahmegebühr nach dem Wettbewerb zurück.
- Die Ergebnisse des Wettbewerbs und die Erkenntnisse werden auf einer Webseite bereitgestellt. Höchstwahrscheinlich werden die Ergebnisse auch in Form einer Diplomarbeit aufgearbeitet werden.
Preise
Auch wenn für uns der Lernaspekt im Vordergrund steht, gibt es natürlich trotzdem Preise.
Weil wir gesehen haben, dass ein Schüler den zweiten Preis in der Gesamtwertung gewonnen hat, gibt es keine eigene Schülerwertung mehr.
Es gibt ein Preisgeld von:
- 400 EUR für den Sieger
- 200 EUR für den Zweiten
- 100 EUR für den Dritten
Weiters werden unter allen Anwesenden wertvolle Sachpreise verlost.
Jeder Teilnehmer hat somit die Chance, mit einem Gewinn nach Hause zu gehen.










