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
10 weeks
Assessment
40% coursework, 60% 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, merge sort 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 Theory:

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

Learning outcomes

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

  • Describe the importance of various algorithms and data structures in cyber security [CITP 2.1.1, 2.1.2]
  • Evaluate the correctness and efficiency of algorithms in different programming contexts [CITP 2.1.10, 2.1.11, 2.2.2]
  • Appraise the behaviour of existing algorithms [CITP 2.1.11, 2.2.2]
  • Implementing algorithms or modify existing ones to solve unseen problems [CITP 2.1.12, 2.2.1, 2.2.4]

Indicative reading list

Reading lists can be found in Talis

Specific reading list for the module

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 12 sessions of 1 hour (8%)
Supervised practical classes 12 sessions of 1 hour (8%)
Online learning (independent) 12 sessions of 1 hour (8%)
Private study 54 hours (36%)
Assessment 60 hours (40%)
Total 150 hours

Private study description

Implementing the algorithms taught in lectures, gaining an in-depth understanding of data structures, and practicing programming tasks.

Costs

No further costs have been identified for this module.

You must pass all assessment components to pass the module.

Assessment group D1
Weighting Study time Eligible for self-certification
Assessment component
Portfolio Report 40% 24 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 60% 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, Students will receive individual marks via Tabula, Cohort Feedback will be provided.
For portfolio, written feedback would be provided to the students.

Past exam papers for WM180

Courses

This module is Core for:

  • UWMA-H651 Undergraduate Cyber Security
    • Year 1 of H651 Cyber Security
    • Year 1 of H651 Cyber Security
    • Year 1 of H651 Cyber Security