Rules for team projects in computer science master programs

Since academic year 2020/2021 the study plans of computer science master programs offer a possibility of involvement in a team project. The goal of team projects is to provide a student an experience with team work on a software-oriented project. In the study programs Computer Science - Software and Data Engineering, Computer Science - Software Systems, Computer Science - Visual Computing and Game Development the team project is obligatory, while in programs Computer Science - Artificial Intelligence, Computer Science - Language Technologies and Computational Linguistics the team project is elective. The student chooses one out of three types of a team project: a Software Project, a Research Project, or a Company Project. In Software Project a team of students develops a larger software system. The Research Project allows a student to temporarily join an existing research team at the faculty, in which the student works on a particular research-development task. The Company Project allows a student to accomplish the team software project outside of the faculty environment, in a company, while still meeting the standards set commonly for all project types.

Project Board and the Project Roles

Every study program has established its own Project Board (the Board, in short). The contact email addresses of particular study program Project Boards (+ associated dept.):

The following text is valid for all the mentioned study programs except the CS - Visual Computing and Game Development that has its own rules.

Besides the students working on the project, there are the following actors:

Research or academic employee or PhD student from the associated department, or (with the Board consent) another employee of the School of Computer Science. The supervisor regularly supervises the project works, provides consultations for the team members and evaluates the project when it is delivered for defence. The supervisor could also be the consultant (especially in the Research Project).
The project could have a consultant from the School of Computer Science or (with the Board consent) an external consultant (outside the faculty). The consultant is responsible for the domain-specific part of the project. In case of Company project there is typically obligatory an external consultant.
After the project is completed the Board chooses a reviewer that thoroughly evaluates the project and provides a review for the defence.

The project management is carried out by the supervisor or the consultant. In case of Software project the manager could be one of the student team members.

Project assignment and approval

The plan of every project must be approved by the Board: The content of the plan is specific to the type of project, but in each case it must contain the following:

The Project plan is delivered to the Board by the student solver (or by an appointed one in case of multiple solvers in the project).

There must be clear from the Project plan the goals and expected outcomes of the project, its main components, basic technologies used, and the overall work complexity. The Board evaluates the Project plan and approves or rejects it, or eventually demands its adjustments. In case of Research and Company project the solution draft, time schedule and milestones are submitted to the Board as a part of the Project plan. In case of Software project these items are the part of detailed specification submitted to the Board before the implementation phase of the project starts (see below).

Project plans can be submitted to the Board anytime during the academic year. It is recommended to start the project in the first year of master study, or in the beginning of the second year at latest.

Project solution

The project solution takes place by cooperation of the student team members and the supervisor (and the consultant, if assigned).

The project solution period is limited to 9 months from the start of the works until its submission for defence. In case this limit cannot be met the project team can ask (before the end of the period) the Board for an extension (the extension must be argumented by the objective reasons, current state of the project, new time estimate for finishing the project, and the supervisor's statement). The extension cannot be claimed, it is granted at the discretion of the Board.

Project submission and defence

The project deliverables are submitted in electronic form, typically using the faculty GitLab.

The defence takes place in front of the Board. The supervisor, the reviewer and optionally the consultant are also present at the defence. The defence is public. In case of successful defence the involved students are granted the credits for the respective project module. The Board could also acknowledge the higher workload on the project and grant also credits for the Increased project scope (NPRG072) module. In case of defence failure the Board chooses the deadline for submission of fixed and/or extended version of the project. Such a project has one more attempt to be defended.

Project types

The following sections describe the specifics of each project.

Software project (NPRG069)

This type is defined as a software-oriented team project for 3-5 (exceptionally 6) students. The deliverable of this project is compilable and executable software work that includes all necessary dependencies (libraries, data and configuration files, etc).

Joint projects across different study programs are possible. Within such a project, each student is responsible for project requirements of the study program she/he is enrolled to. The project plan is submitted to the Board of that study program that is the most relevant (by the team opinion) to the subject of the project. The project as a whole (especially the plan approval and project defence) is evaluated by a joint Project Board that is composed of delegates of the respective study programs.

If any of the project team members does not participate on the project sufficiently or she/he does not follow the instructions of the supervisor, the supervisor can propose (to the Board) her/his exclusion from the project. In case of team member exclusion the Board can adjust the project conditions with respect to the reduced team.

The Project plan

For the purposes of the Software project, the Project plan does not contain any addition to the shared part.

Project solution

Prior to the implementation start, the project team creates detailed Technical specification that includes:

  • the technical solution of the work
  • tools used, technologies, frameworks, libraries, etc.
  • a detailed time schedule and milestones
  • individual responsibilities of the team members and the expected workload per student

After approval by the supervisor, the team submits the specification to the Board that could raise additional requirements or explanations that must be addressed.

Project submission and defence

There could be specified different form of submission of the project in the project plan. The obligatory parts of the submitted project are:

  • source, configuration and data files created by the team members during the project solution
  • development documentation including the description and argumentation of important changes with respect to the approved specification
  • the project history, typically this is included in GitLab
  • installation and user documentation

Research Project (NPRG070)

This project type allows a student (or multiple students) to participate on a long-term research project taking place at the associated department (or with the consent of the Board at any department of the School of Computer Science). The student works on a particular task within the long-term research project and cooperates tightly with other research team members (typically department staff and PhD students). The software outcome of Research project is typically expected as a tool (or set of tools connected into a pipeline) for experiments related to the research domain and its application (running experiments).

Project plan

In addition to the shared part, the Project plan submitted to the Board must also include:

  • detailed specification of individual tasks
  • draft of technical solution (including tools and technologies used)
  • time schedule and milestones
  • předpokládané využití výstupu projektu pro výzkumnou činnost

The specification is prepared by the student in cooperation with the supervisor, and/or with the consultant.

Project defence and publication

Besides the project defence the results of research project are expected to be used to create a publication output. As part of the defence, the student should present the expected use of the project output for publication purposes. In case of tighter integration into the research team it is possible the student's involvement into ongoing and prepared research grant projects. In case a part of the submitted project is an executable software, there must be specified in the project plan the means of its presentation at the defence

Company project (NPRG071)

This project type allows a student to participate on a software project in the company environment. The preferred companies are those involved in Partner program of the Faculty of Mathematics and Physics. With the consent of the Board it is possible to carry out the project in cooperation with another company. In such case, it is the duty of the student to deliver to the Board a detailed information about the company, the project that the student is supposed to join, the consultant and her/his role in the company.

The student takes part on larger software team work in the company, where she/he has clearly specified task, deliverables and results. The responsibility for negotiations with the company and the project plan preparation is on the side of the student.

Project plan

In addition to the shared part, the Project plan submitted to the Board must also include:

  • company consultant, her/his role in the company, contact (cannot be in conflict of interests)
  • technical assignment approved by the company consultant
  • company context, project extent, student role, means of cooperation in the company team
  • the form of submission and presentation at defence
  • the consent of the company to submit the project and to present the project at the defence

Prior ad-hoc company project / internship / employment of the student cannot be accepted as the Company project.

It is not necessary to submit complete executable product, this even is not technically or legally possible. However, the student in cooperation with the company must allow the supervisor and the reviewer a detailed evaluation of the functionality of the student work as well as its presentation at the defence.

Study program specifics

Besides the shared rules, particular study programs have some specific requirements on the projects.

Computer Science - Software and Data Engineering

Software or mostly software-oriented project processed using the software engineering practices. A part of the project could be an application of data science, machine learning, HCI, big data processing (including multimedia), and other applications.

Computer Science - Software Systems

Preferred projects are from the area of system programming, programming languages, software tools, software architectures, and so on. Hence, projects that deal with software functionality as such, not just applications of standard software designs.

Computer Science - Visual Computing and Game Development

See individual rules of this study program.

Computer Science - Artificial intelligence

Projects focused at artificial intelligence and applications, including robotic projects. The projects could be from the areas of automatic planning, machine learning, knowledge representations, uncertain information processing, robot competitions, etc.

Computer Science - Language Technologies and Computational Linguistics

Projects focused at language technologies and their usage mainly in natural language processing in written or oral form, e.g., in translation or dialogue systems, for information extraction from text, speech, or eventually from images and video. The projects typically employ machine learning methods or hybrid methods combining machine learning and symbolic methods. Similar technologies could be used in the projects generally for processing of big unstructured data.