Competitive Programming AG

Aus Fachschaft_Informatik
Wechseln zu: Navigation, Suche

Die Competitive Programming AG ist eine studentische AG, die sich mit dem Training für Competitive Programming Wettbewerbe beschäftigt.

Magst du Herausforderungen? Problemlosen, Algorithmen, Mathe, Datenstrukturen und vor allem Programmieren? dann bist du hier Richtig.

Was ist Competitive Programming?[Bearbeiten]

Competitive Programming ist ein Denksport, der in der Regel über das Internet oder ein lokales Netzwerk betrieben wird und dessen Teilnehmer versuchen, unter vorgegebenen Spezifikationen ein Computerprogramm zu schreiben, wobei zumeist mathematische oder logische Probleme im Mittelpunkt stehen.

Das Programm muss ein richtiges Output für alle die Tests erzeugen, um das zu tun, hat er nur kurze Zeit (Time Limit).

Das Judge (ein anderes Program) vergleicht das Output mit dem Richtigen Output und wenn sie gleich sind, bekommt die Lösung das Urteil "ACCEPTED" sonst "Wrong Answer". Wenn das Programm abstürzt bekommt man eine "Run-Time-Error" und wenn es gar nicht kompiliert dann eine "Compilation Error". Wenn das Programm zu viel Zeit braucht um das Output zu erzeugen gilt das Urteil "Time Limit Exceeded".

Alle Urteile außer "ACCEPTED" sind "Rejected".

Einer der ältesten Wettbewerbe dieser Art ist der ACM International Collegiate Programming Contest (kurz ACM-ICPC), dessen Ursprünge bis in die 1970er Jahre reichen und hauptsächlich von IBM finanziert wird.

Warum ist Competitive Programming gut?[Bearbeiten]

Es macht dich zu einem begehrten Kandidaten für große Unternehmen[Bearbeiten]

Die Teilnahme am ACM International Collegiate Programming Contest (ACM ICPC) ist eine großartige Gelegenheit, von Apple, Facebook, Google, IBM und vielen anderen Unternehmen im IT-Bereich gesehen zu werden. Diese großen Unternehmen verfolgen ständig solche Veranstaltungen und die Teilnehmer, um talentierte Mitarbeiter zu finden.

Warum solltest du dich für den ACM ICPC interessieren? Weil es der größte Programmierwettbewerb der Welt ist!

Es macht dich schneller und fokussierter[Bearbeiten]

Das Training und die Teilnahme an Programmierwettbewerben machen dich zu einem disziplinierteren, schnelleren und fokussierten Programmierer.

Du musst Probleme in Stresssituationen und in einem bestimmten Zeitfenster lösen. Die Teilnahme an Programmierwettbewerben verbessern nicht nur deine volle Konzentraion auf eine Aufgabe, sondern bilden dich auch generell in der logischen/mathematischen Problemlösung. Diese Fähigkeiten sind für jeden Job von großem Nutzen, nicht nur beim programmieren.

Hilft bei der Lösung komplizierter Probleme[Bearbeiten]

Während des ACM ICPC musst du schwierige Aufgaben lösen, die nicht für normale Programmierer sind. Während du trainierst, lernst du, wie diese außergewöhnlichen Aufgaben gelöst werden können.

Verbessert deine Arbeit im Team[Bearbeiten]

Teamwork ist eines der essentiellen Fähigkeiten von Informatikern. Mit Hilfe von Competitive Programming kannst du lernen, wie du effektiv mit deinen AG-Kollegen zusammenarbeiten kannst, weil die ICPC eine Teamwettbewerb ist, wo du und dein Team zusammenarbeiten müssen, um das Problemset zu lösen.

Training und Partizipation hilft, sich auf eine Karriere in der IT vorzubereiten[Bearbeiten]

Es ist nicht ungewöhnlich, unmittelbar nach der Teilnahme an einem Programmierwettbewerb Stellenangebote von Unternehmen zu erhalten.

Die Teilnahme an einem Programmierwettbewerb ist etwas, was du in deinem Lebenslauf unbedingt hervorheben solltest. Wie bereits erwähnt, kannst du durch Erfahrung in der Wettbewerbsprogrammierung Arbeitgebern zeigen, dass du in einem Team arbeiten, komplizierte Probleme lösen, in Stresssituationen arbeiten, Zeit und Termine verwalten und Fehler minimieren kannst. Es zeigt auch, dass du diszipliniert, konzentrierst und schnell bist, die alle unverzichtbare Fähigkeiten sind.

Was macht die CP-AG?[Bearbeiten]

Die CP-AG wird Trainingsworkshops organisieren, in der Algorithmen erklärt und für Lösungen von Problemen implementiert werden.

Die CP-AG wird einen Online-Trainingswettbewerb in jeder 1. oder 2. Woche vorbereiten und gelegentlich offline in den Computerräumen am Informatikum Trainingswettbewerbe veranstalten.

Wir sind immer für dich da, wenn du eine Frage zur Lösung eines Problems hast.

Außerdem wird die CP-AG versuchen die Teilnahme der Universität Hamburg an der ACM GCPC (German Collegiate Programming Contest) zu organisieren.

Was brauche ich um an dem Training teilzunehmen?[Bearbeiten]

Wir haben Trainingspläne für verschiedene Levels von Vorkenntnissen und Fähigkeiten. Deshalb sind nur grundlegende Programmierkenntnisse erforderlich um mit dem Training anzufangen.

bitte melde dich bei Codeforces an, weil sie die Hauptseite für das Training ist.

Ich möchte teilnehmen/mich organisatorisch beteiligen[Bearbeiten]

Eine Email an 7shallou senden.

Wöchentliche AG treffen[Bearbeiten]

Semesterabhängig, Aktuell SoSe2019 : einen Wochenendetag am Informatikum. Wenn du kommen möchtest, melde dich vorher bei der Ansprechpartner, um die genauen Angaben zu bekommen.

Mit welchen Programmiersprachen kann ich teilnehmen?[Bearbeiten]

Es kommt auf den Wettbewerb oder das Online-Judge an.

Die erlaubte Sprachen in die ACM-ICPC sind C, C++, Java and Python (Python 3 and PyPy, similar to Python 2.0).

die Online-Judges, die während des Trainings benutzt werden[Bearbeiten]

- http://codeforces.com

- https://arena.topcoder.com

- https://www.a2oj.com

- https://icpcarchive.ecs.baylor.edu

- https://uva.onlinejudge.org/

- http://www.spoj.com

- https://www.urionlinejudge.com.br

- https://www.hackerrank.com

Wichtige Seiten[Bearbeiten]

Die Seite des Deutschen Wettbewerbs (ACM - GCPC) - https://icpc.tum.de

Die Seite des Internationalen Wettbewerbs - https://icpc.baylor.edu

Die Seite des Nord-West Europa Wettbewerbs (ACM NWERC) - http://www.nwerc.eu

Nützliche Bücher[Bearbeiten]

Competitive Programming 3

Ansprechpartner[Bearbeiten]

Ahmad Shallouf (7shallou)

Mailingliste[Bearbeiten]

Abonniere Unsere Mailingliste