Deklarative Software-Technologien
Abschlussprojekte
Auf dieser Seite werden Information zum Abschlussprojekt zur Verfügung gestellt.
Beispielprojekte aus vorherigen Veranstaltungen
Bei diesen Beispielen sollte beachtet werden, dass die formalen Anforderungen an die Projekte in den vergangenen Semestern zum Teil anders war. Die hier vorgestellten Ergebnisse würden daher ggf. den formalen Anforderungen in diesem Semester gar nicht mehr genügen.
- Elmigma (eine Implementierung der Enigma)
- 3DelmTRIS (eine 3D-Variante von Tetris)
- Das Spiel Kalaha (Brettspiel)
- Pacman (altes Computerspiel)
- Elmgorithm (Visualisierung von Sortieralgorithmen)
- Gladius (Shoot ’em up)
- Stream Time (eine Art Programmzeitung für Twitch)
- Guess my Cocktail (Ratespiel)
- Wandering Journey (Strategiespiel)
Grundlegendes zum Projekt
Aufgrund des begrenzten zeitlichen Umfangs des Projektes müssen die entwickelten Anwendungen nicht vollständig sein, sondern sollen nur die Idee illustrieren. Es ist also völlig legitim, an bestimmten Stellen einfach anzuzeigen, dass noch eine Funktionalität fehlt oder auch Funktionalitäten durch statische Daten zu simulieren. Für die umgesetzte Funktionalität sollten aber Fehlerfälle korrekt und sinnvoll behandelt werden. Grundsätzlich sollte eher auf Qualität als auf Quantität gesetzt werden. Häufig werden Anwendungen, die einen Aspekt sehr gut umsetzen, besser bewertet als Anwendungen, bei denen es viele Funktionen gibt, die alle große Mängel aufweisen. Der Aspekt “Umfang der Lösung” ist zwar Teil der Bewertung, für ein Übererreichen dieses Aspekts wird aber auch keine bessere Note vergeben.
Datenquellen
Alle Anwendungen sollen auf einem Daten-Backend basieren. Zu diesem Zweck soll eine Datenquelle verwendet werden. Es können zum Beispiel Daten aus Open Data-Quellen verwendet werden.
Open Data
Es gibt viele Quellen für offene Daten, etwa von staatlichen Stellen (Bundesstelle für Open Data, Open Data Schleswig-Holstein, Das Datenportal für Deutschland, Offenes Datenportal der EU, Das Datenportal der Deutschen Bahn AG) aus der Wissenschaft (Deutscher Wetterdienst) oder aus aus dem Bereich Kultur (Coding da Vinci). Da es seinen Sitz in Flensburg hat, soll hier explizit das Kraftfahrtbundesamt (KBA) als Quelle für offene Daten erwähnt werden. Das Bundesministerium für Verkehr hat mit der Mobilithek einen zentralen nationalen Zugangspunkt für Mobilitätsdaten geschaffen. Das KBA stellt dort ebenfalls seine Open Data-Angebote zur Verfügung, zum Beispiel zu den folgenden Aspekten:1
- Fahrzeugbestände und -zulassungen: Aufschlüsselung nach Bundesländern, Kraftstoffarten, Emissionsklassen etc.
- Typgenehmigungen und Fahrzeugdaten: CO₂-Werte, Verbrauchsdaten, technische Parameter
- Statistische Veröffentlichungen zu den zentralen Registern der KBA:
- ZFZR: Zentrales Fahrzeugregister
- ZFER: Fahrerlaubnisregister
- FAER: Fahreignungsregister (Verkehrsverstöße)
Die meisten der Daten auf Open Data-Plattformen stehen in Form von CSV- oder Excel-Dateien zur Verfügung. Um CSV-Dateien bereitzustellen, kann die Anwendung Datasette genutzt werden. Falls nur eine Excel-Datei mit den Daten zur Verfügung steht, muss die Datei ggf. einmal in eine CSV-Datei überführt werden. Die Daten müssen nicht wirklich öffentlich zur Verfügung gestellt werden. Es reicht, wenn für die Entwicklung und zum Testen ein lokaler Server gestartet wird. Bitte geben Sie später bei der Entwicklung in einer README-Datei an, welche Schritte ausgeführt werden müssen, um die Anwendung zu testen. In den Open Data-Plattformen finden sich auch Daten in Form von anderen Formaten, etwa als PDF-Dateien. Diese Daten können natürlich auch in geeigneter Form in die Anwendung eingebunden werden.
Open APIs
Neben Open Data in Form von Dateien gibt es auch öffentliche APIs, also Web-Server, die Daten direkt zur Verfügung stellen. Das GitHub-Repo Public APIs listet zum Beispiel öffentlich zugängliche APIs zu verschiedensten Themen auf.
Andere Datenquellen
Grundsätzlich ist es auch erlaubt, andere Datenquellen zu nutzen. Wenn also aus einer anderen Datenquelle Daten, etwa im CSV-Format, vorliegen, ist es ebenfalls erlaubt, die Anwendung auf diesen Daten basieren zu lassen.
Mögliche Anwendungen
In diesem Abschnitt soll illustriert werden, welche Formen von Anwendungen auf Grundlage von offenen Daten erstellt werden können.
Visuelle Aufbereitung
Die Daten aus einer Datenquelle können zum Beispiel visuell aufbereitet werden. Im Gegensatz zu gängigen Beispielen sollte hierbei darauf geachtet werden, dass die Daten in einer sinnvollen Art und Weise aufbereitet werden. Die einfachste Möglichkeit, Daten visuell aufzubereiten, ist ein Dashboard. Als Beispiel gibt es etwa eine Anwendung, die den Fahrzeugbestand im Kreis Neuss visualisiert. Beispiele für verschiedene Arten von Dashboards finden sich auch im Statistikportal des Kraftfahrtbundesamtes. Viele Daten können auch in Form einer Karte visuell aufbereitet werden. Als Beispiel sei hier eine Karte mit Denkmälern in Schleswig-Holstein. genannt. Daten können aber auch vergleichsweise einfach interessant visuell aufbereitet werden, wie etwa in der Anwendung zur Trinkwasserqualität in der Region Heilbronn.
Mit dem neuen Statistikportal des KBA werden Inhalte aus den Themenbereichen Kraftfahrzeuge, Kraftfahrende und Kraftverkehr interaktiv und dynamisch dargestellt.
Interaktive Erklärungen
Die Anwendung zur Trinkwasserqualität hat bereits eine Schnittmenge mit dem Konzept der interaktiven Erklärungen. Bei diesen Frontend-Anwendungen werden häufig Konzepte erläutert. Ein vergleichsweise bekanntes Beispiel ist The Evolution of Trust: An Interactive Guide to Game Theory, die Konzepte aus dem Bereich der Spieltheorie erläutert. Unter Explorable Explanations finden sich noch weitere Anwendungen aus dem Bereich der interaktiven Erklärungen. Als Grundlage für die Umsetzung solcher interaktiven Erklärungen eignet sich vor allem Wissen aus dem Bereich der privaten Interessen. Wenn man sich zum Beispiel sehr gut mit Umweltaspekten auskennt, wäre es ggf. sinnvoll eine entsprechende Anwendung zu einem Thema in diesem Bereich zu entwickeln. Wenn eine solche Anwendung umgesetzt wird, sollten Daten aus einer Datenquellen integriert werden. Ein Beispiel für eine Anwendung dieser Art ist der Artikel Aktuelle Datenperle – Fahrraddiebstähle, der die Statistik zu Fahrraddiebstählen in Berlin illustriert. Ein anderes Beispiel ist die Anwendung Klimawatch, welche die Entwicklung des CO2-Ausstoßes verschiedener Städte illustriert.
Spiele
Alternativ können offene Daten auch zur Umsetzung eines Spiels genutzt werden. Man kann mit den Daten zum Beispiel ein Quiz gestalten, wie es in How many cities can you name? der Fall ist. Das Quiz verbindet auch geschickt zusätzliche Hintergrundinformationen mit dem Quiz. Alternativ wäre es auch möglich, die Leveldaten eines Spiels aus den offenen Daten zu erzeugen. So könnte die Struktur der Level eines Spiels zum Beispiel aus Kartendaten erzeugt werden. Alternativ könnte die Größe von Objekten wie Hindernissen oder Gegnern mit offenen Daten korrelieren. Man kann auch andere Aspekte eines Spiels mit Daten in Einklang bringen. So könnte man die Wahrscheinlichkeitsverteilung, nach der gegnerische Fahrzeuge gewählt werden, auf der Verteilung von Fahrzeugtypen in der Realität basieren lassen.
Zu guter Letzt soll noch erwähnt werden, dass ein Mehrwert auch dadurch entstehen kann, dass eine Kombination von mehreren Datenquellen genutzt wird. Durch diese Kombination können Korrelationen aufgezeigt werden. Alternativ können auch mehrere Quellen zu einem ähnlichen Thema zu einer Anwendung kombiniert werden.
Technische Aspekte
Im Kapitel Weitere Aspekte einer Elm-Anwendung im Skript finden sich noch ein paar technische Aspekte, die bei der Umsetzung einer größeren Elm-Anwendung relevant sein könnten.
-
Das Forschungsdatenzentrum des KBA bietet auch (anonymisierte) Mikrodaten für wissenschaftliche Zwecke an. ↩