Navigation auf uzh.ch

Suche

Institut für Computerlinguistik

Programmierprojekte

Programmierprojekte dienen der Festigung der Programmierkenntnisse und dem Erwerb von Fertigkeiten, wie sie im Kontext des Software-Engineering erforderlich sind.

Rahmenbedingungen

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.

Kontakt

Simon Clematide, Manfred Klenner oder Jannis Vamvas können bei Interesse gerne kontaktiert werden.

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

Weiterführende Informationen

studium

Studium

Studienberatung

Bei Fragen, die in den Wegleitungen und Studienordnungen nicht beantwortet werden, zuerst die FAQ lesen. Bitte beachten Sie vor allem auch die Studiumsseite der Phil. Fakultät.

Bleibt die Frage offen, wenden Sie sich bitte an den Studienberater für Computerlinguistik.

Internationale Studierende

Informationen für Internationale Studierende: International Scholars Center

Detaillierte Informationen über die zu unternehmenden Schritte für die Einreise:  Before and After Arrival.

Offene Themen für Abschlussarbeiten

... sind hier aufgelistet.

Wegleitungen

Zum Download von Wegleitungen und anderen wichtigen Dokumenten.

CL-Mailingliste

Über unsere Mailingliste werden Informationen (wichtige Ankündigungen, Exkursionen, Kurse, freie Tutorenstellen, Job-Angebote) an unsere Studierenden verteilt.

Demos

We collect web-based demos of different applications. Try out what language technology systems can do!

CL@UZH Instagram