Coronavirus (Covid-19) Information

Module ICE-4201:
Data Structure AlgorithmTheory

Module Facts

Run by School of Computer Science and Electronic Engineering

20 Credits or 10 ECTS Credits

Semester 1

Organiser: Dr Ik Soo Lim

Overall aims and purpose

This module aims to introduce concepts of fundamental data structures and algorithms. It will also introduce methods to analyse algorithms for complexity both in time and space, and the required mathematics.

Course content

Indicative content includes:

  • Data structures and abstract data types; arrays, linked-lists, stacks, queues, sets and binary search trees.
  • Algorithms: sorting, insertion, deletion, searching, iterative and recursive algorithms.
  • Mathematics: powers, exponentials, logarithms, series summations, recurrences, sets and Venn diagrams.
  • Efficiency measures for time and space: rates of growth, asymptotic behaviour, and big-O notation.

Assessment Criteria


Equivalent to 50%. Uses key areas of theory or knowledge to meet the Learning Outcomes of the module. Is able to formulate an appropriate solution to accurately solve tasks and questions. Can identify individual aspects, but lacks an awareness of links between them and the wider contexts. Outputs can be understood, but lack structure and/or coherence.


Equivalent to the range 60%-69%. Is able to analyse a task or problem to decide which aspects of theory and knowledge to apply. Solutions are of a workable quality, demonstrating understanding of underlying principles. Major themes can be linked appropriately but may not be able to extend this to individual aspects. Outputs are readily understood, with an appropriate structure but may lack sophistication.


Equivalent to the range 70%+. Assemble critically evaluated, relevent areas of knowledge and theory to constuct professional-level solutions to tasks and questions presented. Is able to cross-link themes and aspects to draw considered conclusions. Presents outputs in a cohesive, accurate, and efficient manner.

Learning outcomes

  1. Describe and utilise, in mathematical terms, lists, sets, matrices and graphs.

  2. Describe the concepts of fundamental data structures and algorithms.

  3. Evaluate algorithms, in terms of efficiency, using complexity theory.

Assessment Methods

Type Name Description Weight
Examination 60
Assignment 30
Maths Problems 10

Teaching and Learning Strategy


Interactions via questions-and-answers.

Individual Project

Experiments of library code on a selection of data structures and algorithms.

Private study

Tutor-directed private study, including revision.


Transferable skills

  • Numeracy - Proficiency in using numbers at appropriate levels of accuracy
  • Computer Literacy - Proficiency in using a varied range of computer software
  • Self-Management - Able to work unsupervised in an efficient, punctual and structured manner. To examine the outcomes of tasks and events, and judge levels of quality and importance
  • Exploring - Able to investigate, research and consider alternatives
  • Information retrieval - Able to access different and multiple sources of information
  • Critical analysis & Problem Solving - Able to deconstruct and analyse problems or complex situations. To find solutions to problems through analyses and exploration of all possibilities using appropriate methods, rescources and creativity.
  • Argument - Able to put forward, debate and justify an opinion or a course of action, with an individual or in a wider group setting
  • Self-awareness & Reflectivity - Having an awareness of your own strengths, weaknesses, aims and objectives. Able to regularly review, evaluate and reflect upon the performance of yourself and others

Subject specific skills

  • Apply an understanding and appreciation of continuous improvement techniques
  • Solve problems logically and systematically;
  • Analyse and display data using appropriate methods and mathematical techniques;
  • Knowledge and understanding of facts, concepts, principles & theories
  • Problem solving strategies
  • Knowledge and understanding of mathematical principles


Talis Reading list

Reading list

Main Course text: Java collections: an introduction to abstract data types, data structures, and algorithms - David A. Watt, Deryck F. Brown c2001

Highly Recommended: Introduction to algorithms - Thomas H. Cormen 2010, c2009

Courses including this module

Optional in courses: