Skip to main content Skip to navigation

WM189-15 Data Structures and Algorithms

Department
WMG
Level
Undergraduate Level 1
Module leader
Ejike Ezeh
Credit value
15
Module duration
12 weeks
Assessment
100% coursework
Study locations
  • University of Warwick main campus, Coventry Primary
  • Distance or Online Delivery

Introductory description

Efficient algorithms and data management have contributed to the advances in digital solutions design and implementation. However, practitioners often face resource constraints related to computing speed and memory when designing digital artefacts. It is therefore essential to acquire the knowledge and skills necessary to apply the principles of efficient data structure and algorithm design to better maximise the available computing resources. That is what this module intends to achieve.
This module contributes to AHEP 4 learning outcomes for Partial CEng and BCS accreditation criteria for Full CITP as referenced in the learning outcomes.

Module web page

Module aims

This module aims to enhance students’ competency as efficient programmers through a systematic understanding and application of programming concepts such as arrays, linked lists, search, and sorting algorithms. By integrating theoretical principles with practical implementations, students will develop the necessary skills to design, analyse, and implement efficient data structures and algorithms to solve real-world problems. Additionally, the module will empower students with the tools required to pursue further research within the domain of computer science.

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 and advanced data structures;
Algorithmic paradigms and design; Recursive, brute force, divide & conquer, dynamic programming, greedy algorithms, backtracking;
Searching algorithms,
Sorting algorithms,
Graph data structures.
Space and Time complexity (O-notation).

Learning outcomes

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

  • Describe the fundamental data structures and discuss their trade-offs in different contexts [AHEP:4-2.1.1, C1].
  • Analyse a range of algorithms by evaluating their complexity [AHEP:4-2.2.2, C1, C2].
  • Evaluate common algorithm design techniques based on their strengths and limitations, and correctly apply them to solve real-world problems [AHEP:4-2.1.1, 2.2.1, 2.2.2, C3, C4, C13.]
  • Implement efficient data structures and algorithms to solve complex computational problems [AHEP:4-2.1.1, 2.1.2, 2.2.1, C2, C3, C5].

Indicative reading list

Introduction to Algorithms by Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein;
Algorithm Design by J. Kleinberg and E. Tardos; Algorithms by S. Dasgupta, C.H. Papadimitriou and U.V. Vazirani.

Subject specific skills

Analyse a business problem in order to specify an appropriate digital and technology solution (S3).
Initiate, design, code, test and debug a software component for a digital and technology solution (S4).
Use appropriate analysis methods, approaches and techniques in software engineering projects to deliver an outcome that meets requirements (S18).

Transferable skills

Problem Solving: Use rational and logical reasoning to deduce appropriate and well-reasoned conclusions. Retain an open mind, optimistic of finding solutions, thinking laterally and creatively to look beyond the obvious. Knows how to learn from failure.
Written communication: Present arguments, knowledge, and ideas, in a range of formats.
Active listening: questioning, reflecting, summarising.
Critical Thinking: Recognise patterns, themes, and key messages from sometimes confused and incomplete data. Make informed decisions on the value of a range of sources allowing an evidence-based conclusion based on this analysis.
Professionalism: Prepared to operate autonomously. Aware of how to be efficient and resilient. Self-motivated, setting and achieving goals, prioritising tasks.

Study time

Type Required Optional
Lectures 15 sessions of 1 hour (10%)
Seminars 5 sessions of 1 hour (3%)
Supervised practical classes 10 sessions of 1 hour (7%)
Online learning (scheduled sessions) (0%) 1 session of 1 hour
Online learning (independent) 20 sessions of 1 hour (13%)
Private study 40 hours (27%)
Assessment 60 hours (40%)
Total 150 hours

Private study description

Private study and independent:
-pre-module preparation and quizes.

  • self-guided study.
    -in-module assignment.

Costs

No further costs have been identified for this module.

You must pass all assessment components to pass the module.

Assessment group A
Weighting Study time Eligible for self-certification
In-Module Assignment 30% 18 hours Yes (extension)

The in-module assignment assesses student's based on LO1 and LO2. Students will be asked to answer a variety of programming challenges.

Post-module Assignment 70% 42 hours Yes (extension)

The PMA assesses students based on LO2, LO3 and LO4. A written report of a substantial piece of programming problem with code implementation will be submitted.

Feedback on assessment

-Verbal feedback during sessions, seminars and tutorials.
-Formative feedback given for individual contributions.
-Written feedback for assessed work.

Courses

This module is Core for:

  • Year 2 of UWMS-H65E Undergraduate Digital and Technology Solutions (Cyber)
  • Year 2 of DWMS-H655 Undergraduate Digital and Technology Solutions (Cyber) (Degree Apprenticeship)
  • Year 2 of UWMS-H65B Undergraduate Digital and Technology Solutions (Data Analytics)
  • Year 2 of DWMS-H652 Undergraduate Digital and Technology Solutions (Data Analytics) (Degree Apprenticeship)
  • Year 2 of UWMS-H65C Undergraduate Digital and Technology Solutions (Network Engineering)
  • Year 2 of DWMS-H653 Undergraduate Digital and Technology Solutions (Network Engineering) (Degree Apprenticeship)
  • Year 2 of UWMS-H65D Undergraduate Digital and Technology Solutions (Software Engineering)
  • Year 2 of DWMS-H654 Undergraduate Digital and Technology Solutions (Software Engineering) (Degree Apprenticeship)