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 2008

Petra Mutzel, Carsten Gutwenger


Siehe auch: Vorlesung DAP2, Übungen zu DAP2

Inhalt

Ablauf des Praktikums
Teilnahmevoraussetzungen
Scheinkriterien
Anmeldung zum Praktikum
Termine
Einteilung der Gruppen
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. Da viele von euch bisher noch keine Bekanntschaft mit dieser Sprache gemacht haben, wird es zu Beginn des Semesters eine Einführung in C++ geben, die sich speziell an die Studenten wendet, die im ersten Semester Java gelernt haben. Diese 2-teilige Veranstaltung findet am 11. und 18. April, jeweils 12:15-14:00 in OH14 E23 statt (das ist der Termin der DAP2 Globalübung).

Es wird alle 2 Wochen ein Praktikumsblatt mit Aufgaben geben, die während des Praktikums (innerhalb von 2 Wochen) bearbeitet werden müssen. Es ist euch frei gestellt, an den Aufgaben auch zu Hause zu arbeiten. Während des Praktikums steht euch natürlich ein Tutor mit Rat und Tat zur Seite. Die Abgabe erfolgt während des Praktikums, in dem ihr eure Lösung (also den Programmcode) eurem Tutor vorführt und erklärt. Das bedeutet, ihr müsst in der Lage sein, euer Programm zu compilieren und (mit von uns vorgegebenen Eingabedaten) aufzurufen; außerdem müsst ihr den Quellcode vorführen und erklären können, was dort gemacht wird. Gruppenarbeit in 2-er oder 3-er Teams ist erlaubt, natürlich müssen bei der Abgabe beide Teammitglieder anwesend sein! Nachdem alle Gruppen abgegeben haben, wird auf den Webseiten eine Referenzlösung der Aufgaben veröffentlicht.

Folien der Einführung in C++:

Teilnahmevoraussetzungen

Voraussetzung für die Teilnahme an dieser Veranstaltung sind gute Programmierkenntnisse in Java (oder C++), wie sie im Programmierpraktikum zu DAP1 vermittelt wurden.

Scheinkriterien

Um den Praktikumsschein zu erhalten, müssen mindestens 60% aller Punkte erreicht werden.

Anmeldung zum Praktikum

Die Anmeldung zum Praktikum fand während der ersten Vorlesung (8. April) statt. Eine Anmeldung ist zwingend erforderlich.

Zum Arbeiten in den Pools benötigt ihr einen Account, den in der Regel jeder Informatik-Student bereits haben sollte. Falls ihr noch keinen Account habt, dann wendet euch bitte an die IRB.

Termine

Praktikumsgruppen:

Zeit \ Ort GB5 / 010 GB5 / 011 OH14 / U04
Mi 12:15-14:00 P1
Hubert Wagner
P2 P3
Hoi-Ming Wong
Mi 14:15-16:00 P4
Hubert Wagner
P5
Nico Piatkowski
P6
Hoi-Ming Wong
Mi 16:15-18:00 P7 P8
Nico Piatkowski
P9
Do 08:15-10:00 P10
Arthur Pyka
P11 P12
Do 10:15-12:00 P13
Florian Schmoll
P14 P15
André Gronemeier
Do 12:15-14:00 P16
Florian Schmoll
P17
Arthur Pyka
P18
André Gronemeier
Fr 08:15-10:00 P19
Timo Stöcker
P20 P21
Tobias Marschall
Fr 10:15-12:00 P22
Timo Stöcker
P23 P24
Tobias Marschall

Einteilung der Praktikumsgruppen

Die Einteilung der Praktikumsgruppen findet ihr hier. Falls ihr euch in der Liste nicht wiederfindet, wendet euch bitte an Carsten Gutwenger.

Praktikumsblätter

Die Praktikumsblätter werden jeweils (spätestens) dienstags online gestellt. Vorab wird es ein 0. Praktikumsblatt geben, das nicht bewertet wird. Es dient lediglich dazu, euch schon mal mit C++ vertraut zu machen.

Ausgabe Abgabe Zusatzmaterial
Praktikumsblatt 0 08.04. keine
Praktikumsblatt 1 22.04. 07.05.-09.05.
Praktikumsblatt 2 06.05. 21.05.-23.05. Zusatz [.zip]
Praktikumsblatt 3 20.05. 04.06.-06.06.
Praktikumsblatt 4 03.06. 18.06.-20.06. SparseArray.h
Praktikumsblatt 5 17.06. 02.07.-04.07. Miniwörterbuch [.txt]
Englisch-Deutsch Wörterbuch [.txt]
Praktikumsblatt 6 01.07. 16.07.-18.07.

Die Praktikumsgruppen beginnen in der ersten Vorlesungswoche. 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.

Bei den Praktikumsaufgaben gibt es auch so genannte Bonusaufgaben, die nicht bearbeitet werden müssen, d.h. die Punkte dieser Aufgabe zählen nicht zu den 20 Pflichtpunkten jedes Praktikumsblattes. Wenn ihr die Aufgaben bearbeitet und dafür Punkte bekommt, werden euch die Punkte aber trotzdem zusätzlich angerechnet, d.h. man kann bei einem Praktikumsblatt auch mehr als die 20 Pflichtpunkte erreichen.

Das DAP2 Team

WiMis:

  • Carsten Gutwenger, LS11 (carsten . gutwenger * cs . uni - dortmund . de)
  • André Gronemeier, LS2 (andre . gronemeier * cs . uni - dortmund . de)
  • Anna-Lena Lamprecht, LS5, (anna - lena . lamprecht * cs . uni - dortmund . de)
  • Tobias Marschall, LS11 (tobias . marschall * cs . uni - dortmund . de)
  • Hubert Wagner, LS1, (hubert . wagner * uni - dortmund . de)
  • Hoi-Ming Wong, LS11, (hoi - ming . wong * cs . uni - dortmund . de)

HiWis:

  • Nico Piatkowski
  • Arthur Pyka
  • Florian Schmoll
  • Timo Stöcker

Literatur

Wir werden im Programmierpraktikum ausschließlich C++ verwenden. Die meisten von euch werden sich mit dieser Programmiersprache noch nicht auskennen, da im ersten Semester 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.

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 (1. Auflage, Galileo Press 2006)

Ulrich Kaiser, Christoph Kecher: C++ – Von den Grundlagen zur professionellen Programmierung (3. Auflage, Galileo Press 2005)

Arnold Willemer: Einstieg in C++ (3. Auflage, Galileo Press 2007)

Ulrich Breymann: C++ &ndash Einführung und professionelle Programmierung (9. Auflage, Hanser Fachbuchverlag 2007)

Bjarne Stroustrup: Die C++ Programmiersprache (4. Auflage, Addison-Wesley 2000)
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 (4. Auflage, Addison-Wesley 2005)
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. Lizenzen für Visual Studio 2005 Professional könnt hier übrigens 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

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