Authorised by Academic Registrar, April 1996
Objectives At the completion of this subject students should understand the principal data types used in computing, together with their associated algorithms; be able to use the main algorithm design, specification and analysis techniques; and appreciate the importance of algorithmic complexity.
Synopsis The importance of formal methods and formal specifications in the development of software. Using predicate logic and set theory to codify statements about software properties. Varieties of formal specifications. Model-based formal specification. Object-oriented formal specifications. Case studies in formal specification. Specifying abstract data types using formal specification. Refining high-level specifications into algorithms and data structures. Main algorithm design techniques. Analysing the complexity of algorithms. Using approximate algorithms. Review of important algorithms.
Assessment Examination: 50% + Practical work: 50%