Deklarative Software-Technologien

Last changed on May 26, 2021

Allgemeines

Elm Companies bietet eine Liste von Firmen, die Elm in der Frontend-Entwicklung einsetzen. Das Repo fp-companies-sh-hh listet ein paar Firmen in der Region auf, die funktionale Programmierung einsetzen.

Weitere Ressourcen

Der Vortrag The life of a file von Evan Czaplicki vermittelt ein paar Ideen, wie man eine Elm-Anwendung strukturiert. Der Vortrag Making Impossible States Impossible von Richard Feldman gibt Tipps zur Modellierung von Datentypen in Elm.

Abschlussprojekte

Beispiele aus vorherigen Veranstaltungen:

Hier werden ein paar Kategorien von Projektideen beschrieben, die genutzt werden können, um eine Idee für die konkrete Umsetzung des Projektes zu erarbeiten. Es sollte bisher keine Umsetzung Ihrer Projektidee in Elm geben. Im besten Fall hat Ihre Idee eine innovative Komponente, das heißt, es gibt bisher nicht nur keine Umsetzung in Elm sondern auch keine Umsetzung in einer anderen Sprache. Sie können das Projekt zum Beispiel nutzen, um einen Prototyp für eine Geschäftsidee zu entwickeln, die Sie schon immer einmal realisieren wollten. Oder Sie können das Projekt nutzen, um eine Kombination von Spielmechaniken zu testen, die es so noch in keinen Spiel gibt. Oder Sie können das Projekt nutzen, um ein kleines Werkzeug zu entwickeln, das Ihnen das tägliche Leben vereinfacht.

Offene Datenquellen

Es gibt viele offene Datenquellen, etwa von staatlichen Stellen (Open Data Schleswig-Holstein, Das Datenportal für Deutschland, Offenes Datenportal der EU, Das Datenportal der Deutschen Bahn AG) aus der Wissenschaft (Deutscher Wetterdienst), Kultur (Coding da Vinci) oder von Organisationen (Open Food Facts). Auf Grundlage dieser Datenquellen können verschiedene Formen von Anwendungen entwickelt werden. So können die Daten zum Beispiel für eine Visualisierung genutzt werden, etwa in Form eines Dashboards. Als Ideengeber sei hier das COVID-19-Dashboard des RKI genannt. Alternativ können diese offenen Daten aber auch für andere Arten von Anwendungen genutzt werden, zum Beispiel um ein Quiz umzusetzen. Als Beispiel sei hier How many European cities can you name? genannt. Das GitHub-Repo Public APIs listet weitere öffentlich zugängliche APIs zu verschiedensten Themen auf. Auf Grundlage dieser Daten können mit Elm verschiedenste Anwendungen umgesetzt werden.

Sie könnten zum Beispiel ein Quiz entwickeln, in dem man zu einem Wort raten soll, um welche Sprache es sich handelt. Oder Sie entwickeln ein Quiz, in dem man anhand der Zutaten eines Cocktails raten soll, um welchen Cocktail es sich handelt. Häufig entsteht ein Mehrwert für einen Nutzer, indem man die Daten von mehreren Web-Anwendungen, die bereits existieren, zusammenfasst. Zum Beispiel könnten Sie eine Anwendung entwickeln, die Issues von verschiedenen Plattformen anzeigt und es erlaubt, diese an einer zentralen Stelle zu verwalten. Das heißt, die Anwendung würde mit Web-Anwendungen wie GitHub, GitLab und Trello kommunizieren. Ein weiteres Beispiel wäre eine kleine Wetteranwendung, die Informationen von mehreren Wetterdiensten bezieht und diese aufbereitet. Der einfachste Ansatz wäre eine Art gewichteten Mittelwert zu bilden.

Historisches Computerspiel

Einfache Spiele eignen sich relativ gut für eine Umsetzung als Frontend-Anwendung. Zum einen bieten einfache Spiele im Normalfall genügend Interaktion, um ausreichend Anspruch zu bieten. Zum anderen wird im besten Fall gar keine Backend-Komponente benötigt. Als Ideengeber eignen sich zum Beispiel sehr alte Spielekonsolen. Für eine innovative Komponente bei der Umsetzung eines historischen Spiels kann die Umsetzung durch eine neue technische Dimension erweitert werden (siehe etwa 3D-Tetris).

Sie könnten ein historisches Spiel zum Beispiel für das Smartphone umsetzen und eine Steuerung über das Gyroskop vorsehen.

Karten- oder Brettspiel

Eine weitere Möglichkeit ist die Umsetzung eines Karten- oder Brettspiels. Um zu verhindern, dass eine künstliche Intelligenz für das Spiel oder ein Backend umgesetzt werden muss, kann das Spiel im Hot Seat-Modus implementiert werden. Das heißt, die Spieler wechseln sich beim Spielen nacheinander ab. In Zeiten der Corona-Pandemie bieten digitale Varianten von Brettspielen eine gute Alternative. Bei Brettspielen von kleineren Verlagen hat der Verlag zu Werbezwecken ggf. auch ein Interesse an der Veröffentlichung der Implementierung. Alternativ kann auch ein Brettspiel umgesetzt werden, das eine freie Lizenz hat. Ein Beispiel für eine solche Anwendung wäre etwa eine Web-Variante von Secret Hitler.

Interaktive Erklärungen

Frontend-Anwendungen eignen sich gut, um interaktiv Konzepte zu erläutern. Dabei kann es sich zum Beispiel um die Implementierung einer Verschlüsselungsmethode wie der Enigma handeln oder um Visualisierungen, etwa die Visualisierung von Sortieralgorithmen. Als Frontend-Anwendung lassen sich aber auch ganze interaktive Geschichten umsetzen, die Konzepte erläutern (siehe zum Beispiel Explorable Explanations und The Evolution of Trust: An Interactive Guide to Game Theory). Als Grundlage für die Umsetzung solcher interaktiven Erklärungen eignen sich zum Beispiel die Inhalte anderer Vorlesungen aber auch einfach persönliches Interesse.