Code Competition 01/2020: Programmierwettbewerb by Materna: Big Data Predictions

Anmeldung ist geschlossen

Code Competition 01/2020: Programmierwettbewerb by Materna: Big Data Predictions

24 24 people viewed this event.

Welche Vorhersagen lassen sich mit Big Data treffen?

Big Data ist in aller Munde. Daten sind Wissen und Wissen ist Macht. Aber was ist dran an diesem Spruch und dem gehypten Begriff der “Big Data”?

{ABOUT}

Big Data ist in aller Munde. Daten sind Wissen und Wissen ist Macht. Aber was ist dran an diesem Spruch und dem gehypten Begriff der “Big Data”?
Damit wollen wir uns in dieser Code Competition auseinandersetzen. Bei “Big Data” geht es um die Auswertung von großen Datenmengen. Die Auswertung besteht darin, die Datenmenge zunächst aufzubereiten, sodass sie von Software mit entsprechenden Algorithmen automatisch analysiert werden kann. Dann geht es um die Erkennung von Mustern und Zusammenhängen innerhalb der Daten und schließlich um die Herleitung von Erkenntnissen aus entdeckten Mustern und die Visualisierung dieser Erkenntnisse.
Folgende Schritte sind also wichtig:

  • Aufbereiten
  • Muster erkennen
  • Erkenntnisse aus Mustern herleiten
  • Erkenntnisse visualisieren

{INPUT}

Wir stellen Dir einen Datensatz eines Rennspiels zur Verfügung. In diesem Datensatz findest Du über 160.000 eingetragene Rennen.
Aus diesen (Meta)-Daten lassen sich bereits viele spannende Aussagen treffen (Wer fährt präferiert wann und gegen wen Rennen? Gewonnen oder Verloren?) und Vorhersagen ableiten.
Tipp: Filtere die Einträge je nachdem, mit welcher Fragestellung Du die Daten untersuchst.

Die Daten

Um Deine Lösung zu entwerfen, stellen wir Dir einen Datensatz zur Verfügung. Diese Competition ist abgelaufen, weshalb wir dir keine Daten zur Verfügung stellen können.

Der Datensatz beinhaltet folgende Informationen/Spalten:

  • ID: Die ID des Eintrages
  • race_created: Wann wurde das Rennen angesetzt/geplant?
  • race_driven: Wann wurde das Rennen ausgetragen?
  • track_id: ID der Rennstrecke, auf der das Rennen ausgetragen wurde.
  • challenger: userID des Herausforderers
  • opponent: userID des Gegners (Herausgeforderter)
  • money: Einsatz des Rennens (in EUR)
  • fuel_consumption: Spritverbruauch der Teilnehmer während des Rennens (in l)
  • winner: Gewinner des Rennens (userID)
  • status: Der Status des Rennens. Möglich sind: waiting, finished, retired, declined
  • forecast: Wettervorhersage für das Rennen. Es handelt sich bei dem Feld (es handelt sich bei der CSV-Datei um einen Export aus einer (My)SQL-Datenbank) um ein serialisiertes Array.
    Das bedeutet, es wird ein Datentyp Array in Form eines Strings in der Datenbank gespeichert. Der Hintergrund ist, dass man nicht für jeden Wert im Array ein eigenes Feld in der Tabelle der Datenbank haben möchte.
    Nun aber zu den Daten an sich. Ich will Dir Daten anhand des Strings aus dem „forecast“-Feld der ersten Zeile erläutern:
    a:4:{s:5:”sunny”;i:10;s:5:”rainy”;i:70;s:8:”thundery”;i:0;s:5:”snowy”;i:20;}
    Das a:4 bedeutet, dass es sich um ein serialisiertes Array mit 4 Datenpaaren handelt. Der Inhalt des Arrays steht dann in den geschweiften Klammern. Jedes Datenpaar repräsentiert eine Wetterart und die Wahrscheinlichkeit ihres Auftretens. Die Wetterarten (Einträge im Array) werden durch Semikolons getrennt. Es gibt vier Wetterarten (sunny, rainy, thundery, snowy). Jeweils davor steht „s:“ und eine Zahl. Die Zahl beschreibt lediglich die Länge des folgenden Strings (bei sunny 5 Zeichen, bei thundery 8 usw.). Hinter der Wetterart steht jeweils noch ein „i:“ und eine Zahl. Die Zahl hinter dem i (für Integer) beschreibt die prozentuale Wahrscheinlichkeit für das Auftreten des jeweiligen Wetters.
    Der obige Eintrag bedeutet also aufgeschlüsselt:
    10% sonniges Wetter (Wahrscheinlichkeit)
    70% regnerisches Wetter (Wahrscheinlichkeit)
    0% Gewitter
    20% Schneefall
  • weather: Tatsächliches Wetter

Deine Abgabe soll:

  • Spannende Fragestellungen an den Datensatz formulieren
  • Die Daten anhand der Fragestellungen auswerten
  • Die Aussagen/Ergebnisse visualisieren
  • Optional: Voraussagen über weitere Rennen und Rennergebnisse zu verschiedenen Fahrer-IDs ausgeben.

Selbstverständlich kannst Du weitere Zusatzfeatures implementieren 😉

{REVIEW}

Worauf achten wir bei der Bewertung Deiner Abgabe?

  • Funktionalität: Lässt sich das Programm bedienen? Tut die Anwendung oder die Funktion, was sie soll? Wie umfangreich sind die Funktionen?
  • Code-Qualität: Ist der Code sinnvoll strukturiert und effizient?
  • Code-Lesbarkeit / Dokumentation: Lässt sich der Quellcode nachvollziehen? Ist der Code kommentiert?
  • Setup: Ist das System einfach einzurichten / aufzusetzen? (z.B. mittels guter Dokumentation, Docker, Vagrant, Skripte, o.ä.)
  • README: Wird eine README mitgeliefert, die zeigt, wie das Programm aufgerufen werden kann?
  • Welche Zusatzfeatures wurden eingebaut?

Facts

Win!

  1. Platz: 500 €
  2. Platz: 400 €
  3. Platz: 300 €

Zeitlicher Ablauf

  • Abgabetermin:
    31. Januar 2020 – 23:59Uhr
  • Auswertung:
    Februar 2020
  • Siegerehrung:
    März 2020

Abgabe

Programmiersprachen:

  • Java, JavaScript, Python.
  • Als Form der Lösung ist erlaubt: Webseite, Desktopanwendung oder CLI Konsolen Ein- und Ausgabe.
  • Die Verwendung von OpenSource Bibliotheken ist erlaubt und erwünscht.
  • Bereich: IoT, reaktive eventorientierte Microservices, PWA (progressive WebApps) und Cloud.

Wir führen diese Code Competition in Zusammenarbeit mit unserem Partner durch:

Materna Information & Communications SE

Event registration closed.
 

Date And Time

01/01/2020 @ 00:00 to
29/02/2020 @ 00:00
 

Anmeldeschluss

31/01/2020
 

Ort

Online-Veranstaltung
 

Veranstaltungskategorie

Event Tags

Share With Friends