Softwarepraktikum

  1. Softwarepraktikum

    inklusive Bachelorarbeit

  1. Vorbesprechung:
    9.10.2020, 14:00, S.1.37 / online
    Wichtige Informationen:
    Das Softwarepraktikum erstreckt sich (inkl. Bachelorarbeit) über zwei Semester, im Studienplan ist es für das 5. und 6. Semester empfohlen. Es sollte mit dem Ende des 2. Arbeitssemesters abgeschlossen werden. Eine Verlängerung des Praktikums ist im Normalfall nicht vorgesehen. Zwecks optimaler Bewältigung der gestellten Anforderungen wird empfohlen, die Entwicklungsarbeit mit dem Ende des 1. Arbeitssemesters abzuschließen und im 2. Semester die Dokumentation bzw. Bachelorarbeit anzufertigen. Sie soll das Projekt und das entwickelte Softwaresystem gründlich und ausführlich beschreiben – etwa im Umfang einer halben Masterarbeit (d.h. rund 50 Seiten). Sie kann im Team angefertigt werden. Den Abschluss bildet eine Präsentation der Projektergebnisse.
    Bei Interesse bitte per E-Mail Kontakt mit der Betreuerin bzw. dem Betreuer aufnehmen (die/der auch die Beurteilung übernimmt). Eigene Ideen sind sehr willkommen. Bitte kontaktieren Sie hierbei eine fachlich zuständige Betreuerin bzw. einen fachlich zuständigen Betreuer. Sollten Sie sich nicht sicher sein, wer Ihr Softwarepraktikum betreuen kann, so wenden Sie sich bitte (per E-Mail) an Peter Schartner.
    Wenn Sie das Softwarepraktikum in diesem Semester absolvieren möchten, aber noch kein Thema gefunden haben, dann nehmen Sie bitte an der Vorbesprechung teil.
    Erwartete Vorkenntnisse:
    Da das Softwarepraktikum im 5. Semester (also gegen Ende des Studiums) vorgesehen ist, sollten Sie die für Ihr Softwarepraktikum relevanten Pflichtfächer (siehe Curriculum) großteils absolviert haben.
  1. Thema Betreuer(in)
    Ausbau des Webinterface zu Sunset
    Die Programmier-Umgebung Sunset/FFapl wird demnächst als freier Webservice angeboten. Die derzeit existierende Oberfläche ist funktional vollständig, jedoch eher rudimentär und würde einiger Überarbeitungen bedürfen, welche sich im Rahmen eines Softwarepraktikums umsetzen lassen. Das Projekt umfasst hierbei nur die Weiter-Entwicklung der Web-Oberfläche (ein Eingriff in die dahinterliegenden Webservices ist nicht erforderlich, jedoch sind nach eigenem Interesse Ideen und Anregungen herzlich willkommen).
    S. Rass
    Der Anti-Metamorphopsie-Visor von/für Geordi La Forge P. Schartner
    go2algo NG – Re-Engineering von go2algo P. Schartner
    GDPR-compliant oblivious Web-Browser in a (RAM-)Box P. Schartner
    Dienstplaner (mit Berücksichtigung von Nebenbedingungen)
    Erstellung einer Software zur automatischen Erstellung von Dienstplänen unter Berücksichtigung unterschiedlicher Nebenbedingungen (Vertretungsregelungen, Abdeckung von Aufgaben, Berücksichtigung von Abwesenheiten und Urlaubszeiten, etc.). Die Nutzung von frei verfügbaren Constraint Solvern ist gestattet.
    S. Rass
    R Package Erweiterung
    R ist eine Programmiersprache, welche speziell für Statistik ausgelegt ist, und durch eine wachsende Bibliothek an Paketen erweitert werden kann. Ziel des Software-Praktikums ist die Weiterentwicklung eines an der Universität erstellten Pakets „HyRiM“, konkret die Umsetzung diverser Features darin zur Lösung von 2-Personen Nullsummenspielen. Vorkenntnisse über Statistik oder Spieltheorie sind explizit nicht erforderlich, nur Freude am Programmieren und Interesse am Lernen der Industrie de facto Standardsprache R für Data Science.
    S. Rass
    TLS Interception Plugin für Firefox
    Zu entwickeln ist ein Plugin für den Firefox Browser, welches Anwender*innen auf mögliche TLS Interceptions (d.h. das „Austauschen“ von Serverzertifikaten durch Software im Hintergrund, typischerweise Antiviren-Software oder Firewalls). Obgleich derartige Interceptions zumeist dem zusätzlichen Schutz gesicherter Kanäle dienen, ist ein transparenter Eingriff in TLS Kanäle oft unerwünscht, und sollte durch das zu entwickelnde Plugin sichtbar gemacht werden.
    S. Rass
    Heuristic Password Cracking E. Teppan
    P. Schartner
    Graph visualisation for flexible job shops with the java graph stream library E. Teppan
    Usable Security – TPM-Library P. Schartner
    Textbearbeitung auf Touchscreens
    Die schnelle Bearbeitung von Text und 'Copy-&-Paste' von Textteilen auf Smartphones und Tablets kann schwierig sein. Android und iOS verwenden für diese häufigen Aufgaben unterschiedliche Schnittstellen und Mechanismen. Das Ziel dieses Projekts ist, eine Webanwendung mit der wir testen und messen können, wie schnell und genau Personen 'Copy-&-Paste' Aufgaben auf Touchscreens durchführen können. Die dafür notwendige Funktionalität umfasst unter anderem: die Konfiguration von verschiedenen Testfällen für die drei Aufgabentypen 'Einfügen von Text', 'Löschen von Text' und 'Copy-&-Paste', die Präsentation der verschiedenen Testfälle an Studienteilnehmer*innen, und das Aufzeichnen wie schnell und wie genau die Studienteilnehmer*innen die Testfälle durchführen können.
    D. Ahlström
    Fingergesten für Desktop-Computer
    Objektverfolgungstechnologien ermöglichen es, die Position und Bewegung von physischen Objekten zu erkennen und deren Bewegungen genau zu verfolgen. In diesem Projekt werden wir untersuchen, wie ein Leap Motion Controller verwendet werden kann, um die Finger und Hände einer Person während der Tastatureingabe zu verfolgen. Ziel ist es, Finger- und Handgesten zu entwerfen, die als Eingabebefehle dienen können. Beispielsweise könnte das Auf- und Abbewegen des Fingers mit dem Fenster-Scrolling verbunden werden, und eine schnelle Zeigegeste nach links könnte dazu verwendet werden, die zuvor besuchte Webseite erneut zu laden.
    D. Ahlström
    Sensorbasierte Interaktionen für Smartwatches
    Die meisten Smartwatches sind mit einem Beschleunigungsmesser ausgestattet. Diese Sensoren eröffnen neue Möglichkeiten, die üblichen Touch-Eingaben mit neuen Eingabetechniken zu erweitern. Ziel dieses Projekts ist es, die Sensorsignale eines Beschleunigungssensors als Eingabebefehle zu interpretieren. Bisher wurde ein Softwarepaket implementiert, das die Langzeitprotokollierung von Sensordaten ermöglicht. Der nächste Schritt in diesem Projekt ist es, ein Analysemodul zu entwickeln, das die aufgezeichneten Sensordaten untersucht und Regelmäßigkeiten und Muster in den Daten identifiziert. Kern des Moduls ist eine Support Vector Maschine, die Sequenzen von Sensordaten in Musterkategorien klassifiziert.
    D. Ahlström
    Collaborative development of ontologies with WebProtege
    Definition of domain-specific thesauri is an important prerequisite for digitalization of manufacturing and quality control processes. Ontologies describing hierarchies of notions (technical concepts) used in documents might significantly simplify search and navigation over different types of documents and database entries. However, development of such ontologies requires significant efforts of a team of experts. The goal of this praxis is therefore to evaluate suitability of WebProtege – a collaborative ontology authoring tool – for Infineon application scenarios and infrastructure.
    K. Schekotihin
    Extraction of keywords from test reports using NLP
    Fault detection and localization in integrated circuits is a complex problem that often requires significant efforts from a number of electrical engineers. In case similar problems are considered by different teams a large amount of these efforts can be omitted by reusing knowledge documented by other teams in their reports. However, documentation of the fault diagnosis processes is done in a textual form, which does not allows for simple identification of relevant reports. Therefore, the goal of this praxis semester is to simplify search by extracting keywords from reports using NLP methods.
    K. Schekotihin
    „Expert or Newbie? Classification of Stack Overflow Posts"
    Jeder Entwickler verbringt viel Zeit mit der Suche nach Lösungen und oft werden diese Lösungen auf Stack Overflow gefunden. Aber Anfänger und Experten haben unterschiedliche Interessen und somit unterschiedliche Fragen. Um die Zeit der Suche zu verkürzen, sollte somit auch die Expertise der Postautoren bei der Suche berücksichtigt werden. In dieser Bachelorarbeit sollen verschiedene Wege ausprobiert und evaluiert werden, um zu überprüfen, inwieweit wir die Expertise der Postautoren aus den Posts herauslesen können.
    S. Beyer
    „The Quality of Code Snippets in Posts of Stack Overflow"
    In dieser Bachelorarbeit sollen Code Snippets von Stack Overflow analysiert werden, um folgende Fragen zu beantworten: Wieviele davon verwenden APIs richtig? Wieviele beinhalten Code Smells? Gibt es Zusammenhänge zwischen akzeptierten Antworten und der Qualität des geposteten Code?
    S. Beyer
    Kann ich meine Dependencies aktualisieren? Erkennung von veralteten, aktualisierbaren Dependencies
    Änderungen in Third-Party Libraries können potentiell für Fehler in Projekten verantwortlich sein. Aus diesem Grund bleiben oftmals die aktuell verwendeten Versionen solcher Abhängigkeiten aus Angst vor solchen Fehlern unverändert. In dieser Arbeit soll untersucht werden, welche Auswirkung bestimmte Änderungen in den Abhängigkeiten auf das Projekt haben. Auf Basis dieser Erkenntnisse soll ein Tool entwickelt werden, um Entwicklern das Updaten auf aktuelle Versionen ihrer Abhängigkeiten zu erleichtern.
    C. Macho
    Erstellen eines (IntelliJ) Plugins zum automatisierten Erkennen von Designverstößen
    Ziel der Bachelorarbeit ist es, ein Plugin für die Entwicklungsumgebung (IDE) IntelliJ zu entwickeln, das einen bereits vorhandenen Prototypen zur automatisierten Erkennung von definierten Designverstößen (z.B. Zyklen in Abhängigkeiten) in die IDE integriert. Benutzer sollen bereits zur Entwicklungszeit über Designverstöße informiert werden, um direkt darauf regieren zu können.
    C. Macho
    V. Frick
    Erkennung von Problemen mit Build Systemen anhand von Fragen, Themen und Antworten auf StackOverflow
    Anhand der Fragen und Antworten, die auf Stack Overflow verfügbar sind, sollen die Probleme, die Entwickler mit dem Umgang von Build Systemen (z.B. Apache Maven oder Gradle), erkannt und analysiert werden. Eine interessante Fragestellung ist zum Beispiel ob bei allen Build Systemen die gleichen Fragen auftreten, oder ob es hier Unterschiede gibt.
    S. Beyer
    C. Macho
    Eigene Themen sind willkommen!