# Algorithms and Logic - COMP8840

Looking for a different module?

## Module delivery information

Location Term Level1 Credits (ECTS)2 Current Convenor3 2024 to 2025
Canterbury
Spring Term 7 15 (7.5) Olaf Chitil

## Overview

This module aims to strengthen the foundational programming-in-the-small abilities of students via a strong, practical problem-solving focus. Specific topics will include introductory algorithms, algorithm correctness, and algorithm runtime. Essential data structures and algorithmic programming skills will be covered, for example, arrays, lists and trees, searching and sorting, recursion, and divide and conquer. One part of the module will also introduce students to logical formalisms such as propositional and predicate logic and some of their applications in program development.

## Details

### Contact hours

Total contact hours: 32
Private study hours: 118
Total study hours: 150

## Method of assessment

Main assessment methods
Take-home logic exercises (25%)
Take-home programming project (25%)
Examination, 2 hours (50%)

Reassessment methods
Like for like.

Steven Skiena, "The Algorithm Design Manual", Springer, 2008.
Huth, M. & Ryan M., Logic in computer science: modelling and reasoning about systems, Cambridge University Press, 2004.

See the library reading list for this module (Canterbury)

## Learning outcomes

On successfully completing the module students will be able to:
1. Understand a problem description, and then identify, compare, and implement appropriate algorithms to solve it.
2. Demonstrate ability to formulate formal solutions to problems logically and in algorithmic form.
3. Demonstrate conceptual understanding on how to devise and sustain arguments regarding the correctness and runtime efficiency of algorithms .
4. Understand and implement basic data structures (e.g., arrays, lists, trees) and use algorithmic techniques (recursion and divide & conquer) to solve well-known problems (searching and sorting) and to newly encountered problems.
5. Understand and manipulate a variety of logical formalisms (e.g., propositional and predicate logic).
6. Understand and apply different proof methods.
7. Understand and prove several different properties of logical formulae (e.g., satisfiability, validity, equivalence, consequence).
8. Formulate statements and problems in logical form

The intended generic learning outcomes.
On successfully completing the module students will be able to:
1. Communicate information, ideas, problem, and solutions to both specialist and non-specialist audiences.
2. Critically evaluate arguments, assumptions, abstract concepts and data (that may be incomplete), to make judgements, and to frame appropriate questions to achieve a solution to a problem.
3. Apply the methods and techniques that they have learned to review, consolidate, extend and apply their knowledge and understanding, and to initiate and carry out projects