Module: CPU5001-20 - Data Structures and Algorithms
Level: 5
Credit Value: 20
Module Tutor: Dave Cobb
Module Tutor Contact Details: d.cobb@bathspa.ac.uk
1. Brief description and aims of module:
To write effective and efficient programmes, it is essential to understand the function and various forms of data structures and algorithms. They allow us to store, process, maintain and retrieve data appropriately (data structures) and perform operations on such data (algorithms) to solve problems in computing. This module exposes the capabilities and performance characteristics of a range of frequently used data structures and algorithms, with the aim to helping you select and apply the most appropriate approach for a given problem.
Data Structures and Algorithms commences with an in-depth critical review of linear and associate data structures, covering the function, advantages and limitations of types such as arrays, linked lists, stacks, queues, trees and graphs. Attention then turns to algorithms including those used to sort and search through data. Here you write algorithms to solve everyday problems, and deploy methods of analysing the accuracy and performance of your solutions
2. Outline syllabus:
Outline syllabus
Why data structures and algorithms matter
Visualising everyday problems
Understanding linear and associative data structures
Comparing and analysing data structures (capabilities, performance characteristics and applications
Searching and sorting data (and more) using algorithms
Asymptotic analysis and notation
Approaches to optimisation
Writing correct and efficient algorithms
3. Teaching and learning activities:
Class Hours
Data Structures and Algorithms is delivered in a seminar format that includes numerous opportunities to apply the concepts introduced in class. There is a particular emphasis on demonstrating how abstract ideas relate to everyday problems, and using formal methods to visualise, implement and analyse proposed solutions.
Independent Learning
To help you better improve understanding of the concepts introduced in class, you are provided with set exercises to complete outside of contact time. It is important to complete these exercises so that tutors can offer you support in areas that require further attention.
Assessment Type: Course Work
Description: Lab exercises
% Weighting: 40%
Assessment Type: Course Work
Description: Report on the design, implementation and analysis of an algorithm (3000 words)
% Weighting: 60%