Computing

Data Structures & Algorithms

Module code: G5117
Level 4
15 credits in spring semester
Teaching method: Lecture, Laboratory
Assessment modes: Unseen examination, Coursework

This module introduces you to data structures and algorithms for computer scientists.

You’ll learn about a number of key data structures, including:

  • static arrays
  • dynamic arrays
  • linked lists
  • stacks
  • queues
  • various kinds of trees
  • hash maps
  • directed graphs
  • undirected graphs.

These are presented as implementations of appropriate interfaces.

You’ll also study fundamental computational problems, including the sorting problem and the shortest path problem in graphs. You’ll present solutions to them in the form of important algorithms, such as:

  • insertion
  • selection
  • merge sort
  • heap sort
  • Dijkstra’s algorithm
  • Bellman-Ford’s algorithm.

Algorithms will be presented in pseudocode, with a focus on their asymptotic efficiencies. You’ll also prove the correctness of some of these algorithms.

Module learning outcomes

  • Evidence knowledge of a variety of fundamental data structures in terms of the operations they support and their asymptotic efficiencies
  • Evidence understanding of a variety of important algorithms in terms of their execution steps, asymptotic efficiency, and correctness
  • Evidence ability to efficiently solve basic computational problems using the data structures and algorithms presented in class.