skip to content

Department of Computer Science and Technology


Technical approaches and tools

Projects may involve technical topics spanning everything you have learned on the Tripos so far. Almost all projects will also require you to learn new things. Some of this will draw on content taught later in the Tripos, which some members of the group may need to become familiar with. Some will involve learning about new programming languages or tools. Some might involve original research, or learning about new technologies for which there is little documentation.

Members of the group must help each other to work out what skills you have, and what you need to learn. Some projects may require specialist knowledge or proprietary information that your client will provide, while others can draw on technical expertise from within the Computer Laboratory or elsewhere in Cambridge. Some design briefs may include guidance, but we expect you to use your own resources beyond this.

Except where mentioned in the design brief, there are very few other constraints on the technical approach you take. You are free to use open source tools and new programming languages as appropriate. However, you should remember that all members of the group must make a substantial technical contribution, and that tools should be chosen accordingly. All CST students are familiar with Java, meaning that this will be a natural choice for many aspects of a typical project.

Source repository

Every team will need a shared repository to maintain and build their source code.

Note that each team must create an archive copy of your source repository at the end of the project. The archive file must be uploaded for assessment via Moodle.

For most projects, Git will be the most appropriate solution. There is a University GitLab service available to all students:

You are also welcome to use a shared (free) GitHub account if the team agrees this would be more appropriate or convenient.

Another available resource is the University deployment of OneDrive, on which every student gets a 5TB quota.  Although primarily intended for personal storage, it is possible to share folders with other users:

If your team primarily needs access from a remote Linux shell, you might create a shared folder on the undergraduate SSH server, cl-student-ssh:

Hardware projects

A few projects require use of special purpose hardware borrowed from clients, sponsors, or other sources. At the end of the project, all hardware must be returned. The final group tick will not be awarded until this has been done.

Some projects may include electronic or mechanical construction. In cases where a project involves significant hardware design, a demonstrator may be appointed to provide technical assistance such as advice on selection and purchase of electronic components, or access to workshop facilities.