LMS Plattformen & Code Execution APIs
Diese Seite enthält eine Zusammenfassung von Open-Source Code-Execution-APIs und Autograding-Systemen für die Entwicklung einer eigenen LMS-Plattform für Programmiersprachen.
Judge0
Beschreibung: Judge0 ist eine der bekanntesten und robustesten Code-Execution-APIs. Sie ist hochskalierbar, Open-Source und sehr leicht via RESTful JSON API anzubinden. Judge0 führt nicht vertrauenswürdigen (untrusted) Code in einer sicheren, isolierten Sandboxed-Umgebung (mittels Linux cgroups und namespaces) aus. Die API wird von vielen Plattformen für Competitive Programming, E-Learning (LMS) und Online-IDEs verwendet.
- Unterstützte Sprachen: Über 90 Programmiersprachen.
- URL Anbieter: Judge0 Website | Judge0 GitHub
Jobe Server (Jobe in a Box)
Beschreibung: Der Jobe Server ist ein spezialisiertes Backend-System zum Kompilieren und Ausführen kleiner Programmieraufgaben, das besonders für das Autograding in Learning Management Systemen entwickelt wurde. Die bekannteste Integration findet im LMS Moodle über das CodeRunner-Plugin statt. Der Server führt den Code sicher isoliert aus und schickt Fehler- oder Erfolgsmeldungen zurück an das LMS.
- Unterstützte Sprachen: C, C++, Python, Java, Pascal, PHP, Octave u. a.
- URL Anbieter: Jobe Server GitHub | CodeRunner Website
DMOJ (Modern Open Online Judge)
Beschreibung: DMOJ ist eine moderne, hoch skalierbare und stark anpassbare Open-Source-Plattform für Online-Judges und Programmierwettbewerbe. Es wird sehr häufig in Bildungseinrichtungen und für Programmierwettbewerbe (Olympiaden) eingesetzt. Die Plattform kann Aufgabenbeschreibungen in LaTeX formatieren, beinhaltet eine direkte Plagiatserkennung (via Stanford MOSS) und unterstützt interaktive Aufgaben.
- Unterstützte Sprachen: Über 60 Sprachen.
- URL Anbieter: DMOJ Website | DMOJ GitHub
Piston Engine
Beschreibung: Piston ist eine High-Performance, General-Purpose Code-Execution Engine. Die Open-Source-Architektur verwendet Docker zur Isolation der Programmumgebungen und bietet eine extrem schnelle REST-API. Es eignet sich hervorragend als robustes Backend für benutzerdefinierte Autograding-Plattformen oder Code-Ausführung in Chatbots und Web-Apps.
- Unterstützte Sprachen: Viele Sprachen, mit Versionierung auswählbar.
- URL Anbieter: Piston GitHub
INGInious
Beschreibung: INGInious ist eine intelligente, sichere und automatisierte Autograding-Plattform zur Bewertung von Programmieraufgaben. Sie ist sprachunabhängig konzipiert und führt die Einreichungen der Studierenden in isolierten Docker-Containern aus (mittels mehrstufiger Isolation zum Schutz vor "Arbitrary Code Execution"). INGInious kann als eigenständige Plattform mit eigenem Frontend inklusive Backend/Agent betrieben werden oder über LTI (Learning Tools Interoperability) nahtlos in bestehende LMS-Systeme wie Moodle und edX eingebunden werden.
- Unterstützte Sprachen: Sprachunabhängig (beliebige Sprachen über Custom Docker Images konfigurierbar).
- URL Anbieter: INGInious Website | INGInious GitHub