Aims:

Go through the experience of Research and Development (R and D) processes by developing a reference Proof of Concept design and prototype implementation for a complex and substantial software application over an extended period of time. Work with an external project partner to obtain requirements and get feedback for a project partner-defined problem. Experience of working with team organisation and management. Develop and work to a plan, with weekly lab checks, project partner reports and deliverable milestones to be met. A practical understanding of how the research experimentation and development of a software system is organised and carried out, both in terms of team working skills and the technical knowledge required. Practice using relevant skills and knowledge in completing tasks and milestones. The development of writing, media production, presentation and communication (technical and customer facing) skills. Learning how to evaluate the work done, and team and individual performance.

Learning outcomes:

On successful completion of the module, a student will be able to:

Understand how to work effectively with an external project partner and professional behaviour.
	Understand a software development process involving research and experimentation in an area of Computer Science.
	Organise a team and work effectively in a team.
	Understand how to undertake research to identify and use relevant ideas and technologies when developing software.
	Understand how to develop and test good quality software.
	Understand Research and Development approaches to requirements capture, HCI factors, and team-based development relevant to the projects undertaken.
	Write documentation and present results.
	Understand technical writing skills and share their awareness of legal issues as they apply to software development.
Content:

Students will undertake a systems engineering project within the Computer Science Industry Exchange Programme (IXN) structure. The students will work in small teams, where each team works with an external project partner to develop a cutting-edge solution to a challenging problem defined by the project partner. The project partner will typically be from one of the following types of organisation: public sector, SMEs, large companies, charity, healthcare/NHS, external research institution, or UCL research centre.

The project will be structured as a single major project portfolio, with a series of milestones, where each milestone involves completing a stage of the project: requirements, research into potential solutions, experiments and prototypes, definition of reference design, implementation, testing, and delivery. Each of these stages is to be documented on the projects team website. Each portfolio milestone is also a point of assessment.

A number of teaching methods will be employed, including hackathon-style sessions, project sprints in labs and specific lectures. Weekly communications are needed with project partner, with weekly lab checks and project partner reports to track the project progress and team working. An Elevator Pitch to companies is to be given by each team. The final milestone will require teams to deliver a working version of their application, along with a project website documenting the project results. Any publication of results on behalf of the project partner is seen as an advantage.

In addition, each individual will write a technical report assessing the work done, the team members, and reflecting on what they have learnt, in particular the area of technologies they have studied. Each team is allocated a PGTA, who they will meet every teaching week to report on progress and get feedback. Each team also has an academic supervisor, who will monitor the overall status of the team, and can provide more specialised support and feedback. The project finishes with delivery of their software to their project partner in a usable state with a joint code walkthrough, an assessed presentation and delivery of all associated materials such as legal implications, manufacturing processes and others. The taught material will be directly relevant to, and needed for, the project work. The overall project work will be submitted as an online project portfolio made up of the milestones.

Requisites:

To be eligible to select this module as optional or elective, a student must: (1) be registered on a programme and year of study for which it is a formally available; and (2) have experience of object-oriented programming.