Module overview
Aims and Objectives
Learning Outcomes
Knowledge and Understanding
Having successfully completed this module, you will be able to demonstrate knowledge and understanding of:
- the fundamentals of algorithms and data structures, including time and space complexity analysis; and
- the basic principles of writing software to process biomedical data using appropriate algorithms and data structures.
Subject Specific Practical Skills
Having successfully completed this module you will be able to:
- empirically evaluate the performance of algorithms for a given dataset.
- implement given data structures and algorithms.
- design data structures and algorithms appropriate to a particular biomedical engineering problem.
Subject Specific Intellectual and Research Skills
Having successfully completed this module you will be able to:
- evaluate the complexity of algorithms.
- select the most appropriate algorithmic strategies for a particular problem
Syllabus
- Abstract Data Types (ADTs) including collection, dictionary, lists, queues, stacks and trees.
- Arrays: single, multi-dimensional and sparse.
oLinear and binary search.
- Graphs.
oCharacteristics: (un)directed, (a)cyclic, (un)connected, and (un)weighted.
oSearching algorithms: Breadth-first, shortest-path, depth-first, minimal spanning tree.
- Sorting Algorithms: Selection, insertion; quicksort, merge, and fast-sorting.
- Algorithmic analysis framework.
oAverage, best, and worst-case performance.
oEmpirical and relative (order of growth) measurements: Constant, logarithmic, linear, log linear, quadratic, cubic, and exponential.
oInput size and primitive operations.
oTime and space efficiency.
- Asymptotic complexity analysis.
oBig O, little o, big Omega, and big theta.
oFoundational complexity/Efficiency classes.
- Tractability and intractability.
- Linear programming, dynamic programming and Heuristic approximations.
Learning and Teaching
Teaching and learning methods
In-person lectures and tutorials.
Computer labs.
Individual study.
Type | Hours |
---|---|
Lecture | 24 |
Assessment tasks | 24 |
Practical classes and workshops | 12 |
Wider reading or practice | 56 |
Preparation for scheduled sessions | 24 |
Revision | 10 |
Total study time | 150 |
Assessment
Summative
This is how we’ll formally assess what you have learned in this module.
Method | Percentage contribution |
---|---|
Examination | 70% |
Assessed Practicals | 30% |