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++,
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 |