This module provides the student with the knowledge and skills to analyse, design, securely develop, test and debug applications written in C++ using pointers, data structures and algorithms.
C++ Memory Management
Pointers, new/delete, strings, arrays and pointer arithmetic, constructors & destructors.
Data Structures
Queues, trees, heaps, priority queues, graphs.
Algorithms
Algorithm design strategies: top down design, divide and conquer, recursion, text indexing & processing, specialised pattern matching, specialised sorting & searching techniques.
Graph Algorithms
Introduction to discrete optimisation algorithms: greedy algorithms, shortest path problems, spanning tree problems, depth-first and breadth-first graph search algorithms, matrix algorithms.
Search Trees
Depth-first and breadth-first tree search, AVL trees, red-black trees, B and B+ trees
Cryptography
Simple encryption algorithms.
Secure Coding
Common vulnerabilities, pointer subterfuge, integral security, mitigation strategies.
Analysis of Algorithms
Program costs: time and space, worst case and average case analysis, asymptotic and "big O" notation, polynomial and exponential growth.
Module Content & Assessment | |
---|---|
Assessment Breakdown | % |
Other Assessment(s) | 100 |