Department of Computer Science
Chair of Algorithm Engineering (Ls11)
Home Contact Deutsch English
menu-en
Programmierpraktikum zu DAP2

Programmierpraktikum zu DAP 2

Praktikum im Modul INF-BA-104

Sommersemester 2009

Petra Mutzel, Carsten Gutwenger


Siehe auch: Vorlesung DAP2 &ensp•  Übungen zu DAP2  •  Inpud-Forum  •  DAP2-Kalender

Inhalt

Ablauf des Praktikums
Teilnahmevoraussetzungen
Scheinkriterien
Termine
Einteilung der Praktikumsgruppen
Praktikumsblätter
Team
Literatur
Kontakt

Ablauf des Praktikums

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.
  • mindestens 8 Punkte bei den Kurzaufgaben.
  • mindestens 7 Punkte bei den Langaufgaben.

Termine

Hinweis: Für Studierende der Elektrotechnik (ET/IT und IKT) gibt es eigene Praktikumsgruppen.

Praktikumsgruppen:

Zeit \ Ort GB5 / 010 GB5 / 011 OH14 / U04
Di 10:15-12:00 P0
Tristan Skudlik
Mi 12:15-14:00 P1
Jürgen Mäter
P2
Jan Czogalla
P3
Tristan Skudlik
Mi 14:15-16:00 P4
Jürgen Mäter
P5
Wilfried Rupflin
P6
Timo Stöcker
Mi 16:15-18:00 P7
Adalat Jabrayilov
P8
Jan Czogalla
P9
 
Do 08:15-10:00 P10
Jürgen Mäter
P11
 
P12

Do 10:15-12:00 P13
Jürgen Mäter
P14
Adalat Jabrayilov
P15
Tristan Skudlik
Do 12:15-14:00 P16
Wilfried Rupflin
P17
Timo Stöcker
P18
Tristan Skudlik
Fr 08:15-10:00 P19
David Gräff
P20
 
P21
Dominik Kopczynski
Fr 10:15-12:00 P22
David Gräff
P23
 
P24
Dominik Kopczynski

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.

Ausgabe Abgabe (Langaufgaben)
1. Praktikumsblatt 21.04.
2. Praktikumsblatt 28.04. 13.05.-15.05.
3. Praktikumsblatt 05.05.
4. Praktikumsblatt 12.05. 27.05.-29.05.
5. Praktikumsblatt 19.05.
6. Praktikumsblatt 26.05. 10.06.-12.06.
7. Praktikumsblatt 02.06.
8. Praktikumsblatt 09.06. 24.06.-26.06.
9. Praktikumsblatt 16.06.
10. Praktikumsblatt 23.06. 08.07.-10.07.
11. Praktikumsblatt 30.06.
12. Praktikumsblatt 07.07. 22.07.-24.07.
13. Praktikumsblatt 14.07.

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.

Das DAP2-Praktikum Team

WiMis:

  • Carsten Gutwenger, LS11 (carsten . gutwenger * cs . tu - dortmund . de)
  • Jürgen Mäter, LS4 (juergen . maeter * udo . edu)
  • Wilfried Rupflin, IRB (wilfried . rupflin * cs . tu - dortmund . de)
  • 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.

Folien der Einführung in C++ (aus dem SoSe08)

Von Java nach C++

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)

Thomas Willhalm: Von Java nach C++ (Universität Karlsruhe, 2004)
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.

Weblinks

GCC Compiler
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.

Visual Studio Express Editions
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.

Xcode
Apple's Entwicklungsumgebung für Mac OS X; benutzt auch den g++ Compiler.

Eclipse
Freie Entwicklungsumgebung für zahlreiche Plattformen; zur C++ Programmierung benötigt ihr den CDT Plugin.

C++ Programming
Wikibook über C++ Programmierung (auf Englisch).

C/C++ Referenz
Übersichtliche Referenz der wesentlichen Funktionalität von C/C++ und den Standardbibliotheken (auf Englisch).

Kontakt

Bei Rückfragen oder Problemen wendet euch bitte an: Carsten Gutwenger

Sprechstunde: Mittwochs 10-12 Uhr, OH14 R238

Imprint
<webmaster  ls11.cs.tu-dortmund.de>
The university does not accept liability for the contents of linked external internet sites