|
Dozent | Prof. Dr. Angelika Steger |
Zeit | Freitags, 12.15 - 13.45 Uhr, Terminänderung |
Raum | S2229 |
Voraussetzungen | Grundlegende Programmierkenntnisse |
Praktikumsleitung | Alexander Offtermatt-Souza und Ingo Rohloff |
Anmeldung | Zentralanmeldung in der Sun-Halle |
Scheinerwerb |
Einzelteilnehmer: bestehen aller Aufgabenblätter Zweiergruppen: bestehen aller Aufgabenblätter und 5 frei wählbare Aufgaben |
Aufgabenblätter | hier klicken |
Abgabe | Final Version an acmprakt@in.tum.de |
Anforderungen | korrekt, kommentiert, echt, rechtzeitig |
Programmiersprachen | Unter anderem C/C++ und Java |
Vorbesprechung |
Freitag, 19.4.2002, 10.00 - 11.30 Uhr im S2229 mit
folgenden Themen:
|
HintergrundDie Association for Computing Machinery (ACM) ist Veranstalter des bekannten ACM Programming Contest. Dabei treten Teams aus verschiedenen Ländern gegeneinander an. Die Teams bekommen eine Menge von Programmieraufgaben gestellt, die so schnell wie möglich gelöst werden sollen. Dasjenige Team, das die meisten Aufgaben in kürzester Zeit löst gewinnt. Die Entscheidung, ob eine Aufgabe korrekt gelöst wurde wird von einem Online Judge getroffen. Der Judge testet das Programm auf gewissen Eingaben, wobei auch besonders die Randbedingungen getestet werden. Nach dem Test wird das Programm entweder akzeptiert oder abgelehnt. Mögliche Antworten des Judge sind dabei: Accepted, Presentation Error, Wrong Answer, Compile Error, Time Limit Exceeded, Memory Limit Exceeded und einige Weitere.Inhalt und DurchführungAufgaben des PraktikumsDie Aufgaben stammen aus früheren ACM Programming Contests. Inhaltlich lassen sich die Aufgaben, die wir stellen werden grob in die Bereiche Geometrie, Zeichenreihen, Kombinatorik, Spiele und Puzzles, Zahlentheorie und Netzwerke einteilen.Im Laufe des Semesters werden voraussichtlich 7 Aufgabenblätter zu bearbeiten sein, die unter http://wwwmayr.in.tum.de/lehre/2002SS/progprak/ heruntergeladen werden können bzw. bei den Besprechungsterminen verteilt werden. Online JudgeAn der Universidad de Valladolid wird ein Online Judge gehostet, mit dem die Aufgaben getestet werden können. Zur Benutzung des Online Judge beachte man das separate Merkblatt.Scheinerwerb und AbgabeDie Aufgaben sollen von Zweier- oder Einzelteams bearbeitet werden. Zum Testen steht der oben genannte Online Judge zur Verfügung. Wenn ein Team der Meinung ist, eine Aufgabe korrekt gelöst zu haben (z.B. wenn der Online Judge die Lösung akzeptiert), soll die Final Version des Programms per eMail an acmprakt@in.tum.de abgegeben werden.Jede einzelne Lösung wird von der Praktikumsleitung durchgesehen und akzeptiert falls das Programm korrekt ist, ausreichend kommentiert und nicht abgeschrieben wurde. Einzelteilnehmer bekommen einen Schein, wenn sie von jedem Aufgabenblatt die angegebene Mindestanzahl von Aufgaben korrekt und rechtzeitig gelöst haben. Mitglieder von Zweiergruppen bekommen einen Schein, wenn sie von jedem Aufgabenblatt die angegebene Mindestanzahl von Aufgaben korrekt und rechtzeitig gelöst haben. Zusätzlich müssen noch fünf weitere Aufgaben gelöst werden, die frei wählbar sind und keinem Abgabetermin unterliegen. Abgabetermine sind jeweils auf den Aufgabenblättern vermerkt. In begründeten Fällen kann die Abgabe maximal fünf Tage später erfolgen. Sollten bis dahin weniger als die entsprechende Mindestzahl an Aufgaben gelöst worden sein, gilt das Aufgabenblatt als nicht bestanden und der Scheinerwerb ist dann nicht mehr möglich. Besprechungstermin und LernzieleJeden Freitag zwischen 10.00 und 11.30 Uhr gibt es eine (optionale) Vorbesprechung, in der die neuen Aufgaben erläutert und einige Techniken, die zur Lösung hilfreich sein könnten vorgestellt werden. Es werden aber keine Tipps, die die Aufgaben an sich betreffen verraten, sondern nur allgemeine Programmiertechniken erläutert. Mit dieser Vorgehensweise wollen wir folgende Lernziele verfolgen:
SchwierigkeitsgradDer Schwierigkeitsgrad der Aufgaben ist unterschiedlich und nimmt im Laufe des Semesters eher zu. Bei jedem Aufgabenblatt gibt es einige leichtere und einige schwerere Aufgaben, unter denen gewählt werden kann.ProgrammiersprachenDer Online Judge kann die Aufgaben in verschiedenen Sprachen bewerten; darunter auch C/C++ und Java. D.h. die Bearbeitung der Aufgaben ist an keine spezielle Programmiersprache gebunden, sondern hängt lediglich von den akzeptierten Sprachen des Judge ab.Links
Literatur
|