Learning Outcomes:
Having attended this module, studied the material and done the exercises the student should....
Be able to construct proofs in predicate logic.
Be able to construct specifications for a range of problems.
Be able to calculate programs to meet these specifications.
Be able to apply generic solutions to specific instances of problems.