skip to content

Department of Computer Science and Technology


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.

There are a wide variety of software development tools and facilities provided on the MCS Linux system, and this should be a valuable resource for many projects.

Every group is assigned a personal filespace under MCS Linux, accessed via


with sub-directories alpha, bravo, ... for each group. Group members have access privileges for the appropriate directory. You are not obliged to use MCS Linux for development work, but every group must deposit an archive copy of their source code in the group directory, to be used in project assessment. Disk usage should be kept below 100 Mbytes for source code, test data and documentation.

If desired, a project website can be published by creating a sub-directory called “public_html” which will map to the URL{group name}

Some 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.