Skip to main content Skip to navigation

WM180-15 Algorithms and Data Structures

Department
WMG
Level
Undergraduate Level 1
Module leader
Bharath Sadasivaiah
Credit value
15
Module duration
30 weeks
Assessment
30% coursework, 70% exam
Study location
University of Warwick main campus, Coventry

Introductory description

Algorithms are the fundamental building blocks of computer science – but how can we prove that an algorithm does what we want it to? How can we improve the efficiency of existing algorithms? This module will provide students with a comprehensive understanding of the fundamental principles and techniques in algorithm design and optimisation. Students will explore a wide range of topics, including sorting, searching and pathfinding algorithms, while evaluating their correctness and efficiency.

Module aims

This module enables students to analyse the fundamental principles underlying computer algorithms and the data structures which underlie them. Students will have a solid grasp of core algorithms, and will be able to design new algorithms (and modify existing ones) to solve unseen computational problems.

Outline syllabus

This is an indicative module outline only to give an indication of the sort of topics that may be covered. Actual sessions held may differ.

Basic algorithms:

  • Sorting algorithms: Bubble sort, insertion sort, selection sort, quicksort, mergesort and heapsort
  • Searching algorithms: Linear search, binary search, hash table lookup

Complexity analysis:

  • Big-O, big-Omega and big-Theta notation
  • Time complexity analysis
  • Space complexity analysis

Strategies for algorithm design:

  • Recursive programming
  • Divide and conquer
  • Dynamic programming and memoisation
  • Heuristics
  • Any other useful paradigms

Data structures:

  • Primitive data structures: Arrays, stacks and queues
  • Compound data structures: Hash tables, linked lists, binary search trees, heaps and priority queues
  • Advanced data structures: Red-black trees, 2-3-4 trees, binomial trees and binomial heaps

Graph algorithms:

  • Graph representations
  • Minimum spanning trees, Kruskall's and Prim's algorithms
  • Dijsktra's and A* algorithms
  • The max-flow min-cut theorem

Learning outcomes

By the end of the module, students should be able to:

  • Understand the importance of various algorithms and data structures in cyber security
  • Evaluate the correctness and efficiency of algorithms in different programming contexts
  • Identify and fix bugs in existing algorithms
  • Design new algorithms or modify existing ones to solve unseen problems

Indicative reading list

Talis Link: https://rl.talis.com/3/warwick/lists/E30C33F6-CFDD-86E5-852C-03F5A564BFF8.html
Cormen, T. H, Leiserson, C. E., Rivest, R. L and Stein, C., 2022. Introduction to Algorithms, 4th Edition. MIT Press.
Interview Cake. https://www.interviewcake.com
HackerRank. https://www.hackerrank.com/

View reading list on Talis Aspire

Subject specific skills

This module improves students' programming skills, giving them an understanding of the underlying algorithms and data structures. Students will also be able to reason about the efficiency of existing algorithms, recognising bugs in existing code as well as opportunities to improve the efficiency of algorithms.

Transferable skills

Logical reasoning, problem solving and effective communication of ideas (both written and verbal)

Study time

Type Required
Lectures 18 sessions of 1 hour (12%)
Supervised practical classes 18 sessions of 1 hour (12%)
Private study 54 hours (38%)
Assessment 54 hours (38%)
Total 144 hours

Private study description

Implementing the algorithms taught in lectures, understanding the data structures at an in-depth level and practicing programming interview questions

Costs

No further costs have been identified for this module.

You must pass all assessment components to pass the module.

Assessment group D
Weighting Study time Eligible for self-certification
Assessment component
Portfolio Report 30% 18 hours Yes (extension)

A portfolio report based around in-class work on scenarios and problem-sets which tests the student's ability to analyse and evaluate solutions. The conceptual questions will also assess their understanding of algorithm and data structure efficiency and optimisation.

Reassessment component is the same
Assessment component
End-of-module exam 70% 36 hours No

An open-book exam assessing students' understanding of the algorithms and data structures taught in the module.
The only notes the students may use are in class provided resources.

~Platforms - WAS


  • Online examination: No Answerbook required
Reassessment component is the same
Feedback on assessment

For the exam, a per-question breakdown of students' marks, together with any marker comments, may be given.
For portfolio, written feedback would be provided to the students.

Past exam papers for WM180

Courses

This module is Core for:

  • Year 1 of UWMA-H651 Undergraduate Cyber Security