England

Please tell us where you live so that we can provide you with the most relevant information as you use this website.
If you are at a BFPO address please choose the country or region in which you would ordinarily be resident.
Accessibility statement
An image to illustrate Algorithms, data structures and computability module
This module aims to help you become a computational problem solver. You’ll learn techniques to solve computational problems efficiently and apply those techniques using Python. You’ll also learn about the limitations of computing: which problems can’t be solved algorithmically or for which no efficient solutions are known. This module is suitable if – whatever your field – you need to design or implement an efficient algorithm or to understand both the power and the limitations of computing. Though the focus is on the underlying ideas, you’ll also work with some mathematical concepts and notation.
This module has been awarded a quality mark by:
Royal Statistical Society Quality Mark logo
You’ll learn to state a problem precisely so that it can be solved with a computer. In other words, you’ll learn to express the problem in a way which allows you to write an algorithm for solving it. However, not all algorithms are equally good solutions. For that reason, you’ll also learn how to analyse the speed and efficiency of algorithms and establish whether an algorithm does what it is supposed to do. Finally, you’ll delve into the very foundations of computing. You’ll learn which problems cannot be solved with an algorithm. You’ll also learn the limits on the speed with which algorithms can solve many important practical problems.
The module comprises three parts, each ending with an assessment task:
Part 1
In the first part, you’ll learn basic data structures for organising data, like lists, stacks, queues, dictionaries, and sets. You’ll also learn how to analyse the complexity of an algorithm and how to measure its runtime.
Part 2
The second part covers two non-linear data structures: trees and graphs. The former can represent hierarchical data, and the latter can model social, transport, and other kinds of networks. The main focus of the second part is algorithmic techniques like search (brute-force, breadth-first, and depth-first), divide and conquer, recursion, and greedy algorithms. These are general-purpose techniques for solving a wide range of problems.
Part 3
In the third part, you’ll further develop your understanding of graphs and algorithmic techniques (backtracking, dynamic programming). You’ll also learn about the limitations of computational problem solving (non-computability and the P ≠ NP conjecture).
This module emphasises the value of computational thinking skills for solving a wide variety of real-world problems. Additionally, studying computing concepts is closely integrated with professional skills, such as testing and documenting Python programs, as well as using Jupyter notebooks.
If you’re aiming to become a programmer or system builder, this module is ideal as it covers topics and skills that many leading employers in IT and computing value highly, and check in technical interviews.
This module has been awarded a quality mark by the Royal Statistical Society, providing reassurance that the teaching, learning and assessment within this module is of high quality and meets the needs of students and employers.
Royal Statistical Society Quality Mark logo
You’ll get help and support from an assigned tutor throughout your module.
They’ll help by:
Online tutorials run throughout the module. While they’re not compulsory, we strongly encourage you to participate. Where possible, we’ll make recordings available.
Course work includes:
You’ll have access to a module website, which includes:
Additionally, the website includes:
You can work through the module materials online, on the Open Computing Lab (which requires internet access), or offline, on your computer (which requires installing the provided M269 software).
You can study this module on its own or use the credits you gain towards an Open University qualification.
M269 is a compulsory module in our:
M269 is an option module in our:
Algorithms, data structures and computability (M269) starts once a year – in October.
It will next start in October 2026.
We expect it to start for the last time in October 2028.
As a student of The Open University, you should be aware of the content of the academic regulations, which are available on our Student Policies and Regulations website.
You must have passed one of the following modules:
You need:
Are you ready for M269?
The OU strives to make all aspects of study accessible to everyone, and this Accessibility Statement outlines what studying M269 involves. You should use this information to inform your study preparations and any discussions with us about how we can meet your needs.
To find out more about what kind of support and adjustments might be available, contact us or visit our Disability support website.
StartEndRegister byEngland fee
No current presentation
Studying with The Open University can boost your employability. OU courses are recognised and respected by employers for their excellence and the commitment they take to complete. They also value the skills that students learn and can apply in the workplace.
Over 30,000 employers have used the OU to develop staff so far. If the module you’ve chosen is geared towards your job or developing your career, you could approach your employer to see if they will sponsor you by paying some or all of the fees.
You can pay part or all of your tuition fees upfront with a debit or credit card when you register for each module.
We accept American Express, Mastercard, Visa and Visa Electron.
Please note: your permanent address/domicile will affect your fee status and, therefore, the fees you are charged and any financial support available to you. The fee information provided here is valid for modules starting before 31 July 2026. Fees typically increase annually. For further information about the University's fee policy, visit our Fee Rules.
This module will next start in the 2026/27 academic year and will open for registration on the 25th of March.
This module will next start in the 2026/27 academic year and will open for registration on the 25th of March.
Level info