Ein Programmierprojekt mit Ordnern und vielen Dateien im Browser stellen

Echte Programme bestehen nicht aus einer einzigen Datei. Ein Python-Paket mit einem Hilfsmodul, ein in Klassen und Pakete aufgeteiltes Java-Projekt, eine Node-App mit einem Ordner lib und einem Datenordner daneben: Eine Code-Aufgabe kann jedes davon sein, vollständig im Browser geschrieben und ausgeführt, ohne dass etwas auf dem Rechner der Schule installiert wird.

Jede lernende Person erhält ihre eigene Kopie des ganzen Projekts, sieht denselben Dateibaum, den Sie geschrieben haben, und führt es mit derselben Schaltfläche „Ausführen“ aus wie eine Übung mit einer Datei. Versteckte Tests, Bewertung, Abgabe und alles Übrige funktionieren genau wie bei einer einzelnen Datei.

Der Dateibaum

Die Dateien einer Code-Aufgabe bilden einen Baum neben dem Editor. „Neue Datei“ und „Neuer Ordner“ legen eines an, „Hochladen“ holt Textdateien von Ihrem Rechner, und „Umbenennen oder verschieben“ nimmt einen ganzen Pfad: Wer lib/helpers.py eintippt, legt eine Datei in einem Ordner namens lib ab. Jede Datei öffnet sich in ihrer eigenen Sprache: README.md ist Markdown, eine .csv ist reiner Text und helpers.py ist Python.

„Entfernen“ nimmt eine Datei sofort weg, mit „Rückgängig“ daneben für ein paar Sekunden. Ein Ordner existiert, solange eine Datei darin liegt, ein neuer Ordner beginnt also mit seiner ersten Datei. Im Baum bewegen die Pfeiltasten zwischen Dateien und öffnen und schließen Ordner, die Eingabetaste öffnet eine Datei, F2 benennt sie um und Entf entfernt sie.

  1. Die Aufgabe in ihrem Editor öffnen. Jede Code-Aufgabe: Python, Java, Go, JavaScript oder TypeScript auf Node, Bash und die übrigen Programmiersprachen.
  2. Dateien und Ordner hinzufügen. Klicken Sie auf „Neue Datei“ und tippen Sie einen Pfad wie lib/helpers.py, oder auf „Neuer Ordner“, oder auf „Hochladen“, um vorhandene Textdateien zu holen.
  3. Prüfen, welche Datei läuft. Das Programm ist die Datei mit der Markierung „Ausführen“ beginnt hier.
  4. Zuweisen. Jede lernende Person erhält ihre eigene Kopie jeder Datei, im selben Baum.

Es läuft so, wie das Projekt auf Ihrem eigenen Rechner laufen würde

Das Programm ist die Datei mit der Markierung „Ausführen“ beginnt hier, und sie lässt sich wie jede andere umbenennen oder in einen Ordner verschieben. Ihre Endung bleibt die der Sprache, und ein Programm in Java, C#, Haskell oder Kotlin behält seinen Namen, wohin es auch geht.

Die Dateien liegen so, wie sie im Baum angeordnet sind, sodass der Code sie dort findet, wo Sie sie abgelegt haben: Ein Python-Programm importiert aus seinen Ordnern, die Klassen eines Java-Projekts können in Paketen unter src/main/java liegen, ein Go-Modul baut seine eigenen Unterpakete, und JavaScript und TypeScript auf Node importieren über Ordner hinweg. Ein Programm kann jede seiner Dateien über ihren Pfad öffnen, ein Datenordner mit CSV-Dateien wird also als data/readings.csv gelesen.

Was ein Projekt enthalten darf

Bis zu 50 Dateien neben dem Programm, jede bis zu 64 KB und insgesamt 1 MB, in Ordnern bis zu 7 Ebenen tief. Nur Text: Ein Upload wird geprüft, indem er gelesen wird, nicht anhand seines Namens. Ein in data.csv umbenanntes Bild wird also abgelehnt und eine Textdatei ohne Endung angenommen.

Ein Name beginnt mit einem Buchstaben, einer Ziffer oder einem Unterstrich und besteht danach aus Buchstaben, Ziffern, Unterstrichen, Punkten und Bindestrichen. Leerzeichen gibt es absichtlich nicht: Ein Leerzeichen ist der häufigste Grund, weshalb eine Befehlszeile im eigenen Programm der Lernenden schiefgeht.

Was die Lernenden bekommen

Beim Zuweisen der Aufgabe wird jede Datei an jede lernende Person kopiert, die denselben Baum sieht und jede Datei ihrer eigenen Kopie bearbeiten kann. Eigene Dateien hinzufügen können sie nur, wenn die Aufgabe mehr als eine Datei erlaubt, und die Dateien, die Sie ihnen gegeben haben, behalten ihre Namen. Übungsdateien und die Testumgebungen haben denselben Baum, sodass Lernende außerhalb jedes Moduls ein eigenes Projekt ausprobieren können.

Es gibt weiterhin genau eine Testdatei und eine Paketliste. Die Paketliste ist eine echte Datei oben im Baum, etwa requirements.txt oder pom.xml, und hat in diesem Handbuch eine eigene Seite. Versteckte Tests bleiben versteckt, egal wie viele Dateien die Aufgabe hat.

Wenn die Übung eine einzige Datei bleiben muss

Entfernen Sie im Tab „Einstellungen“ der Aufgabe das Häkchen bei „Mehr als eine Datei“. Die vorhandenen Dateien bleiben und lassen sich weiter umbenennen und verschieben, aber niemand kann eine weitere hinzufügen. Eine Webseiten- und eine SQL-Aufgabe nehmen nie zusätzliche Dateien an, weil ihre Bereiche das sind, woraus sie bestehen.

Häufige Fragen

Kann ich ein vorhandenes Projekt mitbringen?
Ja. „Hochladen“ holt Textdateien von Ihrem Rechner in den Baum. Ein Projekt in einem Git-Repository lässt sich mit „Aus Git laden“ vollständig mit seinen Ordnern laden; dazu gibt es in diesem Handbuch eine eigene Seite.
Können Lernende eigene Dateien hinzufügen?
Ja, wenn die Aufgabe mehr als eine Datei erlaubt, was eine neue Code-Aufgabe tut. Die Dateien, die Sie ihnen gegeben haben, behalten ihre Namen, sodass die Tests sie immer finden.
Muss ein Java-Projekt aus einer einzigen Klasse bestehen?
Nein. Legen Sie jede Klasse in eine eigene Datei, gern in Paketen. Das Programm ist die Datei mit der Markierung „Ausführen“ beginnt hier.
Müssen Lernende eine IDE installiert haben?
Nein. Baum, Editor und „Ausführen“ sind alle im Browser, und der Code läuft auf unseren Maschinen jedes Mal in einem frischen Container.