Im Rahmen dieses Programmierprojektes wird in Gruppen von jeweils 2-3 Personen ein webbasierter Routenplaner implementiert.
Das Projekt verläuft in 3 Phasen, jede Gruppe muss nach Ende einer Phase die entsprechende Aufgabe fertiggestellt haben, um weiter am Programmierprojekt teilnehmen zu dürfen.
Gruppen
Teilnehmer melden sich für die Lehrveranstaltung im C@mpus an. Nach Ablauf der Anmeldefrist (15.4) werden die Teilnehmer in 2er-Gruppen eingeteilt und jeder Gruppe ein git-Repository auf dem vom TIK gehosteten Github-Server zugeteilt. Sie können sich mit ihrem TIK (C@mpus) Account dort anmelden. Erst bei der ersten Anmeldung wird dort ein Account erstellt. Das bedeutet, dass man sich einmal anmelden muss, damit man erstmal im System ist und vom LV-Verantwortlichen dann ein Repository zugewiesen bekommen kann. Wenn man sich dort angemeldet hat, dann noch beim LV-Verantwortlichen melden, damit der einem ein Repository zuweisen kann.
Gruppe | Teilnehmer | Phase 1 | Phase 2 | Phase 3 |
---|---|---|---|---|
1 | M.Ö., J.W. | OK | OK | OK |
2 | S.A., H.C. | OK | ND | - |
3 | V.P., A.P. | OK | OK | OK |
4 | P.A., L.B., J.S. | OK | OK | ND |
5 | M.P., M.M. | OK | OK | OK |
7 | J.Ö., B.L. | OK | RNF | - |
8 | D.K., E.M. | OK | OK | OK |
9 | A.K., R.B. | OK | RNF | - |
10 | M.A., M.K. | OK | OK | OK |
11 | T.B., F.W. | OK | OK | OK |
12 | B.D., S.A. | OK | RNF | - |
TBR = to be reworked
RNF = requirements not fulfilled
ND = not delivered
ILIAS-Kurs
Es gibt einen Illias-Kurs für die Kommunikation zwischen den Teilnehmern.
Hardware
In dieser Veranstaltung werden Sie mit etwas größeren Datenmengen zu tun haben. Falls ihr Rechner weniger als 8GB RAM zur Verfügung hat, könnte es für die größeren Datensätze problematisch werden. Als Student haben Sie jedoch die Möglichkeit, in der bwcloud eine VM mit 8GB RAM (Stand 2018) zu nutzen (als Ubuntu 18.04 Image).
Formalien
Im C@mpus muss zusätzlich der Prüfungstermin bei Funke angemeldet werden. Die Lehrveranstaltung ist nicht benotet, es gibt nur Bestehen und Nichtbestehen.
Für alle Phasen:
Beim Test für die Abnahme wird eine VM mit dem Image Ubuntu 18.04 aus der bwCloud verwendet (i5 Haswell, 3.2 GHZ, Ubuntu 18.04, 8GB RAM). Java und Mavenversion richten sich danach welche in den Standardpaketquellen gegeben ist, siehe Versionen (Stand 14.4.2019). Das Programm muss in Java geschrieben sein und darf nur die Standardbibliothek verwenden. Entsprechende Dokumentation um das Programm zu bedienen muss beigefügt werden.
Eine Abgabe
- muss im gegebenen Git-repository hochgeladen werden als branch mit Namen “abgabe”
- muss einfach von der Konsole kompiliert und gestartet werden können, dazu muss es entweder einfache Skripte wie “build.sh” geben oder ein automatisiertes Build-System wie maven verwendet werden.
- darf keine Graphdaten enthalten
- darf keinen kompilierten Code enthalten, also keine .class oder .jar Dateien
- ein README enthalten, welches
- die Übersetzung in der Konsole auf einem Ubuntu 18.04 System erklärt
- die Benutzung erläutert
- das repository muss kleiner als 1MB sein
Zeit- und Platzanforderungen beziehen sich immer auf den Deutschland-Datensatz
- Implementierung muss auf einem Rechner mit 8GB RAM lauffähig sein
- Längen- und Breitengrad müssen jeweils als double-Genauigkeit, d.h. 8 Byte abgespeichert werden
- Bei Algorithmen für die eine Laufzeitanforderung besteht, müssen benötigte Laufzeiten auf der Konsole ausgegeben werden.
Phase I (Deadline 20.06.2019)
Erstellung der Routenplanungskomponente;
- Kriterien für das Bestehen:
- Die folgenden beiden Zeitanforderungen müssen eingehalten werden.
- Einlesen des Deutschland-Graphen darf maximal 2 Minuten dauern
- Korrekte Berechnung eines one-to-all Dijkstra darf nicht mehr als 20 Sekunden dauern
- Die Implementierung muss es erlauben, sowohl Start-Ziel-Anfragen zu stellen, als auch Dijkstra von einem Knoten zu allen anderen Knoten zu berechnen sowie danach Distanzen vom Startknoten abzufragen
- Desweiteren muss es die Möglichkeit geben, eine Datei mit Start-Ziel-Anfragen einzulesen und die Distanzen auszugeben (siehe bereitgestellte .que bzw. .sol Dateien): .que/.sol-Dateien; Aufruf z.B. mit ./myBenchmarker bw.fmi bw.que; die Ausgabe muss dann genau bw.sol entsprechen, d.h. ein Diff-Befehl sollte Gleichheit der Dateien ergeben.
- Die folgenden beiden Zeitanforderungen müssen eingehalten werden.
Phase II (Deadline 20.07.2019), Nachbearbeitung: 27.07.2019
Lokalisierung;
- Das Finden eines nächsten Nachbarn mit dem k-d-Tree darf im Schnitt nicht länger als 5 ms dauern.
Phase III (Deadline 31.08.2019)
Erstellung der Webclientkomponente und Webserverkomponente.
Es reicht aus wenn das Program lokal testbar ist, d.h. “localhost:8080” im Webbrowser, z.B. Firefox, einzutragen ist.
Treffen
Es stehen keine Treffen mehr an.
Folien
Links
ProGit Buch (Die Basics reichen aus)