|Owning Department/School:||Department of Computer Science|
|Credits:||6 [equivalent to 12 CATS credits]|
|Notional Study Hours:||120|
|Level:||Intermediate (FHEQ level 5)|
|Assessment Detail:|| |
|Requisites:||Before taking this module you must ( take CM10227 AND take CM10228 ) OR take XX10190 OR take EE10134|
To build on the students' understanding of algorithms and data structures and how to apply them. To facilitate the empirical assessment of algorithmic differences.
On completion of this unit, students will be able to:
1. determine the complexity of a variety of algorithms
2. carry out basic comparative empirical assessments of implementations of alternative algorithms
3. choose the right algorithms and data structures for the task in hand
Use of IT (T/F, A), Problem Solving (T/F, A).
Complexity. Best, worst and average cases; time, space and other measures; big Ο, big Θ and big Ω; analysis of algorithms like selectionsort, heapsort, integer multiplication, recursive algorithms and others.
Data structures. Lists, stacks, queues, trees, hash tables, graphs, etc.
Algorithms and data structures in practice. The effect of the "hidden constant", and crossover points between algorithms, e.g., when to prefer bubblesort over quicksort; polyalgorithms; the gap between algorithms and implementations; how data structures affect the complexity of an implementation; computationally hard problems in everyday life.
CM20254 is Compulsory on the following programmes:Department of Computer Science
CM20254 is Optional on the following programmes:Department of Computer Science