Navigation auf uzh.ch
Programmierprojekte dienen der Festigung der Programmierkenntnisse und dem Erwerb von Fertigkeiten, wie sie im Kontext des Software-Engineering erforderlich sind.
Version 2023.11
In Programmierprojekten führen Studierende (allein oder in Kleingruppen) Softwareprojekte im Umfang von 3, typischerweise 6 oder allenfalls 9 ECTS im Bereich der Sprachtechnologie durch.
Lernziele Die Studierenden:
(1) planen ein Projekt
(2) setzen einen Projektplan um
(3) realisieren Software
(4) halten Dokumentationsstandards ein
(5) evaluieren
(6) nutzen Softwarerepositorien
Voraussetzungen Im Laufe einer Studienstufe können maximal zwei Programmierprojekte gebucht werden. Die Studienordnung regelt die Anrechenbarkeit. Das Modul kann nicht selbst gebucht werden, die Buchung des Moduls muss vom Modulverantwortlichen autorisiert werden. Bevor ein Programmierprojekt erarbeitet wird, muss zwingend Rücksprache mit dem Modulverantwortlichen genommen werden (per E-Mail). Die Voraussetzungen werden dem Thema entsprechend festgelegt.
Themen Laufende Forschungsprojekte am Institut und offene Themen für Abschlussarbeiten können als Orientierungshilfe dienen. Die Studierenden sind jedoch eingeladen, eigene Ideen vorzuschlagen, die sich allenfalls auch interdisziplinär im Zusammenhang mit den Studienfächern ergeben. Auch Bugs und fehlende Features in Open-Source-Projekten sind oft eine gute Inspiration (z.B. führt das Projekt "Transformers" die Listen "Good First Issue" und "Good Second Issue").
Zeit Typischerweise werden die Projekte im Frühsommer übernommen, damit die Hauptarbeit in die vorlesungsfreie Zeit fallen kann. Programmierprojekte müssen innerhalb von 6 Monaten abgeschlossen werden.
Aufwand Die allfällige Einarbeitungszeit in die verwendete Programmiersprache bzw. -umgebung ist im Gesamtaufwand nicht eingerechnet. Für die Dokumentation sollte 20% der Zeit eingeplant werden. Wenn mehrere Studierende gemeinsam an einem Projekt arbeiten, müssen die Verantwortlichkeiten und Leistungen pro Person aufgeführt werden.
Abgabeform Der Programmiercode wird in einem Git-Repository mit der Betreuungsperson geteilt (z.B. via gitlab.uzh.ch oder GitHub). Ein kurzer technischer Bericht (max. 10 Seiten) dokumentiert die Arbeit. Die unten stehende Checkliste fasst die wichtigsten Punkte zusammen, die bei der Abgabe beachtet werden sollten.
Tests Ein Programmierprojekt beinhaltet in der Regel Unit-Tests und Integration-Tests, mit denen die Funktionstüchtigkeit überprüft werden kann. Eine Testabdeckung von mindestens 80% des Codes ist anzustreben (Richtwert).
Urheberrecht Grundsätzlich wird empfohlen, das Projekt als Open-Source-Code zu veröffentlichen (z.B. MIT License, Apache License). Davon unabhängig müssen die Studierenden der Universität Zürich ein kostenloses, unbefristetes, nicht-exklusives Nutzungsrecht am Code gewähren.
AI-Tools Für das Schreiben der technischen Dokumentation gelten die "Guidelines on the Use of Text Generation Models for Seminar Papers and Theses" (PDF, 74 KB). Hingegen ist für den Programmiercode die ungekennzeichnete Nutzung von Hilfsmitteln wie ChatGPT oder GitHub Copilot erlaubt; die verwendeten Hilfsmittel müssen in der technischen Dokumentation aufgelistet werden. Die Verantwortung für die Qualität des Codes liegt bei den Studierenden.
Simon Clematide oder Jannis Vamvas können bei Interesse gerne kontaktiert werden.
Nach Abschluss des Programmierprojekts sollten die Studierenden eine E-Mail an den Studienberater und den Betreuer (CC) des Projekts schreiben. Folgende Teile werden benötigt:
Der Studienberater bittet dann das Dekanat, die Modulbuchung vorzunehmen.
Die Dokumentation kann als Teil des Code-Repository (z.B. Markdown-Dateien) oder als eigenständiges Dokument (z.B. PDF, HTML) abgegeben werden. Die Dokumentation enthält typischerweise folgende Informationen: