School of Computer Science

Module 06-30180 (2018)

Logic and Computation

Level 1/C

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

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

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

Restrictions


Pre-requisites

  • 06-30181 - Mathematical Foundations of Computer Science

Teaching methods

Lectures, Unsupervised Labs

Contact hours: 33


Assessment

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


Detailed Syllabus


Programmes containing this module