LEA

Praktikum: Algorithmen für Programmierwettbewerbe

  • Dozent
    Prof. Dr. Ernst W. Mayr
  • Praktikumsleitung
    Stefan Toman
    Chris Pinkau
    Philipp Hoffmann
    Chris Müller
    Für E-Mails an die Praktikumsleitung verwenden Sie bitte die Adresse conpra@in.tum.de.
  • Modul
    IN0012, IN2106
  • Vorbesprechung
    Die Vorbesprechung findet am Montag, 27. Januar 2014, 14:00 Uhr in Raum MI 03.11.018 statt.
  • Zeit
    Montag, 12:30-14:00 Uhr, MI 02.13.010 NEU
  • Rechnerraum
    Die Aufgaben können in unserem Rechnerraum MI 03.09.034, der Rechnerhalle oder am eigenen Computer gelöst werden.
  • Bereich
    Informatik III (Theoretische Informatik)
  • Voraussetzungen
    Grundlagen von C, C++ oder Java, z.B. aus der Vorlesung Einführung in die Informatik 1
    Vorlesung Grundlagen: Algorithmen und Datenstrukturen
  • Bewertung
    Zum Bestehen des Praktikums ist es notwendig ausreichend viele der gestellten Übungsaufgaben selbstständig zu lösen und eine mündliche Prüfung am Ende es Kurses zu bestehen. Die Note ergibt sich ebenfalls aus Qualität und Anzahl der eingereichten Hausaufgaben sowie der mündlichen Prüfung.

Aufgabenblätter

Alle Dokumente befinden sich auf der englischen Version dieser Seite.

Beschreibung

Programmierwettbewerbe sind Wettkämpfe, bei denen Aufgaben in einer festen Zeit mit Hilfe von Computerprogrammen gelöst werden müssen. Dabei wird die Verwendung verschiedener Algorithmen und Datenstrukturen sowie Fähigkeiten in Problemanalyse, Softwareentwicklung und Teamarbeit auf eine spielerische Art und Weise geübt. Wichtige Themen der theoretischen Informatik werden mit dem Spaß am Programmieren verbunden.

Im Praktikum werden wir verschiedene grundlegende Algorithmen und Datenstrukturen kennenlernen, die häufig in Programmierwettbewerben genutzt werden. Es haben sich inzwischen sehr viele Wettbewerbe mit verschiedenen Modi und Schwerpunkten entwickelt. Die Übungsaufgaben in diesem Praktikum werden sich dabei am International Collegiate Programming Contest (ICPC) orientieren, einem internationalen Programmierwettbewerb für Universitätsstudierende, der seit den 1970er Jahren von der Association for Computing Machinery (ACM) veranstaltet wird.

In diesem Wettbewerb müssen Gruppen von je drei Studierenden an einem Rechner in meist fünf Stunden etwa acht bis zehn Probleme lösen. Das Turnier wird dabei in mehreren lokalen Runden ausgetragen bis sich die besten Teams am Ende bei den World Finals messen. Die Fakultät für Informatik der TU München nimmt seit einigen Jahren mit mehreren Mannschaften am ICPC teil. Einen Eindruck der Aufgaben, die in ähnlicher Form im Praktikum bearbeitet werden, vermitteln ausgewählte Aufgaben aus dem German Collegiate Programming Contest (GCPC) 2012.

Im Rahmen einer wöchentlichen Praktikumsvorlesung werden benötigte Algorithmen und notwendige Grundlagen zu einem wöchentlich wechselnden Thema erklärt. In der darauf folgenden Woche werden die Teilnehmer Aufgaben zu diesem Thema bearbeiten. Lösungen, Hinweise und verschiedene Ideen zu den gestellten Aufgaben werden in der darauf folgenden Vorlesung vorgestellt. Die Aufgaben werden dabei verschiedene Schwierigkeitsgrade haben, beginnend bei direkten Implementierungen der vorgestellten Algorithmen bis hin zu schwierigeren Original-Aufgaben aus verschiedenen Wettbewerben. Zur Einreichung und Bewertung der Aufgaben werden wir das gleiche System verwenden, das auch bei fast allen Runden des ICPC eingesetzt wird.

Ziel der Veranstaltung ist ein tieferes Verständnis für weitverbreitete, wichtige Algorithmen und Datenstrukturen, das Kennenlernen spezialisierter Algorithmen sowie die Vorbereitung der Teilnehmer auf Programierwettbewerbe. Am Ende des Semesters besteht die Möglichkeit am GCPC teilzunehmen, der deutschen Regionalrunde des ICPC.