School of Computer Science

Module 06-30180 (2018)

Logic and Computation

Level 1/C

Dan Ghica David Parker Semester 2 20 credits
Co-ordinator: Dan Ghica
Reviewer: David Parker

The Module Description is a strict subset of this Syllabus Page.


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.


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



  • 06-30181 - Mathematical Foundations of Computer Science

Teaching methods

Lectures, Unsupervised Labs

Contact hours: 33


Assessments: 2hr Examination (80%), Continuous Assessment (20%) Reassessment: 2hr Examination (100%)

Detailed Syllabus

Programmes containing this module