ODYSSEE

Welcome to ODYSSEE, the automatic team distribution for "Praxis der Softwareentwicklung" at the KIT.

What's ODYSSEE?

ODYSSEE is the central administration tool for Praxis der Softwareentwicklung (PSE). It stands for:

Odyssee
Distributes
Your
Students (to)
Software
Engineering
Exercises

If you want to participate in PSE this semester, you need to register here. Afterwards, you can view and rate available projects. You can also form a group with fellow students if you want to work on the same project together.
Then, ODYSSEE assigns each student a project considering your wishes and other external constraints on a best effort basis. When the distribution is complete, you will be notified via email about your assigned project and team. You can also find this information when you log back in into ODYSSEE.

The kick-off event (Auftaktveranstaltung) gives further information about the projects. Also, don't forget to register for PSE in the Campus system.

Current PSE PSE Summer 2019

Sign up start Friday, April 26, 2019 4:30 PM
Sign up deadline Monday, April 29, 2019 11:59 PM
Link to the institute homepage
PSE im Sommersemester 2019

Projects (not final)

Where is my stuff?
Using small electronic devices, we can track our objects for a while. But currently they have limitations.
Existing trackers are typically Bluetooth based low-power IoT devices, that can work with a small battery for a long time.
However they are limited in working distance and as they measure the signal strength, they can only report the distance, not direction or location.

Alternatively GPS trackers with dedicated SIM card or long distance communication protocols can be used for object tracking.
These trackers require significant hardware resources (GPS, SIM card). Although they can find the accurate location, typically they have high power consumption and limited battery life.

This project combines the properties of the two without their limitations.
It will be low power consumption using low-power Bluetooth trackers and it will be able to locate the objects accurately using a mobile phone.
It will consist of 2 components:
1) The database: The users will be able to register their low-energy Bluetooth trackers on the database and enable it to search anytime (optional).
2) A mobile app that has a copy of the database and uploads its location whenever it encounters any Bluetooth tracker.

The mobile app will be used as a traveling sink node for the wireless network of Bluetooth trackers.
This way, the crowd (via the mobile app) will help locating the missing objects.

For questions, please feel free to email me at alan@kit.edu

We will develop a platform which enables the user to generate 2D grid-based puzzle games that are "simple to learn, yet hard to master". Some examples for such grid-based puzzles can be Sokoban, Lights Out, Block puzzles from various video games, or (developed for the Automated Planning & Scheduling lecture) Bomberda. Provided some formal specification of a puzzle game, an Automated Planning engine (which already exists) will serve as a powerful backend for the generation and verification of interesting puzzle instances which a player can then attempt to solve.
  • The user provides a formal description of a puzzle and accompanying resources (graphical assets, audio, ...).
  • The system generates a webpage (HTML5/JS) with a playable puzzle game.
  • Puzzle instances can be automatically generated by the system. Instances may also be provided by the user, in which case the system can verify their solvability.
  • The system can show the optimal solution to a given puzzle instance and compare it to the player's solution.
Technology framework: Java server application serving HTML/Javascript pages. Pure HTML/Javascript for generated puzzle games. Aquaplanning as AI engine.

Ever growing interest and usage of deep learning rises a question on the performance of various infrastructures suitable for training of neural networks. For this purpose we explorer the potential of TensorFlow Benchmarks packed in a Docker container. In this project, you 

  • Get acquainted with Tensorflow [1] and TF Benchmarks [2]
  • Should be able to run the Benchmarks packed in Docker containers [3] [4]
  • Among a plethora of available TF Benchmark settings [2], understand, explain and recommend best suited ones for various cases
  • Come up with the concept for a service to share results of benchmarks:
    1. Authentication via OpenID [5] connect (Google, DEEP [6], ...)
    2. Ability to upload Benchmark results
    3. Benchmark results should be stored in a certain form of a (searchable) database (any modifications/requirements to the Benchmark output?)
    4. There should be a search mechanism, e.g. to show results for a particular GPU card or for a particular data center
    5. It should be possible to generate plots (which one, how?). Example: show speedup if 1-2-4 GPUs were tested (does it scale linearly or degrades?)
    6. A possibility to compare results for different tests, e.g. different tests of the same data center or just different tests. What parameters to show by default, which are optional?
    7. If one authenticates via Google and has access to Google Compute Engine [7], would it be possible to run Benchmarks on GCE, how?
N.B. not all items 1-7 are expected to be implemented in practice within the semester.

References and links:

Proteins are large bio-molecules that perform a wide variety of
functions within organisms. Examples range from digestion, immune
responses, matter transport and even hair growth. One of the guiding
principles in protein research is that the three-dimensional shape
directly dictates its function. Therefore, research in the field aims at
identifying methods to infer or predict structural parts. This includes
-among other things- spatial contacts between the
amino acids within a protein. Up until recently, physics-based models
and simulations have been mainly used to predict said contacts.

At the same time, machine learning technology has recently made enormous
progress in classifying objects to a high degree of accuracy.
State-of-the art deep neural networks (DNN) are capable of extracting
higher-order features and patterns within input data that go beyond what
humans would naturally identify as characteristic. These features are
automatically derived by the machine learner using previously made
annotations, called labels. As a result, the currently best tools for
contact prediction in protein research are neural network based. For
researchers it is often challenging to understand how and AI reaches a
conclusion. It often involves a profound investigation of a network's
internal parameters.

In order to simplify this process, you and your team are to develop, in
line with this PSE topic, a software ecosystem that enables the
web-based visualization and display of meta-data information of neural
networks used for contact-map prediction in protein research. This
includes the design, development, integration, and testing of the
following components:


1.     An extensible collector framework for neural network architecture
and training meta information;

2.     A web server able to process the collected data;

3.     The communication channel interlinking the collector and web-server;

4.     A modern visualization front-end in the browser;

5.     The integration of the state-of-the-art deep learning library
PyTorch;

6.     Optional features, including:

     6.1. Neural network training phase graph plotting;

     6.2. Web-based prediction image visualization;

     6.3. Tracking of the history of a single training run as well as
multiple training runs.


The goal of the project is the delivery of the entire software ecosystem
for the interactive visualization of neural networks used for protein
contact map prediction. As part of the realization a sustainable and
maintainable software engineering approach should be followed. This
entails, a thorough software architectural design in a modeling language
(e.g. UML), as well as the utilization of common software engineering
tools. Furthermore, the publication of the source code on open source
software repositories, a meticulous code documentation, the provision of
units tests and their execution as part of a Continuous Integration (CI)
cycle are expected in line with this project. The choice of suitable
programing libraries is left to the project team, however, suggestions

are provided by the supervisors. The software system should be designed
in an object-oriented fashion, and be composed out of a reasonable set of
classes providing functionality.


References:


Deep Learning Crash Course:
https://developers.google.com/machine-learning/crash-course/

PyTorch: https://pytorch.org/

Better Scientific Software Initiative: https://bssw.io/pages/intro-to-cse

Das Ziel des PSE-Projektes ist es, eine Anwendung zum vorausschauenden Parken (engl. predictive parking) zu entwickeln. Das Projektziel hierbei ist, dass eine Optimierung der Verkehrssteuerung und des Parkraum-Managements erreicht wird. Freie Parklücken werden anhand von Sensoren der Autos erfasst. Durch diese gewonnenen Echtzeit-Informationen lässt sich die aktuelle Parkraumsituation erfassen. Die von Ihnen zu entwickelnden Anwendung soll dem soll die Parkraumsituation erfassen und dem Verkehrsteilnehmer auf einer leicht bedienbaren Oberfläche zur Verfügung stellen. Bei der Entwicklung sollen insbesondere die Konzepte des Bahavior-Driven Development (BDD) und des Domain-Driven Design (DDD) verwendet werden, so dass die entwickelten Microservices eine hohe Wiederverwendung aufweisen. Die Konzepte werden beim ersten Treffen vorgestellt. Genauere Informationen finden Sie auf unserer Website.

Für ein erfolgreiches Training benötigen die meisten tiefen neuronalen Netze sehr viel Trainingsdaten. Für manche Aufgabenbereiche ist es sehr schwierig diese riesigen Datenmengen zu erzeugen, insofern es nicht möglich ist die Generierung zu automatisieren. Ein praxisbezogenes Beispiel dabei ist das Greifen mit humanoiden Händen in der Robotik: Hier können die Trainingsdaten aufwendig manuell per Hand gelabelt werden, direkt auf dem Zielsystem generiert werden, durch Vormachen eines Menschens oder in Simulationen erzeugt werden. Da alle anderen Methoden sehr zeit- und/oder arbeitsaufwändig sind, soll in diesem Projekt eine automatisierte Pipeline erstellt werden, welche die Generierung von Trainingsdaten in Simulationen ermöglicht. Diese Pipeline soll die Robot Development Engine ArmarX des Instituts für Hochperformante Humanoide Technologien (H2T) verwenden um eine Vielzahl verschiedener Anwendungen in der Robotik zu unterstützen. 

Aufgabe:
- Erstellung eines Frameworks für die Datengenerierung in ArmarX am Beispiel Greifen von unbekannten Objekten
- Dynamische Verteilung von Rechenlast auf mehrere PCs
- Überwachung von Fortschritt und Zustand der Generierungsprozesse
- Einsammeln und Validieren von Ergebnissen
- Visualisierung der Ergebnisse
- GUI zur Steuerung

Der Informatikunterricht an Schulen wird immer wichtiger und bietet gute Möglichkeiten Inhalte mittels digitalen Lernplattformen zu vermitteln. Ein Thema im Informatikunterricht ab Klasse 7 sind Datenbanken.
Um Datenbankanfragen im Rahmen des Informatik Unterrichts zu stellen und  deren Auswirkungen zu beobachten gibt es bereits eine Reihe von Standard-Werkzeugen. Diese werden aber bisher noch nicht allen Anforderungen für den Unterricht gerecht.

Daher soll in diesem PSE eine Open-Source Lernplattform im Rahmen des Projekts OSL2 entwickelt werden, die zum einen in Schulen im Unterricht zum Einsatz kommen soll und zum anderen bei der Ausbildung von Informatik-Lehrenden unterstützen soll.

Mit dem Werkzeug sollen zwei Aufgaben erfüllt werden:

1) Das Schreiben und Verstehen von Datenbankanfragen und -manipulationen soll unterstützt werden
2) Das Thema Datenbankumformungen (Normalformen) soll vermittelt werden können

Das zu entwickelnde Werkzeug soll Lehrenden ein Interface bieten, um Aufgaben und Datenbanken zu erstellen und zu verwalten. Weiterhin sollen Schüler die Möglichkeiten haben diese Aufgaben in der Plattform zu bearbeiten, mit einer anschließenden automatischen Prüfung der Ergebnisse.

Zur Unterstützung beim Erlernen von Datenbankumformungen haben Schüler eine grafische Benutzeroberfläche zur Verfügung in der sie Datenbanken mittels direkter Manipulation sowie mittels SQL-Befehlen verändern können.

Da die Hardwarelandschaft an Schulen heterogen ist und die Plattform auch außerhalb der Schule zugänglich sein soll,
bspw. zum Lösen von Hausaufgaben, ist hier eine Cloud-Applikation mit Web-Front-End angedacht.

Motivation

Mit Spektrometern lassen sich bestimmte Eigenschaften wie Wellenlänge der Strahlung, Energie, und Masse bestimmen. Dabei macht man sich die Eigenschaft zu Nutze, dass elektromagnetische Strahlung je nach Energie eine Wechselwirkung mit Stoffen oder Molekülen eingeht. Die auftretende Intensitätsverteilung wird Spektrum genannt. Pionier auf diesem Gebiet war der deutsche Physiker und Optiker Joseph von Fraunhofer (1787-1826)[1]

Mittels geeigneter Datenanalyse z.B. maschinelle Lernverfahren ist es möglich, relevante chemische Informationen aus dem Spektrum zu schätzen. Als Teil der bisherigen Arbeit wurde beispielsweise eine Foodscanner App entwickelt. So kann der Frischegrad einer Frucht ermittelt werden.[2] Dadurch kann die Verschwendung von Lebensmitteln deutlich reduziert werden. Auch in der Industrie können anhand der Spektren verschiedene Schüttgüter automatisiert sortiert und Produktionsprozesse überwacht werden.[3]

Aufgabe

Ihre Aufgabe besteht darin, für die bestehende Datenbank eine neues webbasiertes Front-End zu entwickeln, welches die Pflege der Daten vereinfacht und neue Möglichkeiten zur Visualisierung und Analyse bereitstellt.

Sonstiges

Das Projekt findet am Fraunhofer IOSB statt. Zudem bieten wir an, einzelne Themenschwerpunkte der optischen Spektroskopie im Rahmen einer Bachelor- oder Masterarbeit weiter zu vertiefen. Hierbei werden moderne Methoden des maschinellen Lernens eingesetzt.

Kontakt: julius.krause@kit.edu

In einer Krisensituation (Erbeben, Überschwemmung, etc.) geschehen viele Ereignisse gleichzeitig: Notrufe gehen ein, Ersthelfer und Rettungskräfte bewegen sich im Einsatzgebiet und Betroffene schreiben Nachrichten in sozialen Medien. Zum Testen von Systemen die das Krisenmanagement unterstützen, müssen Testszenarien erstellt werden. Hierzu sollen in diesem PSE ein grafisches Werkzeug entwickelt werden, das die Erstellung und Ausführung von zeitlich abhängigen Ereignissen ermöglicht.

Thematischer Hintergrund dieses PSEs ist ein europäisches Forschungsprojekt, indem ein komplexes Entscheidungsunterstützungssystem für das Management von Krisensituationen entwickelt wird. Im Rahmen des PSEs soll ein Modul entwickelt werden, indem realitätsnahe Szenarien (Flut, Hitzewelle und Flächenbrand) für dieses System erstellt werden können. Teil dieses Szenarios können beispielsweise simulierte Sensormesswerte, die Bewegung von Rettungskräften, neue eintretende Ereignisse oder Nachrichten aus sozialen Medien sein. Die Vorkommnisse sollen in einer einfach zu bedienenden GUI angelegt (z.B. auf einer Karte) und deren zeitlicher Ablauf (Zeitstrahl) festgelegt werden können. Mit Hilfe einer Ausführungskomponente wird das aufgebaute Szenario abspielt und die entsprechenden Aktionen im Entscheidungsunterstützungssystem angestoßen.

Neben einer spannenden Aufgabenstellung, die direkt in einem internationalen Forschungsprojekt eingesetzt werden soll, bieten wir eine intensive Betreuung über das gesamte PSE sowie modernste Tools zur Software-Entwicklung.

Teilnehmer für wissenschaftliche Studien zu finden, ist gerade bei präzisen oder sehr einschränkenden Anforderungen ein schwieriges Unterfangen. Im Rahmen dieses PSE Projektes soll eine Plattform entwickelt werden bei der potentiell Studieninteressierte Daten von sich via einer App erfassen können. Mit Hilfe dieser Daten können Studienersteller nun ein Matching für Studien durchführen und so passende Teilnehmer finden. Durch den Kanal der App kann ein Studienersteller potenzielle Teilnehmer kontaktieren.

Neben dieser Anforderung soll eine Privacy-by-Design Architektur im Fokus stehen bei dem der Nutzer volle Kontrolle über seine Daten hat und ein Studienersteller nur so wenige Daten wie möglich erhält. Verschiedene Matchingverfahren sollen wenn möglich nur lokal auf den Geräten der Teilnehmern durchgeführt.
Ein weiterer Fokus ist die nutzerzentrierte Umsetzung der App und dem System für die Studienersteller.

In unserer Abteilung werden verschiedene Fachinformationssysteme für die Domänen Umwelt und Risikomanagement entwickelt. Einerseits gibt es desktopbasierte Client-Anwendungen. Für diese wurden Datenvisualisierungen erstellt, die als Konfigurationen in der Datenbank der jeweiligen Anwendung vorliegen. Zum anderen gibt es Webanwendungen, die auf dieselben Daten zugreifen. In den Webanwendungen müssen bisher eigene, neue Datenvisualisierungen erstellt werden.

Ziel des PSE ist es die Verwendung von Visualierungs-Konfiguration sowohl für die Desktopanwendungen als auch für die Webanwendungen zu erlauben. Hierzu soll ein Layoutgenerator sowie eine webbasierte Konfigurationsanwendung entwickelt werden. Über diese soll es möglich sein einer Datenquelle einen Layoutgenerator zuzuweisen und zu konfigurieren. Der jeweilige Layoutgenerator erzeugt aus einer Layoutbeschreibung eines desktopbasierten Informationssystems eine Webdarstellung auf der Basis von HTML5 und Javascript.
Die Anwendung muss in Java entwickelt werden, damit sie sich in bestehende Javabasierte CMS einbinden lässt.


Am Fraunhofer IOSB werden viele Projekte bearbeitet, die verschiedene Geodaten als Grundlage verwenden. Dabei handelt es sich um sehr unterschiedliche Daten; von einfachen Raster/Vektor-Karten über Höhenprofile bis hin zu detaillierten 3D-Modellen. 


Bisher werden alle Daten im Dateisystem abgelegt und für jedes Projekt einzeln zusammenkopiert und konfiguriert. 
Ziel des PSE-Projektes ist es, den beschriebenen Prozess zu automatisieren.
Über eine Weboberfläche sollen alle verfügbaren Geodaten verwaltet werden. Ein einfaches Interface soll das Zusammenstellen sowie einen reproduzierbaren Export der Daten ermöglichen. Hierbei müssen Randbedingungen wie die Lizenz der Daten oder die Dateigröße (mehrere 100Gb / Datensatz) berücksichtigt werden.

Das Ergebnis des Exports soll ein Festplatten-Image sein, welches direkt mit einem existierenden Server verwendet werden kann, um die Geodaten über standardisierte Schnittstellen auszuliefern.

Zur modellbasierten Sicherheitsanalyse werden am Fraunhofer IOSB Semantic Web Ontologien genutzt, um die nötigen Informationen über die Systeme und insbes. Netzwerke maschinenlesbar zu speichern. Einen Überblick über eine solche Ontologie zu bekommen ist jedoch sehr schwer, da gängige Repräsentationswerkzeuge diese lediglich als einen generischen Graphen visualisieren. Wünschenswert wäre allerdings eine Repräsentation, welche den typischen Netzwerkplänen ähnelt. In diesem PSE-Projekt soll ein solches Repräsentationswerkzeug entwickelt werden. Dabei steht als Schnittstelle zu den Informationen der Ontologie eine Java-API zur Verfügung. Weitere APIs oder Frameworks (z.B. zur Visualisierung) existieren. Welche letztendlich verwendet werden, wird den Studenten freigestellt.

Die Unterstützung von Entscheidungsträgern (z. B. im maritimen Raum Küstenwachen oder Wasserrettungsorganisationen) bei der Analyse von großen Datenmengen in unterschiedlichen Anwendungsdomänen zum Auffinden illegaler Handlungen steigt in seiner Wichtigkeit kontinuierlich. Für diese Situationsanalyse können bspw. sogenannte dynamische Bayes‘sche Netze verwendet werden. Das Ergebnis dieser Netze sind Wahrscheinlichkeiten von diversen Situationen (bspw. illegales Tauchen oder das Schmuggeln von Drogen). Auf Basis der Wahrscheinlichkeit werden Alarme oder Anomalien produziert, auf die die Nutzer aufmerksam gemacht werden.

Hierfür soll ein grafisches Toolkit entwickelt werden, mit dessen Hilfe dynamische Bayes’sche Netze modelliert und evaluiert werden können.

Datenanalysen müssen zunehmend schneller Ergebnisse liefern und mit größeren Datenmengen umgehen, so dass klassische Ansätze mit Datenbanken und Abfragen nicht mehr skalieren.

Mit Complex Event Processing (CEP) werden Ereignisse in Echtzeit analysiert, während sie geschehen. Dazu werden verschiedene Muster erstellt, die Datenströme aus Sensoren verarbeiten und sinnvolle Erkenntnisse ableiten.
Für die Auswertung ist jedoch nicht nur das Ergebnis wichtig, sondern auch die einzelnen Schritte der Daten durch das Muster. Ziel dieser Software-Entwicklung ist die Echtzeit-Darstellung dieser Datenströme in CEP-Mustern. Dazu wird ein Backend benötigt, dass Daten einliest und mit einer CEP-Engine verarbeitet. Das Muster wird im Frontend in einer Web-Anwendung erstellt und die Ergebnisse anschließend visualisiert, so dass die einzelnen Datenströme im Muster sichtbar werden. Die Muster und Kombinationen von Events werden dabei schnell komplex.

Für einen ersten Einblick in CEP empfehlen wir die Dokumentation der CEP-Engine Siddhi (https://github.com/siddhi-io/siddhi). Zur Implementierung gibt es jedoch keine Vorgaben, außer den vorgegebenen Ablauf der Projektphasen durch PSE. Bei der Auswahl der Programmiersprachen und Bibliotheken sollen alle Möglichkeiten in Betracht gezogen werden und die sinnvollste Lösung umgesetzt werden.

Die Treffen finden am Fraunhofer IOSB statt. Die Abteilung "Informationsmanagement und Leittechnik" (ILT) des Fraunhofer IOSB beschäftigt sich mit verschiedenen Themen rund um smarte Fabrikanlagen in der Industrie wie z.B. Data Mining, Modellierung, Leit- und Informationssysteme sowie Sicherheit in der Produktion. Wir bieten darüber hinaus studentische Abschlussarbeiten sowie Teil- und Vollzeitstellen an.

Der Lehrstuhl für Computergrafik bietet zwei PSE-Teams die Möglichkeit, ein einfaches Computerspiel zu entwickeln. Dieses Semester werden beide Teams an Teilaspekten eines gemeinsamen Spiels arbeiten. Das Hauptaugenmerk des Teams "Echtzeit-Computergrafik für ein Arcade-Spiel" liegt auf der audiovisuellen Darstellung des Spiels. Weitere Informationen sind auf der Website des Lehrstuhls für Computergrafik zu finden.

Der Lehrstuhl für Computergrafik bietet zwei PSE-Teams die Möglichkeit, ein einfaches Computerspiel zu entwickeln. Dieses Semester werden beide Teams an Teilaspekten eines gemeinsamen Spiels arbeiten. Zu den Aufgaben des Teams "Spielmechanik und Level-Generierung für ein Arcade-Spiel" gehören die Generierung der Spielwelt und die Spiellogik. Weitere Informationen sind auf der Website des Lehrstuhls für Computergrafik zu finden.

Mobile Geräte wie Smartphones und Tablets haben eine begrenzte Batteriekapazität. Fotografieren und Videofilmen und deren Konsum (Instagram, YouTube usw.) wurden zu einem wesentlichen Bestandteil ihrer Nutzung.

Unser Thema ist die Entwicklung einer App zur Bearbeitung von Videos, Anwenden von Filtern und zur Auswertung von Video Encodern. Mit einfache Tools wie Zuschneiden und technischen oder kreativen Filtern kann das Video den individuellen Bedürfnissen angepasst werden. Danach muss ein (bereits existierende) Encoder wie H.265 eingestellt werden, um das Video mit guter Qualität aber trotzdem geringer Dateigröße zu codieren. Im letzten Schritt können die Nutzer die Qualität des Videos optisch untersuchen und subjektiv bewerten, aber auch objektive Metriken wie Signal-Rausch-Verhältnis sollen zur Bewertung herangezogen werden.

Die App kann zum Beispiel verwendet werden, um die Qualität von Video Encodern zu prüfen und einen guten Ausgleich zwischen Energieverbrauch und Bildqualität zu finden, wie es in eingebetteten Systemen, wie zum Beispiel Smartphones, wünschenswert ist.

Bei Fragen können Sie mir gerne eine E-Mail an Paul Genssler (genssler@kit.edu) senden. Der angegebene Termin für das erste Treffen ist verpflichtend. Zur Not kann er aber verschoben werden.

Aus dem heutigen Alltag ist digitale Messtechnik nicht mehr wegzudenken, beispielsweise in einer digitalen Küchenwaage, der Einparkhilfe im Auto oder in den Sensoren eines Smartphones. Möchte ein Schüler beispielsweise ein Studium oder eine Ausbildung im technisch-naturwissenschaftlichen Bereich beginnen, so ist ein gewisses Grundverständnis über die digitale Messwerterfassung und -verarbeitung hilfreich.

Daher soll in diesem PSE-Projekt eine Open Source Anwendung zur Messwerterfassung und Analyse mit einem Raspberry Pi für den Unterricht in der Schule konzipiert und gestaltete werden. Diese Anwendung soll Schülern eine grafische Benutzeroberfläche zur Verfügung stellen, in der sie Messgeräte und Sensoren auswählen können, sowie deren Datenströme verändern und auch grafisch darstellen können.

Die Umsetzung der Anwendung erfolgt in Java. Eine Schnittstelle für Messgeräte und Sensoren, welche an einen Raspberry Pi angeschlossen sind, steht bereits zur Verfügung. Die Verwendungen weiterer Open Source Rahmenwerke, z. B. zur Visualisierung der Datenströme oder der Gestaltung der grafischen Benutzeroberfläche, ist den Studenten freigestellt.

Dieses PSE-Projekt findet im Rahmen des Projekts OSL2 statt, in welchem Studenten praktische Erfahrungen in der Entwicklung von Open Source Anwendung sammeln und gleichzeitig Materialien für den Schulunterricht entwickeln.

Künstliche neuronale Netzwerke (KNN)  sind Berechnungssysteme,  welche biologische neuronale Netzwerke nachahmen. Ihre Anwendungen finden sich in Bereichen wie der Spracherkennung, Bildverarbeitung und Objektklassifizierung wieder. KNNs setzen sich aus einfachen, vielfach miteinander vernetzten, unabhängigen Berechnungsknoten zusammen, den sogenannten Neuronen.  Da Parallelität in KNNs ausgenutzt werden kann, sind Implementierungen auf heterogenen Plattformen potentiell effizienter im Vergleich zu sequentiellen Software-Implementierungen. 

Der Fokus dieses Praktikums zielt darauf ab, KNNs auf heterogenen Plattformen zu implementieren, welche neben eines Graphikprozessors (GPU), einen Intel Movidius Neural Compute Stick oder optional ein FPGA-Board enthalten. Basierend auf dieser Plattform wird ein System zur Bilderklassifizierung entwickelt, welches ein GUI-basiertes Front-End mit den Hardwarebeschleunigern im Back-End kombiniert. Dabei ist erwähnenswert, dass keine genaueren Kenntnisse über die Hardware voraussgesetzt werden. Zum Beispiel erfolgen die Zugriffe auf den FPGA durch die OpenCL-API, welche Hardwaredetails abstrahiert.

Die KIT-Card, sowie andere kompatible Karten (Landesbibliothek, europäische Studentenausweise, ...), können für verschiedene Dienste freigeschaltet werden.


Wenn z.B. ein französischer Student in KA in die Mensa gehen möchte ist das prinzipiell möglich, aber seine Karte muss erst dafür freigeschaltet werden.

Bisher muss das manuell getan werden. In diesem PSE soll eine Codierstation entwickelt werden, mit der Studenten das selbst tun können.

Diese besteht aus einem Raspberry Pi mit einem Touchscreen und einem Kartenprogrammer.

Programmiert wird in Java und einem GUI Toolkit eurer Wahl für den Touchscreen.

Tagtäglich nutzen wir internetbasierte Anwendungen wie das WWW, WhatsApp oder E-Mail und machen uns dabei aber nur wenige Gedanken über die Zusammenhänge und Mechanismen, die sich hinter der einfachen Oberfläche verbergen. Über das Internet werden riesige Datenmengen übertragen, zu Spitzenzeiten alleine im Internetknotenpunk DE-CIX über 6 Tbit/s. Wie finden diese Daten in einem weltumspannenden Netz zum Ziel? Welche Probleme treten dabei auf? Wie - und wo! - werden sie gelöst?
 
Das PSE-Projekt „Simulationsframework für Routingalgorithmen“ richtet den Fokus auf die Algorithmen und Protokolle welche eine essentielle Aufgabe im Internet erfüllen: Das Routing. Es setzt sich mit der verteilen Umsetzung dieser Algorithmen auseinander und gibt Studierenden die Möglichkeit, diese in einer selbst zu entwickelnden Simulationsumgebung zu implementieren. Damit bietet es auch die Möglichkeit, parallel in der Vorlesung Einführung in Rechnernetze erlernte Inhalte direkt anzuwenden und in die Praxis umzusetzen. 

Projektziele

Im Rahmen des PSE soll eine einfache Simulationsumgebung für verteilte Routingalgorithmen entworfen und implementiert werden. Hierzu sind Netztopologien, zeitliche Abläufe und der Datenaustausch zwischen Netzknoten in geeigneter Form zu modellieren. Auf Basis dieser Infrastruktur sollen dann verteilte Routingalgorithmen implementiert werden. Details der Umsetzung sowie weitere Funktionen wie eine grafische Visualisierung der Abläufe können von den Studierenden selbst bestimmt werden.

Entwicklungsumgebung

  • Eclipse

  • JUnit zum Testen

  • Überdeckungstests zum Beispiel mit CodeCover

IPD Reussner, IPD Koziolek

In diesem PSE-Projekt dürfen Studierende eigene Vorschläge für eine Android-App einbringen, die sie dann im Verlauf des Semesters implementieren werden. Parallel zu PSE findet eine Android-Schulung der Firma arconsis statt, an der die Studierenden kostenfrei teilnehmen dürfen.