Das Ziel des Programmierpraktikums ist es, Datenstrukturen und Algorithmen, die in
der Vorlesung DAP2 behandelt werden, zu implementieren und zu evaluieren. Dadurch wird das Verständnis für
den Stoff der Vorlesung vertieft und es werden darüber hinaus essentielle Kenntnisse in effizienter
Programmierung vermittelt.
Im Praktikum wird ausschließlich die Programmiersprache C++ verwendet. Die Aufgaben können in
2-er Gruppen bearbeitet werden.
Es wird abwechselnd Praktikumsblätter mit Kurzaufgaben (Präsenzaufgaben) und Langaufgaben
geben. Die Kurzaufgaben sind während der Praktikumsgruppe zu bearbeiten, für die Langaufgaben
stehen 2 Wochen Bearbeitungszeit zur Verfügung und die Ergebnisse werden dann in der Praktikumsgruppe
dem Tutor präsentiert. Auf den Praktikumsblättern wird es ausführliche Hinweise und Tipps
geben, die für die Bearbeitung der Aufgaben hilfreich sind. Wir gehen davon aus, dass sich jeder der
Teilnehmer bereits vor der Praktikumsstunde mit dem Praktikumsblatt vertraut gemacht hat.
In den Praktikumsgruppen gibt es eine Anwesenheitspflicht, d.h. die
Teilnehmer arbeiten während der Praktikumsgruppe an den Praktikumsaufgaben. Nach Abspache mit den Tutoren
ist es auch möglich, Fehltermine in anderen Gruppen nachzuholen, sofern dort Platz ist.
Für Studierende der Elektrotechnik (BA ET/IT und BA IKT) wird das Praktikum von Wolfgang Endemann und Sebastian Rohde
betreut: siehe
auch deren Webseite
Teilnahmevoraussetzungen
Voraussetzung für die Teilnahme an dieser Veranstaltung sind gute Programmierkenntnisse in Java oder C++,
wie sie im Programmierpraktikum zu DAP1 (oder in EINI) vermittelt wurden.
Scheinkriterien
Es wird 7 Praktikumsblätter mit je 2 Kurzaufgaben (insgesamt 14 Punkte) und
6 Praktikumsblätter mit je 2 Langaufgaben (insgesamt 12 Punkte) geben.
Um den Schein zu bekommen sind folgende Kriterien zu erfüllen:
Anwesenheit an mindestens 11 Terminen, d.h. man kann (wegen der Feiertage) in den Freitagsgruppen zweimal,
in den Donnerstagsgruppen einmal und
in den Mittwochsgruppen dreimal unentschuldigt fehlen. Wer über dieses Fehlkontingent
hinaus abwesend ist, kann bis zu zwei weitere Termine mit Attest fehlen.
An den Terminen P0 und P3 finden keine Praktikumsgruppen statt, dort ist aber ein Tutor anwesend,
der eure Fragen beantworten kann. Wir werden diese Termine auch als Ersatztermine für Praktikumsgruppen
nutzen, die wegen Feiertagen ausfallen müssen.
Ersatztermine für Feiertage:
Feiertag
Gruppen
Ersatztermine
Fr
1. Mai
(Tag der Arbeit)
P19, P21, P22, P24
P0, P3, P9
Do
21. Mai
(Christi Himmelfahrt)
P10, P13-P18
P0, P3, P9, P20
Do
11. Juni
(Fronleichnam)
P10, P13-P18
P0, P3, P20, P23
Einteilung der Praktikumsgruppen
Die Einteilung der Praktikumsgruppen findet ihr hier.
Falls ihr euch in der Liste nicht wiederfindet, wendet euch bitte an Carsten Gutwenger.
Pool-Accounts:
Zum Arbeiten in den Pools wird ein Account benötigt, den in der Regel jeder Informatik-Student bereits haben sollte. Falls Sie noch keinen Account haben, dann wenden Sie sich bitte an die IRB.
Praktikumsblätter
Die Praktikumsblätter werden jeweils (spätestens) dienstags 12:00 Uhr online gestellt.
Die Praktikumsgruppen beginnen in der zweiten Vorlesungswoche (ab dem 22. April).
Die Abgabe erfolgt immer direkt in den Praktikumsgruppen; fällt die Abgabe in einer Gruppe auf einen
Feiertag, so erfolgt die Abgabe per Email und die Präsentation findet in der darauffolgenden Woche statt.
Die Musterlösungen werden auf den Poolrechnern im Verzeichnis /home/gutwen00/DAP2/Musterloesung bereitgestellt.
Mouzhi Ge, LS13 (mouzhi . ge * tu - dortmund . de)
HiWis:
Jan Czogalla
David Gräff
Adalat Jabrayilov
Dominik Kopczynski
Tristan Skudlik
Timo Stöcker
Literatur
Wir werden im Programmierpraktikum ausschließlich C++ verwenden. Die meisten von euch werden sich
mit dieser Programmiersprache noch nicht so gut auskennen, da im ersten Semester hauptsächlich Java
benutzt wurde. Daher ist es ratsam, sich auch schon im Voraus mit der Programmiersprach C++ auseinanderzusetzen.
Dazu kann eines der folgenden Bücher bzw. Skripte empfohlen werden.
Da sich viele von euch bereits mit Java vertraut gemacht haben, ist es sinnvoll, ein Buch zur Hand zu nehmen,
welches speziell für den Umstieg von Java nach C++ geschrieben wurde.
Timothy A. Budd: C++ for Java Programmers (Addison-Wesley 1999)
Mark A. Weiss: C++ for Java Programmers (Prentice Hall 2003)
Dieses Skript wurde von Thomas Willhalm verfasst, um Studenten einen möglichst leichten Umstieg von Java nach
C++ zu ermöglichen. Die darin vermittelten C++-Kenntnisse reichen vollkommen für das Praktikum aus.
C++ Grundlagen
Die folgenden Bücher führen die Programmiersprache C++ quasi von Grund auf ein. Sie sind in der Regel sehr umfassend
und behandeln weit mehr als wir im Praktikum benötigen werden. Das ist aber sicher kein Nachteil, da viele von euch im weiteren
Studium oder im Berufsleben immer wieder mit C/C++ konfrontiert werden.
Ulla Kirch-Prinz, Peter Prinz: C++ lernen und professionell anwenden (4. Auflage, Vmi Buch 2007)
Jürgen Wolf: C++ von A bis Z – Das umfassende Handbuch (2. Auflage, Galileo Press 2009)
Ulrich Kaiser, Christoph Kecher: C++ – Von den Grundlagen zur professionellen Programmierung (4.
Auflage, Galileo Press 2008)
Arnold Willemer: Einstieg in C++ (4. Auflage, Galileo Press 2009)
Ulrich Breymann: C++ &ndash Einführung und professionelle Programmierung (9. Auflage, Hanser
Fachbuchverlag 2007)
Bjarne Stroustrup: Die C++ Programmiersprache (4. Auflage, Addison-Wesley 2009)
Dieses Buch gilt als die C++ Referenz, ist allerdings für Anfänger etwas schwer zu lesen.
Stanley B. Lippman, Josee Lajoie, Barbara E. Moo: C++ Primer (deutsch, 4. Auflage, Addison-Wesley 2007)
Ebenfalls ein Standardwerk, empfehlenswert für den ambitionierten Leser.
Weiterführende Literatur
Scott Meyers: Effektiv C++ programmieren (Addison-Wesley 2008)
Die Effective C++ Bücher von Scott Meyers gehöhren zu den absoluten Klassikern. Sie dienen nicht
dazu, die Programmiersprache C++ zu erlernen, sondern zeigen C++ Programmierern Wege auf, wie sie ihren Programmcode
verbessern können.
Die GNU GCC Compiler-Kollektion enthält unter anderem den g++ Compiler für C++, der auf jedem UNIX/Linux
System vorhanden ist; den Compiler gibt es auch für Windows (Cygwin oder
MinGW) und Mac OS. Beim Arbeiten mit g++ ist auch ab und zu ein Blick ins
Manual hilfreich.
Kostenlose C++ Entwicklungsumgebung von Microsoft; leicht zu bedienen und sehr guter Debugger. Auch die Hilfe zu Visual
Studio (MSDN Library) ist umfassend und sehr zu empfehlen.
Studierende der Informatik können Lizenzen für Visual Studio 2008 Professional auch bei der
IRB bekommen.