Skip to Content


Last modified: 25 May 2018 11:16

Course Overview

This course provides the knowledge needed to understand, design and compare algorithms.  By the end of the course, a student should be able to create or adapt algorithms to solve problems, determine an algorithm's efficiency, and be able to implement it. The course also introduces the student to a variety of widely used algorithms and algorithm creation techniques, applicable to a range of domains. The course will introduce students to concepts such as pseudo-code and computational complexity, and make use of proof techniques as well as the student’s programming skills.

Course Details

Study Type Undergraduate Level 2
Session Second Sub Session Credit Points 15 credits (7.5 ECTS credits)
Campus None. Sustained Study No
  • Dr Nir Oren

Qualification Prerequisites

  • Either Programme Level 1 or Programme Level 2

What courses & programmes must have been taken before this course?

  • Any Undergraduate Programme (Studied)
  • CS2013 Mathematics for Computing Science (Studied)
  • One of CS1014 Foundations of Computing Science 1 (Passed) or CS1016 Foundations of Computing Science 1 (Passed) or CS1022 Computer Programming and Principles (Passed)

What other courses must be taken with this course?


What courses cannot be taken with this course?

  • CS2007 Algorithmic Problem Solving (Studied)
  • CS2011 Algorithmic Problem Solving (Studied)
  • KL2576 Algorithmic Problem Solving (Studied)

Are there a limited number of places available?


Course Description

This course concerns seeks to equip the student with the knowledge required to identify appropriate algorithms to address computational problems. It begins by describing the concept of an algorithm, and shows how once an determine whether an algorithm solves a specific problem. Computational complexity is then introduced, allowing the student to compare algorithm efficiency. Basic data structures, such as lists, queues, trees, etc are then described and analysed. The course then examines standard approaches to algorithm creation, such as dynamic programming and search, as well as common algorithmic problems and their solutions, such as sorting.

Further Information & Notes

Assistive technologies may be required for any student who is unable to use a standard keyboard/mouse/computer monitor. Any students wishing to discuss this further should contact the School Disability Co-ordinator.

Degree Programmes for which this Course is Prescribed

  • BSc Computing Science
  • BSc Computing Science and Philosophy
  • BSc Computing Science and Physics
  • BSc Computing Science-Mathematics
  • Bachelor Of Engineering In Engineering Electronic & Software
  • Bachelor Of Science In Geophysics
  • Computing Science Joint
  • Computing Science Minor
  • MA Computing
  • MA Computing and Music
  • MSci Computing Science (AI) with Ind Pl'n
  • MSci Computing Science w Ind'l Placement
  • MSci Computing with Industrial Placement
  • Master Of Engineering In Electronic & Software Engineering
  • Master of Engineering in Computing Science

Contact Teaching Time

72 hours

This is the total time spent in lectures, tutorials and other class teaching.

Teaching Breakdown


1st Attempt: 1 two-hour written examination (50%) and in course assessments (50%). In order to pass the course, candidates must obtain a pass mark in the examination and in the overall combinations of examination and in-course assessment (with the above weights). Resit: 1 two-hour written examination (75%); 25% carried forward from the weight adjusted original in-course assessments. Candidates must obtain a pass mark in the exam and the overall combination of exam and in-course assessment.

Formative Assessment




Compatibility Mode

We have detected that you are have compatibility mode enabled or are using an old version of Internet Explorer. You either need to switch off compatibility mode for this site or upgrade your browser.