Abschlussarbeiten

Nachfolgend finden Sie Themen-Vorschläge für Bachelor- und Masterarbeiten aus den Themenkomplexen Compilerbau und Constraint-Programmierung. Die formulierten Aufgaben sind mit dem entsprechenden Niveau (Bachelor oder Master) gekennzeichnet (und können in Abwandlung oder Ergänzung manchmal auch für das jeweils andere Niveau angepasst werden).

In Absprache können wir Ihnen weitere Aufgabenstellungen z.B. aus den Bereichen des maschinellen Lernens, der Anwendung von Sensorik/Aktuatorik/Robotik oder der modellbasierten Software-Entwicklung anbieten.

Haben Sie Interesse an einer der nachfolgenden Aufgabenstellung, den o.g. oder einem verwandten Thema?
Dann sprechen Sie uns bitte an!

1) Themenkomplex: Der gläserne Compiler

Um Studierenden das Verständnis von Übersetzungstechniken im Rahmen der Lehre zu erleichtern bieten wir verschiedene Themen unter dem Schwerpunkt "Der gläserne Compiler" an. Alle vorgeschlagenen Themen werden in der Veranstaltung "Compilerbau" (Modulnr. 12350) im Detail vorgestellt und besprochen. Für diese Arbeiten ist es also von Vorteil, wenn die Kandidaten dieses Modul besucht haben.

1a) Syntaktische und Semantische Analyse mit attributierten Grammatiken (Bachelor-/Master-Arbeit)

Es soll eine Anwendung entwickelt werden, mit der die Parsierung und semantische Analyse mit Hilfe von Attributgrammatiken visualisiert und erläutert werden kann. Hierbei sollen Attributgrammatiken (AGs) bzw. SDDs (Syntax-directed Definitions) eingegeben werden können und nach oder parallel zur Parsierung semantische Eigenschaften des Programms überprüft werden können. Die Aufgabe kann sowohl für die Top-Down- als auch für die Bottom-Up-Parsierung und mit unterschiedlichen AG-Auswertungsmechanismen umgesetzt werden. Eine schrittweise Auswertung umgesetzt und visuell aufbereitet werden.

1b) Codeerzeugung und -optimierung (Bachelor-Arbeit)

Ziel dieser Arbeit ist ein Tool zur visuellen Repräsentation der letzten Stufen eines Compilers. Ausgehend von einer internen Repräsentation in Form von abstrakten Syntaxbäumen sollen einfache Methoden zur Codeerezeugung und -optimierung aufbereitet und visualisiert werden.

2) Themenkomplex: Constraint-Programming- und Constraint-Solving-Techniken

Die Constraint-Programmierung ist ein Teilgebiet der künstlichen Intelligenz zur Modellierung und zur Lösung komplexer (NP-vollständiger) Such- und Optimierungsprobleme. In diesem Bereich bieten wir verschiedene Arbeiten zur Entwicklung und Adaption von Lösungsmethoden oder zur Modellierung von CSPs und Anwendung von Lösungstechniken an.

2a) Untersuchung und Vergleich von Methoden zur Lösung komplexer Probleme am Beispiel von Knobel- und Suchproblemen (Bachelor-/Master-Arbeit)

In dieser Arbeit sollen verschiedene Methoden zur Lösung komplexer (NP-vollständiger) Knobel- und Suchprobleme untersucht, evaluiert und optimiert werden. Ansätze zur Modellierung und Lösung bietet die Constraint-Programmierung. Probleme werden dort als sog. Constraint-Satisfaction-Probleme (CSPs) beschrieben und gelöst.

Unterschiedliche Modellierungen eines Problems unterscheiden sich aber nicht nur in der Problembeschreibung sondern auch darin, wie schnell eine, eine gute, eine optimale, alle oder eine bestimmte Anzahl von Lösungen für ein Problem gefunden werden können.

Ziel dieser Arbeit ist daher die Untersuchung unterschiedlicher Methoden zur Modellierung und Lösung von CSPs, hierunter die Problemzerlegung, Remodellierung durch redundante oder globale Constraints und die Parallelisierung.

2b) VCS - Suchbäume evaluieren (Bachelor-Arbeit)

Der Visual Constraint Solver (VCS) ist ein Tool zur Visualisierung des Constraint-Lösungsprozesses. Er wurde im Rahmen von Abschlussarbeiten am Fachgebiet Programmiersprachen und Compilerbau entwickelt.

In der Constraint-Programmierung kann man sehr klar und deklarativ komplexe Such- und Optimierungsprobleme beschreiben. Der Lösungsprozess wird durch einen sog. Constraint-Solver durchgeführt und ist für den Nutzer bei großen Problemen aber oft nur schwer nachvollziehbar. VCS unterstützt daher durch Interaktivität und Visualisierung das Verständnis des Lösungsprozesses.

Bisher viusalisiert VCS sowohl das ursprüngliche Constraint-Problem als Graphen als auch den Lösungsvorgang in Form eines Suchbaumes. Seine Form ist abhängig von sog. Variablen- und Wertauswahlheuristiken, wobei eine geschickte Wahl einer solchen Heuristik den Lösungsprozess beschleunigen kann.  In der Arbeit soll VCS um eine Komponente erweitert werden, die es erlaubt, verschiedene Suchbäume für ein Constraint-Problem gleichzeitig zu visualisieren, zu untersuchen, zu evaluieren und zu vergleichen.

3) Themenkomplex: Probleme aus der Praxis

Immer wieder treten Partner an uns heran mit Problemen direkt aus dem Arbeitsleben und dem Forschungsalltag. Diese Themen haben hohe Praxisrelevanz, werden gegen echte Anwendungssituationen evaluiert und finden oft Eingang als reale Problemlösung.

3a) Untersuchung unterschiedlicher Zielfunktionen bei der constraintbasierten Schleusenbelegungsplanung

Thema der Arbeit ist die Entwicklung, Implementierung und Analyse von Optimierungskriterien und Zielfunktionen für die Planung einer Schleusenbelegung. Die Arbeit erfolgt im Rahmen des vom Bundesverkehrsministerium geförderten Projektes “SchleusenNOK40” und wird in Kooperation zwischen Fraunhofer FOCUS und der BTU CS betreut. Details

3b) Erweiterte Ähnlichkeitserkennung für Moodle (Bachelor-Arbeit)

In dieser Arbeit soll ein Plugin für die eLearning-Plattform Moodle entwickelt werden, die Quellcode-Abgaben untereinander auf Ähnlichkeit prüft. Hierzu sollen bestehende Lösungen analysiert  und verglichen werden sowie ein prototypisches Plugin mit erweiterten Features entwickelt werden.