Abgabekriterien - isd-nunkesser/lectures GitHub Wiki

Abgabekriterien für Softwareprojekte

Einleitung

In der Softwareentwicklung ist es üblich und sinnvoll, auch Code zu verwenden, den man nicht selbst geschrieben hat. Bei der Verwendung solchen Codes in abgegebenen Projekten sind jedoch zwei Grundsätze zu wahren:

  • Keine Nutzung von unlizenziertem Fremdcode
  • Keine Verwendung von fremdem Code ohne Angabe der Quelle

Erläuterungen zu Fremdcode

Es ist nicht immer einfach zu unterscheiden, was erlaubt ist und was nicht. Es gibt zwei einfache Fälle, die in der Regel erlaubt sind:

  • Nutzung von Code der als Bibliothek über einen Paketmanager bezogen wurde
  • Nutzung von Code der unter einer Open Source Lizenz wie MIT, BSD oder Apache License 2.0 steht mit Angabe der Quelle und der Lizenz

Schwieriger ist es bei YouTube-Tutorials, Codeausschnitten aus Büchern und Snippets aus dem Web (z. B. Stack Overflow). Auch solche Inhalte dürfen genutzt werden, wenn sie lizenzrechtlich zulässig sind und sauber als Quelle dokumentiert werden. Hier müssen Sie die Quelle und, falls vorhanden, die Lizenz im Repository nachvollziehbar angeben (z. B. in Kommentaren, in der README oder in einer Quellenliste).

KI-Einsatz

Der Einsatz von KI-Tools ist in den Projekten explizit erlaubt und ausdrücklich gewünscht.

Wichtig ist dabei:

  • Sie bleiben verantwortlich für Korrektheit, Sicherheit und Verständlichkeit Ihres Codes.
  • KI-generierter oder KI-unterstützt überarbeiteter Code muss von Ihnen verstanden, geprüft und bei Bedarf angepasst werden.
  • Wenn KI-Tools wesentlich zur Lösung beigetragen haben, dokumentieren Sie den Einsatz kurz und transparent im Repository (z. B. in der README: Tool, Art der Unterstützung, wichtige Prompts/Arbeitsweise).
  • Auch bei KI-Unterstützung gelten die Regeln zu Lizenzen, Quellen und Fremdcode unverändert.

Abgabe

Softwareprojekte müssen in einem Git-Repository verwaltet werden. Abgegeben wird grundsätzlich durch den letzten Push auf den Standard-Branch des Origin-Repositories vor Beginn der Prüfungsphase. Abgegebener Code muss fehlerfrei kompilierbar sein. Dies muss ergänzend durch einen erfolgreich absolvierten GitHub-Actions-Workflow belegt werden, sofern keine schwerwiegenden Gründe dagegen sprechen.

Eine nicht kompilierbare Abgabe wird als nicht bestanden gewertet. Die Nutzung von Fremdcode ohne adäquate Quellenangabe führt ebenfalls zur Wertung als nicht bestanden. In schwerwiegenden Fällen kann dies als Täuschungsversuch gewertet werden.

Zusätzliche Anforderungen im 6. und 7. Semester

Abgaben ohne individuell geschriebene Unit Tests werden als nicht bestanden gewertet. Abgaben, die nicht den Architekturvorgaben von Explicit Architecture, Clean Architecture, Ports and Adapters oder Onion Architecture folgen, werden um mindestens eine Notenstufe schlechter bewertet.