Aims:

This module aims to provide students with knowledge of the programming languages and techniques needed to develop, test and deploy an application using data science techniques and that is delivered using web technologies. The core programming language used is Python, though additional languages (e.g. HTML, CSS, SQL) and relevant code libraries and frameworks (e.g. pandas, Flask, Plotly Dash) will be taught and used in the module.

Students will use programming techniques and tools to develop, test (and optionally deploy) software applications.

Learning outcomes:

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

Develop an application using an appropriate design/architecture (design is taught in COMP0035).
	Use a structured language to develop the presentation layer of a web application.
	Use a data interchange format.
	Use appropriate tools and programming languages for developing the application logic in the browser and on the server.
	Use database technologies to store and query persistent data for an application.
	Write unit tests, and test and debug an application.
	Use tools for version control.
	Apply the skills and knowledge gained to design, develop and (optionally) deploy an application.
Content:

The module will cover the following topics, the focus of which is subject to change:

Designing data visualisations.
	Using frameworks, tools and libraries for data analysis and visualisation.
	Using frameworks, tools and libraries for developing web applications.
	Introduction to the layout and styling of web applications.
	Transferring data between client and server.
	Developing server-side application logic.
	Developing and using a database to store and query persistent data.
The module content requires students to apply tools and techniques taught in Applied Software Engineering (COMP0035) such as:

Code quality.
	Application architecture.
	Version control (GitHub).
	Unit testing and continuous integration.
	Agile software development methods.
The module's courseworks may be set as individual or group-based assessments.

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; (2) have passed Introduction to Programming (COMP0015) or an equivalent module in Python programming; and (3) have also selected Systems Engineering (COMP0035) in Term 1.