Module 06-30180 (2018)

Logic and Computation

Level 1/C

Outline

Logic is the study of the principles of reasoning, and lies at the foundations of computation. There is a deep connection between logic and a style of programming known as functional programming. This makes it possible to reason about the correctness of programs in a principled way. The module will teach students programming in a functional language along with proof methods about program correctness. It will also include the study of algorithms expressed in functional programming and their efficiency.

Aims

The aims of this module are to:

Learning Outcomes

On successful completion of this module, the student should be able to:

Write formal proofs for propositional and predicate logic

Write programs using recursive data types and recursive functions

Reason about the correctness and complexity of functional programs using logic and structural induction