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. |
|