Catalogue of Modules, University of Nottingham

G52ACE Algorithms Correctness and Efficiency
(Last Updated:04 May 2017)

Year  16/17

Total Credits: 20

Level: Level 2

Target Students:  Part I undergraduate students in the School of Computer Science only.

This module is part of the Foundations of Computer Science theme in the School of Computer Science. There is a limited number of places on this module. Students are reminded that enrolments which are not agreed by the Offering School in advance may be cancelled without notice.  Available to JYA/Erasmus students.

Taught Semesters:

Full Year Assessed by end of Spring Semester 

Prerequisites: None.

Corequisites:  None.

Summary of Content:  This module covers important aspects of algorithms, namely their correctness and efficiency. To address correctness we use a mathematically rigorous approach to formal verification. You'll study topics such as: proofs in propositional logic and predicate logic; introduction to program specification and program correctness, including assertions and loop invariants. To address the issue of efficiency we cover the use of mathematical descriptions of the computational resources needed to support algorithm design decisions. You'll study topics such as: sorting algorithms, heaps, binary search trees, hashmaps, and graph algorithms. The emphasis is upon understanding data structures and algorithms so as to be able to design and select them appropriately for solving a given problem.

Method and Frequency of Class:

ActivityNumber Of WeeksNumber of sessionsDuration of a session
Lecture 21 weeks2 per week1 hour
Tutorial 19 weeks1 per week1 hour
Computing 19 weeks2 per week1 hour

Activities may take place every teaching week of the Semester or only in specified weeks. It is usually specified above if an activity only takes place in some weeks of a Semester

Further Activity Details:
Tutorial and Computing will not necessarily occur in every week.

Method of Assessment: 

Assessment TypeWeightRequirements
Exam 1 25 1-hour examination in January 
Coursework 1 25 Continuous assessment, including programming and writing of reports, possibly with some under exam conditions. 
Exam 2 50 2-hour examination in May/June 

Dr B Logan
Dr A Parkes

Education Aims:  
The aim of this module is to develop reasoning skills relevant for Computer Science and be able to read and use the language of formal logic to precisely express requirements and reason about software systems, to gain understanding of the issues involved in designing a program for a specific task, and a good working knowledge of some common algorithms and data structures.

Learning Outcomes:  
Knowledge and Understanding:
The theory and practice of implementing algorithms; to know of and understand the mathematical properties of algorithms, and of the relevant basic mathematical concepts, definitions and notations.

Intellectual Skills:
To be able to apply mathematical techniques to algorithms and data structures.
The ability to understand and apply simple logical reasoning.
To be able to understand the specification of data structures and algorithms.

Professional Skills:
To implement data structures and algorithms, evaluate available tools, applications, algorithms and data structures, and select those that are fit for purpose within a given domain/scenario.

Transferable Skills:
To be able to solve problems using a variety of data structures and algorithms.
To use mathematical techniques when necessary to achieve the above.
The ability to use mathematics to solve problems.

Offering School:  Computer Science

Use the Back facility of your browser to return to the previous page.

Module Catalogue Search for another module

[UoN Welcome Page] Return to The University of Nottingham Welcome Page