Programming Projects
Programming projects serve to consolidate programming knowledge and acquire skills required in the context of software engineering.
Guidance on Programming Projects
In programming projects, students, either individually or in small groups, carry out software projects in the area of language technology. Projects are worth 3, typically 6, and at most 9 ECTS.
Learning objectives
Students learn to
- plan a project
- implement a project plan
- implement software
- comply with documentation standards
- evaluate software
- use software repositories
Requirements
A maximum of two programming projects can be booked during a course of study, separately for the BA and MA levels. Please consult the detailed module description and follow the administrative instructions in the UZH Course Catalogue.
Topics
Students may either propose their own topic and ideas or work on a predefined topic. Suitable topics should be in the area of language technology and may arise from current research projects at the department, open topics, interdisciplinary study interests, or practical needs in existing software projects. Bugs, missing features, or extensions in open-source projects can also provide good inspiration for programming projects.
Supervisors
Students must independently find a supervisor at the Department of Computational Linguistics before starting the project. PhD candidatas, postdocs, professors or lecturers can be supervisors.
If a programming project should be carried out outside the department, the student must contact the module coordinator by email before the project begins. The email must include the external supervisor’s full name, position, email address, and the project topic, so that it can be clarified whether the project can be credited.
Effort
Any training time required for the programming language, tools, or environment used is not included in the total effort. Around 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 typically shared with the supervisor in a Git repository, e.g. via gitlab.uzh.ch or GitHub. A short technical report of no more than 10 pages should documents the work. The checklist below summarizes the most important points to consider when submitting the project.
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. The tools used must be listed in the technical documentation. Responsibility for the code quality lies with the students.
Version 2026.06.08
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