This module introduces the Software Engineering concepts that are needed to develop effective software artefacts that can meet basic functional requirements of a given problem . It introduces the main steps in the process of developing such systems, from requirements analysis through to their implementation and testing. The module also includes the theoretical mathematical concepts that allow students to produce code to meet stated requirements. The module involves students working in teams to develop a mathematical based software system, which gives practical experience in teamwork and managing software projects and their products.