- Student Records
Programme & Unit Catalogues

CM50109: Formal methods & programming

Follow this link for further information on academic years Academic Year: 2014/5
Further information on owning departmentsOwning Department/School: Department of Computer Science
Further information on credits Credits: 12
Further information on unit levels Level: Masters UG & PG (FHEQ level 7)
Further information on teaching periods Period: Semester 1
Further information on unit assessment Assessment Summary: CW 100%
Further information on unit assessment Assessment Detail:
  • CW 1 (CW 40%)
  • CW 2 Group Project (CW 60%)
Further information on supplementary assessment Supplementary Assessment: Like-for-like reassessment (where allowed by programme regulations)
Further information on requisites Requisites:
Further information on descriptions Description: Aims:
(a) to develop an understanding of how the principles behind software development are much more important than the chosen programming language, and how specification and design choices may have a major impact on the correctness and suitability of the final software solution;
(b) to develop a systemic understanding of software development paradigms for complex software system building;
(c) to develop skills in critically analysing problems for appropriate software solutions;
(d) to develop an understanding of, and skills in the use of, formal methods as part of the software design process.
(e) to develop group working skills in software development, and an understanding of how teams are built and interact.

Learning Outcomes:
After taking this unit the student should be able to:
* identify issues and appropriate solutions for the design and implementation of complex software problems;
* perform evaluations of design solutions to determine their fitness for purpose;
* demonstrate an understanding of the principles of software development paradigms and their relationship to the appropriateness of an eventual software solution;
* demonstrate an understanding of the use of formal methods as part of the development of software solutions;
* work effectively in a team to develop a software solution to a given problem.

Choosing appropriate design techniques (T F A); designing software solutions in modular and object-oriented programming languages (T, F, A); Formally specifying solutions for modular languages, and incorporating these specification into hierarchical object models, and implementing software solutions based on these models (T, A). Group working (T, A).

The building blocks of software. Software design paradigms: abstraction, modularisation, encapsulation, data hiding, clientship, reuse, forms of inheritance and their meanings. Use of formal specification techniques and their place in the software development lifecycle. Principles for engineering complex software systems. The effect of the programming language on design and implementation issues. The differences (and similarities) between modular programming and object oriented programming. Software project management and group working (with associated group project).
Further information on programme availabilityProgramme availability:

CM50109 is Compulsory on the following programmes:

Department of Computer Science
* This unit catalogue is applicable for the 2014/15 academic year only. Students continuing their studies into 2015/16 and beyond should not assume that this unit will be available in future years in the format displayed here for 2014/15.
* Programmes and units are subject to change at any time, in accordance with normal University procedures.
* Availability of units will be subject to constraints such as staff availability, minimum and maximum group sizes, and timetabling factors as well as a student's ability to meet any pre-requisite rules.