Coronavirus (Covid-19) Information

Module ICE-2201:
Data Structures & Algorithms

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

To introduce fundamental data structures. To introduce fundamental algorithms. To introduce time and space complexity of algorithms. To introduce computer-implementations of data structures and algorithms.

Course content

• Data structures and abstract data types; arrays, linked-lists, stacks, queues, sets, maps, and binary search trees. • Algorithms: sorting, insertion, deletion, searching, traversal, iterative and recursive algorithms. • Efficiency measures for time and space: rates of growth; asymptotic behaviour, big-O notation. Algorithm complexity classes. Constraints and Trade offs (time vs. space).

Assessment Criteria







Learning outcomes

  1. Use complexity analysis to assess the efficiency of algorithms.

  2. Show an understanding of the design and implementation of fundamental data structures and algorithms.

Assessment Methods

Type Name Description Weight
EXAM Examination 60
COURSEWORK Assignment 1 20
COURSEWORK Assignment 2 20

Teaching and Learning Strategy


Interactions via questions-and-answers.

Work-based learning

ASSESSED assignments based on computer programming.

Private study 56

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
  • Evaluate systems in terms of quality and trade-offs


Resource implications for students

Hard copies of the main course text are available at the library. On-line access to the highly recommended book is available.

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

Recommended: Probability and Computing 2nd ed - Michael Mitzenmacher and Eli Upfal, Cambridge University Press, 2016

Courses including this module