Programming projects serve to consolidate programming knowledge and acquire skills required in the context of software engineering.
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
(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 gitlab.uzh.ch 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.
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: