Module Overview

Algorithms and Data Structures 2

This module provides the student with the knowledge and skills to analyse, design, develop, test and debug applications in C++ using data structures and algorithms, and to use some of the more powerful features of C++,

Module Code

OOSW H3002

ECTS Credits

10

*Curricular information is subject to change

Classes

Virtual functions, polymorphism, abstract classes.

Templates

Template functions, template classes, container classes and iterators, Standard Template Library.

Basic Data Structures

Queues, trees, heaps, priority queues, graphs.

Analysis of Algorithms

Program costs: time and space, worst case and average case analysis, asymptotic and "big O" notation, polynomial and exponential growth.

Algorithms

Algorithm design strategies: top down design, divide and conquer, recursion, breadth and depth first search text indexing & processing, graphing, advanced sorting & searching techniques, advanced pattern matching.

Graph Algorithms

Introduction to discrete optimisation algorithms: dynamic programming, greedy algorithms, shortest path problems, spanning tree problems, depth-first and breadth-first search algorithms, topological sorting, connected components, matrix algorithms.

Search Trees

AVL trees, red-black trees, B+ trees

Cryptography

Simple encryption algorithms.

Secure Coding

Common vulnerabilities, pointer subterfuge, integral security, mitigation strategies.

Parallel and Distributed Algorithms

Models of parallel computation, load balancing, synchronization mechanisms, resource allocation.

Module Content & Assessment
Assessment Breakdown %
Other Assessment(s)100