COMPGC05 - Algorithmics
Note: Whilst every effort is made to keep the syllabus and assessment records correct, the precise details must be checked with the lecturer(s).- Code
- COMPGC05
- Year
- MSc
- Prerequisites
- This course should be taken in conjunction with the core courses for this programme (ie GC01, GC02, GC03 and GC04)
- Term
- 2
- Taught By
- Denise Gorse (50%)
Jens Krinke (50%) - Aims
- To introduce more formal aspects of algorithms and data structures than in the first term. Properties of data types such as queues and search trees. Techniques for analysing the complexity and decidability of algorithms. Formal models of computation.
- Learning Outcomes
- Knowledge of a selection of standard data structures and abstract data types. The ability to choose appropriate data structures for programming problems. Understanding of a variety of common algorithms and why some are more efficient than others. Ability to discuss uncomputable and intractable algorithms.
Content:
- Course Introduction
- Introduction to data structures and abstract data types.
Abstract data types and Java classes.
Language facilities. Model of storage in imperative languages. Cells, l-values and r-values. Exceptions.
Data aggregation: arrays, structures and object references. - Linear abstract data types
- Stacks and queues. Implementations
with arrays and linked lists. Applications.
Sequences. Implementations with arrays and linked lists. Circular and double linked lists.
Inheritance relationships between linear linked lists - Tables
- Linear look-up table.
Linear search.
Binary search. - Trees
- Definitions of trees.
Binary search tree.
Insertion, deletion, tree traversal and searching. - Hash tables
- Chaining.
Open addressing.
Choice of hash function. - Graphs
- Adjacency lists.
Adjacency matrices.
Depth and breadth first traversal. - Sorting
- Insertion Sort
Mergesort
Quicksort - Analysis of Algorithms
- Empirical vs theoretical analysis
Algorithmic complexity
O notation
Best, worst, and average cases
Sums of series
Simple summation formulae - Analysis of earlier examples
- Includes linear and binary search
- Limits of Computation
- Tractable and intractable problems; the complexity classes P, NP, NPC
Undecidability; the Halting Problem
Method of Instruction:
Lecture presentations, coursework and associated class problems .
Assessment:
The course has the following assessment components:
- Written Examination (2.5 hours, 90%)
- Coursework Section (2 pieces, 10%)
To pass this course, students must:
- Obtain an overall pass mark of 50% for all sections combined
The examination rubric is:
Answer any 3 questions, at least ONE from EACH of Sections A and B, all questions carry equal marks
Resources:
Algorithmics - the science of computing. D.
Harel, Addison-Wesley, 1989.

