Programmierprojekte
Programmierprojekte dienen der Festigung der Programmierkenntnisse und dem Erwerb von Fertigkeiten, wie sie im Kontext des Software-Engineering erforderlich sind.
Rahmenbedingungen
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:
- planen ein Projekt
- setzen einen Projektplan um
- realisieren Software
- halten Dokumentationsstandards ein
- evaluieren Software
- nutzen Softwarerepositorien
Voraussetzungen
Im Laufe des Studiums können maximal zwei Programmierprojekte gebucht werden und zwar getrennt für den Bachelor- und den Masterstudiengang. Bitte lesen Sie die detaillierte Modulbeschreibung und befolgen Sie die administrativen Anweisungen im UZH Course Catalogue.
Themen
Die Studierenden können entweder eigene Themen und Ideen vorschlagen oder an einem vorgegebenen Thema arbeiten. Geeignete Themen sollten aus dem Bereich der Sprachtechnologie stammen und können sich aus aktuellen Forschungsprojekten des Instituts, offenen Themen, interdisziplinären Studieninteressen oder praktischen Anforderungen in bestehenden Softwareprojekten ergeben. Auch Fehler, fehlende Funktionen oder Erweiterungen in Open-Source-Projekten können eine gute Inspiration für Programmierprojekte sein.
Betreuung
Die Studierenden müssen sich vor Beginn des Projekts selbstständig eine Betreuungsperson am Institut für Computerlinguistik suchen. Als Betreuungsperson kommen Doktorierende, Postdoktorierende, Professor:innen oder Dozierende in Frage.
Sollte ein Programmierprojekt ausserhalb des Instituts durchgeführt werden, müssen Studierende vor Beginn des Projekts per E-Mail Kontakt mit der/demModulverantwortlichen. Das E-Mail muss den vollständigen Namen, die Position und die E-Mail-Adresse der externen Betreuungsperson sowie das Projektthema enthalten, damit geklärt werden kann, ob das Projekt angerechnet werden kann.
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.
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). Die verwendeten Hilfsmittel müssen in der technischen Dokumentation aufgelistet werden. Die Verantwortung für die Qualität des Codes liegt bei den Studierenden.
Version Juni 2026
Checkliste: Abgabe Programmierprojekt
1. Programmdateien
- Programmcode
- Code für automatisierte Tests
- Ein Readme mit Erläuterungen zur Installation und zur Benutzung, Erläuterungen, wie die Tests ausgeführt werden, Beispielen o.ä.
2. Technische Dokumentation
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:
- Ziele und Arbeitsschritte des Projekts mit Angaben über das Erreichen
- Positive und negative Resultate (Dies funktioniert gut, weil ... Das hat nicht geklappt, weil …)
- Dokumentation der verwendeten Konzepte, Algorithmen, Ressourcen mit Quellenangaben.
- Diagramme zur Veranschaulichung
- Dokumentation der Input- und Output-Formate
- Liste genutzter AI-Tools
- Hinweise auf Erweiterungsmöglichkeiten
- Bei Kleingruppen: Auflistung der Verantwortlichkeiten und Beiträge der einzelnen Studierenden