Erfahrungsbericht zum Fachpraktikum

Mein Erfahrungsbericht zum "Fachpraktikum : Erweiterbare Datenbanksysteme" (WS17/18)

Vor Beginn der ersten Präsensphase bekommt man einige Unterlagen zugesendet, was SECONDO in Grundzügen erklärt. Daneben noch ein Aufgabenbogen, um SECONDO kennenzulernen. Man installiert sich SECONDO auf einer virtuellen Maschine, damit man diese Aufgaben bis zur ersten Präsensphase löst.

ACHTUNG! Ihr benötigt ein 64-bit fähiges Gerät, damit die virtuelle Maschine ausgeführt werden kann.

Im Grunde genommen geht es darum, dass man ein paar Befehle (queries) eingibt und sich die Ergebnisse notiert. Auf den Infoblatt steht zwar, dass die Lösungen der Aufgaben von den Betreuern kontrolliert wird, aber
letztdenendes wurden die Lösugen nur mündlich durchgegangen.

Die erste Präsensphase dauert drei Tage und geht von Donnerstag bis Samstag von 09:00 bis 17:00 Uhr (ausser Donnerstag 14:00 bis 17:00).
Am ersten Tag wird ein Vortrag über SECONDO gehalten und man erhält zwei weitere Kataloge und ein Laptop für das weitere Vorgehen. Der Katalog "How to implement an Algebra in SECONDO" ist sehr gut geschrieben und eignet sich gut als Nachschlagewerk, falls man mit der PSTAlgebra schwierigkeiten hat (dazu gleich mehr). Den anderen Katalog "Programmers Guide" fand ich überflüssig. Am zweiten und dritten Tag werden nur Vorträge gehalten und man darf für ca. 2 Stunden am Laptop programmieren. Die Zeit wollte einfach nicht rumgehen...

In der Zwischenzeit der Phasen 1 und 2 hat man 7 Wochen Zeit in Einzelarbeit die PSTAlgebra für SECONDO zu implementieren. Es sind 6 Aufgaben zu lösen, wobei man zwischen den Aufgaben 5 und 6 wählen kann welche man machen möchte. Die Aufgaben 1 bis 4 erfodern c++-Kenntnisse, Aufgabe 5 PROLOG-Kenntnisse und Aufgabe 6 Java-Kenntnisse. Falls ihr c++ nicht könnt, solltet ihr es euch spätestens bis zur Präsensphase 1 aneignen. Man muss kein Profi in c++ sein. Ich hatte auch keine c++ Erfahrungen und habe es mir in 6 Wochen einigermaßen selber beigebracht und es hat gereicht. Einfach mal im Internet nach Tutorials oder ähnlichen suchen.

Im Gegensatz zur ersten Präsensphase war die zweite Präsensphase interessant. Am ersten Tag wurden die Aufgaben in Form von Testfällen kontrolliert. Man sollte vor Ort ein paar Objekte anlegen und hat ein Bogen von Testfällen bekommen die man im Idealfall alle bestehen sollte. Die Betreuer kontrollierten dann die Konsolenausgaben. Sollte man ein paar Testfälle nicht bestehen, dann braucht man sich keine Sorgen um das weiterkommen zu machen. Anders sieht es aus, wenn ihr eine oder mehrere Aufgaben nicht geschafft habt. Dann habt Ihr die Gelegenheit diese in "kurzer Zeit" nachzuarbeiten und erneut vorzuzeigen. Dafür muss man aber nicht nach Hagen. Noch am selben Tag wurden die Aufgaben für die anstehende Gruppenarbeit vorgestellt.

Die Auswahl in diesen Semester waren : Routenplaner, Verteilte Algebra und Datenstromverarbeitung

Für den zweiten und dritten Tag wurden die Gruppen anhand der gewählten Aufgaben eingeteilt. Jede Gruppe hatte ein Betreuer. Die beiden Tage dienten dazu die Gruppenarbeit aufzuteilen, sich Gedanken über die Implementierung zu machen und sich ein paar zeitliche Ziele zu setzen.

Zwischen den Phasen 2 und 3 hat man 10 Wochen zur Realisierung der Aufgabe Zeit. Die Zwischenergebnisse wurden über CVS hochgeladen und verwaltet. Die Gruppenarbeit verlief gut und es wurden gute Fortschritte gemacht aber leider musste man öfters feststellen dass SECONDO so seine .... naja, eigenheiten hat. Wenn man sich mehrere Algebrendateien ansieht, so wird einem schnell klar, dass man dieselbe Sache auf mehrere Art und Weisen implementieren kann mit teils unterschiedlichen Ergebnissen. Wenn SECONDO abstürzt sind die Fehlermeldungen selten aussagekräftig, sodass man sich am besten ein Debugger nachinstalliert. Dadurch werden die Fehler wenigstens lokalisiert und kann sie deutlich leichter beheben. Die Dokumentation von SECONDO lässt auch zu wünschen übrig. Aber selber soll man laut Aufgabenstellung darauf achten, dass nichtkundige mit den erstellten Programmcode zurechtkommen. Naja sei es drum.

Zwei Wochen vor der dritten Präsensphase sollte man fertig sein, damit die Betreuer das System testen können. Es gibt ein Feedback und man hat bis zur Präsensphase Zeit eventuelle Mängel zu beheben und eine Präsentation vorzubereiten. Es sollen Folien erstellt werden, die die Konzepte erklären und das
System soll an einigen Beispielen vorgeführt werden. Dafür hat man insgesamt 90 Minuten Zeit (60 Minuten Vortrag, 30 Minuten Vorführung). Nachdem alle Gruppen ihre Ergebnisse vorgetragen haben wird mitgeteilt, ob man als Gruppe bestanden hat oder nicht.

Insgesamt fand ich das Fachpraktikum bis auf die erste Präsensphase interessant. Die Aufgaben waren alle zeitlich zu lösen auch wenn man Vollzeit Arbeiten geht. Man muss natürlich in kauf nehmen, dass man ein paar Abende und auch am Wochenende am Laptop programmiert. Man benötigt 5 Tage Urlaub, eventuell 8 Tage, wenn man schon am Mittwoch abreist. Programmierkenntnisse sollten in c++ und Java vorhanden sein. Prolog ist für die PSTAlgebra optional. Auch wenn der Begriff Datenbank im Fachpraktikum vorkommt, so benötigt man meiner Meinung nach keine umfassenden Datenbankkenntnisse. Falls ihr euer Wissen mit Algebren auffrischen müsst, so lest euch grob nochmal die Kurseinheiten 1 und 2 zu dem Kurs Datenstrukturen I durch.

Ich kann dieses Fachpraktikum auf jeden Fall weiterempfehlen
 
Oben