Guidance¶
What the course is actually trying to teach you, how credit is awarded, and the practical decisions — tools, repositories, filespace, hardware — you'll need to make in the first fortnight.
Emulating a professional project, as closely as possible¶
The group design project course is an opportunity to gain experience of a real software development project. Projects are expected to take 30–60 hours of work, spread over seven weeks, and to let you demonstrate skills and understanding across a broad range of subjects.
-
Work in a team
Learning how to work with colleagues you did not choose, on a brief you did not write.
-
Work with a client
Learning how to work with a professional client, and to keep that relationship professional.
-
Follow a process
Learning how to plan and follow a systematic management process through all the phases of a software development project.
The briefs are meant to be hard
For most students, this will be the most significant technical challenge you have ever faced. The design briefs are deliberately intended to push the bounds of what you can achieve — often involving new technologies, substantial engineering effort, or addressing research problems that have never been solved before.
How the four ticks are awarded¶
Because the projects, groups, clients and individual roles are so diverse, one person's performance is not assessed relative to another's. Four standard ticks recognise that you achieved the goals of the course.
-
The group tick
One tick is awarded to all of the group members, to recognise that the project has succeeded.
-
Worked effectively with your team
Learning how to work in a team.
-
Maintained a professional relationship with your client
Learning how to work with a professional client.
-
Personally made a substantial technical contribution
Demonstrating skills and understanding across a broad range of subjects.
The expectation is that all students receive all four
If you are struggling with any of these goals, and believe there is any risk you might not receive ticks as a result, discuss the situation with your Director of Studies at the earliest opportunity. If you have severe concerns, also speak to your College Tutor and email group-project@cl.cam.ac.uk. All personal correspondence to that address is treated confidentially, being read only by the project organisers and the student administration team.
The interim self-assessment¶
After Meeting 3, and before Friday of Week 6, every student must review their personal contribution so far using the questionnaire on Moodle. This is an individual requirement, not a team one.
The personal report¶
Reflection on your experience, a summary of your own contribution, your assessment of every other member's contribution, and a sample of source code demonstrating one of your key technical contributions.
Technical approaches and tools¶
Except where mentioned in the design brief, there are very few constraints on the technical approach you take — but the choices you make in Week 2 shape whether everyone can contribute.
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.
You are free to use open source tools and new programming languages as appropriate. However, remember that all members of the group must make a substantial technical contribution, and tools should be chosen accordingly. All CST students are familiar with Java, meaning 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. Each team must create an archive copy of the source repository at the end of the project, uploaded for assessment via Moodle. For most projects, Git will be the most appropriate solution.
| Option | Notes |
|---|---|
| University GitLab service | Available to all students |
| GitHub | A shared free account is also welcome, if the team agrees |
| University OneDrive | 5 TB quota per student; folders can be shared |
| cl-student-ssh | Shared folder on the undergraduate SSH server |
MCS Linux and group filespace¶
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 at
${CLTEACH}/grpproj, with sub-directories alpha, bravo, … for each group. 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. A project website can be published by creating a sub-directory called
public_html, which maps to a URL under groups.ds.cam.ac.uk.
Hardware projects¶
A few projects require the use of special purpose hardware borrowed from clients, sponsors, or other sources. Some projects may include electronic or mechanical construction. Where a project involves significant hardware design, a demonstrator may be appointed to provide technical assistance — such as advice on selecting and purchasing electronic components, or access to workshop facilities.
Borrowed hardware must be returned
At the end of the project, all hardware borrowed from clients, sponsors or other sources must be returned. The final group tick will not be awarded until this has been done.
Previous: Deliverables
Back to: Project Teams overview