Authorised by Academic Registrar, April 1996
Objectives On completion of this subject students should be able to understand the basic principles of logic, and some methods of mathematical proof relevant to computing; understand limitations of the computer as a calculating machine; display an understanding of finite state machines, regular grammars, and their applications; perform operations with relations and functions, and understand their applications to the study of relational databases; and demonstrate an understanding of graph, directed graphs and trees, tree traversal, and binary trees.
Synopsis This subject aims to provide students with a basic understanding of logic, the ability to use techniques in finite and discrete mathematics; in particular, mathematics relevant to the design and development of good computer software. Students will be able to use the techniques of propositional calculus and apply them to the design of computer programs; be able to construct some standard mathematical proofs; appreciate how predicate calculus may be used in proving that a computer program meets its specification; be able to apply Boolean algebra to the design of simple combinatorial switching circuits; demonstrate a basic understanding of graphs and graph theoretic algorithms; display an understanding of finite state machines, regular grammars, and their applications.
Assessment Continuous assessment: 40% + Examination (3 hours): 60%