Navigation auf


Department of Computational Linguistics

Programming Projects

Programming projects serve to consolidate programming knowledge and acquire skills required in the context of software engineering.

Framework conditions

Version 2023.11

In programming projects, students (alone or in small groups) carry out software projects worth 3, typically 6 or at most 9 ECTS in the area of ​​language technology.

Learning objectives The students:
(1) plan a project
(2) implement a project plan
(3) implement software
(4) comply with documentation standards
(5) evaluate
(6) use software repositories

Requirements A maximum of two programming projects can be booked during a course of study. The study regulations regulate the creditability. You cannot book the module yourself; booking the module must be authorized by the person responsible for the module. Before a programming project is developed, it is mandatory to consult the module coordinator (via email). The requirements are determined according to the topic.

Topics Current research projects at the institute and open topics for theses can serve as a guide. However, students are invited to suggest their own ideas, which may arise in an interdisciplinary manner in connection with the subjects of study. Bugs and missing features in open source projects are also often a good inspiration (e.g. the “Transformers” project has the “Good First Issue” and “Good Second Issue” lists ).

Time Typically, the projects are taken on in early summer so that the main work can take place during the lecture-free period. Programming projects must be completed within 6 months.

Effort Any training time required for the programming language or environment used is not included in the total effort. 20% of the time should be allocated for documentation. If several students work together on a project, the responsibilities and achievements must be listed for each person.

Submission The programming code is shared with the supervisor in a Git repository (e.g. via or GitHub). A short technical report (max. 10 pages) documents the work. The checklist below summarizes the most important points that should be taken into account when submitting your application.

Tests A programming project usually includes unit tests and integration tests that can be used to check functionality. A test coverage of at least 80% of the code should be aimed for (guideline value).

Copyright It is generally recommended to publish the project as open source code (e.g. MIT License, Apache License). Regardless of this, students must grant the University of Zurich a free, unlimited, non-exclusive right to use the code.

AI tools The “Guidelines on the Use of Text Generation Models for Seminar Papers and Theses” (PDF, 74 KB) apply to writing technical documentation . However, the unlabeled use of tools such as ChatGPT or GitHub Copilot is permitted for the programming code; The tools used must be listed in the technical documentation. The responsibility for the quality of the code lies with the students.


Please feel free to contact Simon Clematide or Jannis Vamvas.

Modul Booking upon Completion of the Project

Upon completion of the programming project, students should write an email to the study advisor and the supervisor (CC) of the project. The following parts are needed:

  • student number (Matrikelnummer)
  • the number of ECTS 

The study advisor then asks the Dekanat to carry out the module booking.

Checklist: Submitting a Programming Project

1. Code files

  • Code
  • Code for testing
  • A Readme with installation and usage instructions, instructions for running the tests, examples, etc.

2. Technical documentation

The documentation can be submitted as part of the code repository (e.g. Markdown files) or as a standalone document (e.g. PDF, HTML). The documentation typically contains the following information:

  •  Goals and work steps of the project with information about how they were achieved
  •  Positive and negative results (This worked well because... This didn't work because...)
  •  Documentation of the concepts used, algorithms, resources with citations.
  •  Diagrams for illustrative purposes
  •  Documentation of input and output formats
  •  List of AI tools used
  •  Notes on potential future extensions
  •  For small groups: List the responsibilities and contributions of each student


Weiterführende Informationen

quo vadis


Student Consultation

For questions that are not answered in the guidelines and study regulations, read the FAQ first. Please also consult the site Student Services of the Faculty of Arts and Social Sciences.

If a question remains unanswered, please contact the Student Advisor for Computational Linguistics.

International students

Information for International students: International Scholars Center

For detailed information on what you need to take into account upon relocating to Switzerland, please refer to  Before and After Arrival.


Download guidelines and other important documents here.

CL Mailing List

Information (important announcements, excursions, courses, vacancies for tutors, job offers) is distributed to our students via our mailing list.


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