Text only

 University | Catalogues for 2006/07

University of Bath logo - link to University home page
 

 

Department of Computer Science, Unit Catalogue 2006/07


CM50109 Formal methods & programming

Credits: 12
Level: Masters
Semester: 1
Assessment: CW100
Requisites:
Aims: (a) to give a foundation in software design and development; (b) to give a foundation in implementing software solutions, using a modular programming language and an object-oriented programming language; (c) to develop an appreciation of the use of formal methods in software development, and to develop skills in simple specification and verification techniques.
Learning Outcomes:
A student will be able to:
* use design techniques such as modularisation and object-oriented design to develop software solutions to given problems;
* design, implement, test and document simple programs using both a modular programming language and an object-oriented programming language;
* use simple formal methods for specification and verification;
* specify, implement and use standard data structures.
Content:
Building software: the software lifecycle; the need for formal methods; program structures; program development. Principles of software design - modularisation, encapsulation, data hiding, clientship and reuse. Abstraction-based design - finding appropriate data abstractions and procedural abstractions. Using formal specification. Standard data abstractions: stack, queues, lists. Software testing: stages of testing; designing test plans. Formal verification techniques. Extending software development principles to an object-oriented language. Introducing object-oriented techniques for window and mouse management, memory management, garbage collection, socket communication for Internet programming, multiprogramming via threads. Introduction to graphical user interfaces for Internet programming.

University | Catalogues for 2006/07