Aims:

This project-based module introduces the concepts and methods required for the design and construction of apps software systems for a real-world client. It aims to develop a broad understanding of the disciplines of requirements and prototyping in human-computer interaction (HCI), project management and software engineering. It aims to realise a research and team coordinated approach in an engineering, societal and managerial context. It applies the principles of programming with the development of apps via learning-by-doing and problem-based learning (PBL) approaches. This is an intensely practical module and full student engagement outside of lectures and in lab classes is critical to successful completion of the module.

To ensure that the process of designing and implementing web and mobile applications is fully understood, the module requires students to undertake a major group project where they must work with an external client to develop and deliver a working application. This takes students through all the stages of a software development project, applying the concepts taught via lectures and online material. Outcomes in addition to the software deliverable include real-world client engagement, team management and project documentation deliverables.

The project clients come from a wide range of backgrounds, including companies of all sizes, the NHS, academic organisations and charities. Each client defines an application and technologies that they have a real need for and will put into use.

A successful project will deliver a working proof of concept application ready for client handover as research materials. The interaction with clients to develop software meeting real-world needs and practical understanding of the human-computer interaction methods is a unique and defining characteristic of this module and provides students with a thorough introduction to the processes and challenges involved.

Learning outcomes:

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

Demonstrate the principles of appropriate HCI, project management and software engineering methods.
	Design, document and implement the software for a real-world client application, which could be a mobile app or web service.
	Design and implement graphical user interfaces suitable for scaling on multiple devices and resolutions.
	Understand effective teamwork methods, project documentation and project organisation skills.
	Apply experience of interacting with a real client with user centred design methods considerations weighted strongly in the design aspect of the project.
Content:

Project work:

The apps development project begins at the start of term, with three major milestones (Requirements and HCI, Prototype and Deliverable) and continues until the final submission is made.
Client and Project Management:

Working as an effective software development team.
	Preparing project timelines and document templates.
	Communicating and documenting effectively all engagement with clients to meet requirements.
Human-Computer Interaction:

Overview of HCI.
	Gathering Data from Users.
	Understanding user needs/requirements.
	Design Guidelines.
	Principles of graphical user interface design and implementation.
	Sketching and Prototyping.
	Evaluation.
Mobile and Web Service development:

Designing a web or mobile application.
	Web and mobile app frameworks.
	Data storage.
	Analytics.
Group formation and client allocation:

Students are split into small project groups; each group will be allocated a client who provides the requirements for the app to be developed.
	The project groups are selected by the module organisers, who also provide the clients.
	Project groups will be responsible for organising themselves, submitting regular progress reports, and working with the client. Lecturers and teaching assistants monitor progress and provide feedback.
 

Group deliverables:

Regular progress reports and milestones submissions, including HCI, are made during the course of the project.
	The final submission includes the working version of the client’s application, demonstration video of the application, and project report documentation.
Individual deliverables:

Each student is required to submit an individual report giving an evaluation of the project and an assessment of each group member including themselves.
Requisites:

To be eligible to select this module, a student must be registered on a programme and year of study for which it is a formally available.