Online IDE Construction Kit
Project Idea Metadata
- Project Idea Name: Online IDE Construction Kit
- Date: 11/25/2022 3:21:57 PM
- Administrators:
Project Idea Description
Ausgangslage und Problemstellung
Onlineprogrammierumgebungen sind eine gute Möglichkeit die Bearbeitung von kleineren Programmieraufgaben direkt während des Unterrichts anzubieten und diesen damit interaktiv aufzuwerten. Der klare Vorteil liegt darin, dass die Programmierumgebung mit einem Klick auf eine URL gestartet werden kann und bereits fixfertig eingerichtet ist. Der Auftraggeber geht davon aus, dass dies die Wahrscheinlichkeit erhöht, dass die Studierenden an der Programmierübung teilnehmen.
Bei Einsatz von Onlineprogrammierumgebungen an Universitäten/Schulen gibt es dabei mehrere Probleme:
- (Wichtigster Punkt) Onlineprogrammierumgebungen unterscheiden sich teils drastisch von regulären Programmierumgebungen. Dies sowohl in der Bedienung als auch in der Zahl der angebotenen Features. Dies kann die Akzeptanz sowohl bei Dozierenden als auch Studierenden senken.
- Kommerzielle Onlineprogrammierumgebungen sind oft auf spezifische Programmiersprachen und Versionen beschränkt.
- Ggf. möchte man gewisse Features der Programmierumgebung deaktivieren.
- Onlineprogrammierumgebungen sind in der Regel kostenpflichtig.
- Login sollte mit dem Benutzerkonto der Universität/Schule erfolgen.
Ziele der Arbeit und erwartete Resultate
Unter Verwendung bestehender Elemente (z.B. Editoren, Repos, Container), soll eine konfigurierbare Onlineprogrammierumgebung erstellt werden. Diese kann dann selbst wieder in verschiedene Applikationen (z.B. LCMS) eingebettet werden.
Die Ziele dieser Bachelorarbeit sind:
- Erstellung einer Onlineprogrammierumgebung (Webapplikation) unter Verwendung eines bestehenden Codeeditorframeworks. Welches Framework verwendet wird, ist mittels Evaluation zu bestimmen. Beispiele von Frameworks sind Theia oder Monaco.
- Die Onlineprogrammierumgebung muss erlauben ein Szenario (z.B. Codefragemente, welche ergänzt werden sollen) zu konfigurieren. In dieser ersten Version kann dies mittels Konfigurationsdateien erfolgen, jedoch mit Hinblick auf eine spätere Konfiguration mittels Webapplikation.
- Die Onlineprogrammierumgebung muss erlauben, einen Compiler mitsamt Debugger zu konfigurieren. Debugging sollte möglich sein.
- Die Ausführung eines Programmes muss möglich sein und abgesichert erfolgen z.B. in einem Container.
- Idealerweise unterstützt die Onlineprogrammierumgebung das Languageserver-Protokoll und erlaubt damit eine einfache Integration für Codecompletion.
Gewünschte Methoden, Vorgehen
- Agiles Vorgehen mittels Scrum.
- Softwareerstellung unter Verwendung der aktuellen Techniken der Software-Entwicklung (VCS/CI/CD/Testing).
- Begründete Variantenevaluationen und Entscheide: mindestens drei auf unterschiedlichen Ebenen (Architektur / Design / Libraries).
Kreativität, Varianten, Innovation:
Dies ist ein Greenfield-Projekt. Viele Variantenentscheidungen müssen getroffen und begründet werden. Zudem bietet das Projekt unzählige Möglichkeiten über die abgesteckten Ziele hinauszugehen.
Unter Verwendung bestehender IDE-Elementen (z.B. Editoren, Repos, Container), soll eine Webapplikation erstellt werden, welche wiederum spezifische Online-IDEs generieren kann. Diese können dann selbst wieder in verschiedene Applikationen (z.B. LCMS) eingebettet werden. Die generierten Online-IDE können einfache Textfelder mit Textoutput sein aber auch vollwertige IDEs. Idealerweise bieten sie Unterstütztung um z.B. eine Aufgabenstellung und automatische Tests einzubetten.