Software Engineering Group Projects:
Information for Prospective Clients

The Software Engineering Group Project at King's College London is a module taken by most undergraduate Computer Science students in the second year of their course. As part of this module, teams of 7—9 students undertake a 10-week software development projects. To make these projects interesting and rewarding experiences, we aim to provide students with real clients in real-world projects. If you are faced with a challenge that might be tackled by software, you could be a client and have a bespoke software solution developed by student teams.

Benefits for clients

  • These student group projects are an opportunity to have bespoke software developed for you at no cost (other than a small amount of your time to meet with and discuss the project with student teams). Neither the College nor the students are remunerated for this work.
  • The projects give you access to teams of very competent software developers. King's College London attracts excellent students. Many of our Computer Science students are accomplished software engineers by the time these group projects begin. Many are also creative problem solvers and highly skilled programmers and system developers. This enables us to take on a diverse range of project types, provided their scale and complexity fits within the constraints imposed by team size and project duration.
  • Because these projects are taken on by students because they are interesting and not on a for-profit basis, we can agree flexible intellectual property arrangements.

Benefits for students

  • These projects require students to elicit real-world requirements from a genuine client. This provides students with a valuable learning experience of requirements engineering that cannot be replicated fully in the context of a purely academic exercise.
  • These projects give students an opportunity to work with non-computer scientists and prospective users during their course, enabling them to develop a wide range of transferable skills, such communication skills, presentation skills and commercial awareness, but without the commercial pressures of a funded project.
  • The solutions produced by student teams may be used by clients, and therefore, these projects have the potential to yield valuable results that students can add to their emerging project portfolio and add to their CVs.
  • The real-world relevance of these projects makes these projects a highlight of the second year for many Computer Science students.

Suitable project ideas

The 10-week projects will be undertaken by teams of 7—9 students who have completed more than half of a BSc Computer Science degree and are capable of taking up paid Software Engineering internships. By the time they start this project, they will have completed a number of smaller group projects and a range of modules related to software engineering. A good project should constitute a meaningful challenge to these teams whilst also providing scope to produce something of value in a shorter time.

The projects tend to be very diverse, though it usually involves the development desktop application, a tablet application, a web application or a more complex client server system consisting of two or more applications. Most projects involve developing new software, though projects that involve extending existing software are possible. As it is difficult to define what makes a project idea suitable, below are some examples of projects that students have undertaken in the past:

  • A blood test diary was developed for King's Paediatric Liver Centre, designed to automate the administration involved with ensuring that long-term patients requiring regular blood tests have these tests done and analysed.
  • A PC-based 3D visualisation tool was developed to help medical researchers in the Dental School at King's College London explore radiation data collected from cancer patients undergoing radiation therapy.
  • A tablet-based computer game was developed for the Nuclear Medicine Department at Chelsea and Westminster Hospital. This game was aimed at children aged between 2 and 6 and was designed to entertain children in the waiting area and explain the procedure that they will undergo in a visual and entertaining manner.

If you have an idea for a project but are unsure whether it suits the Software Engineering Group Project, please get in touch to discuss your idea.

Arrangements

  • Team-project allocation: Each team is allocated a project, and each project is normally undertaken by multiple teams. This ensures that a client receives multiple solutions to their problem, maximising the chances that one can be deployed. Clients have an opportunity to constrain the number of teams they are prepared to work with. Teams have an opportunity to express their preferences for the different projects on offer. Normally, I am able to assign the vast majority of teams their first or second preferred project, while ensuring that each client has multiple teams and their capacity constraints are met.
  • Time commitment: Clients should commit to meet the teams working for them on three occasions: once at the start of the project in mid-January, once for a progress review in mid/late February and once near the end of the project in late March. The first meeting normally takes 30-40 minutes per team. The later meetings can normally be concluded within 30 minutes. After the project has concluded, I would like to have a conversation about each team. This takes about 10 minutes per team. Meetings can be arranged to take place in Bush House (on King's College London's Strand campus) or at the client's premises, provided they are in London.
  • Intellectual property: Intellectual property arrangements need to be agreed before the teams submit their project preferences. The client is free to determine what the intellectual property arrangements are. I recommend that the software is either developed under a free software license (with a public release of the source code) or that ownership and copyrights are retained by the client. It is possible to ask the student developers to sign a non-disclosure agreement at the start of the projects, provided that expectation is declared before students submit their project preferences. Teams that express a preference for projects that will be developed under a free software license will be assigned such a project. Students retain the moral rights to be recognised as the authors or co-authors of the software they developed.
  • Supervision: While the teams are largely self-organised, academics in Department of Informatics assume responsibility for supervsion of the teams. All teams are required to meet an academic once per fortnight and teams can book additional meetings with academic staff to discuss all technical and organisational aspects of the group project. The client's sole role is that of customer.
  • Any software produced for a client is delivered free of charge. While the student teams are very capable of delivering high quality working software, participation is these projects does not come with any guarantees or maintenance contract. Follow up projects, are possible though.

Timetable

By the end of December Complete proposal discussion. This includes agreeing a one paragraph text outlining the project's objectives and agreeing intellectual property arrangements.
Mid-January Student teams submit their project preferences and are allocated a project. First meetings with client are organised.
Second half of February Teams meet with clients to demonstrate the software developed thus far and get feedback on the current version.
Second half of March Teams meet with clients to demonstrate the nearly completed version of the software.
End of March Teams submit their work for marking.
Early April Clients receive a copy of the software as well as a video demonstration of the application.
Mid/late April Project review and marking.