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 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.
Register
Warning
To see a fee on this page, you should use the StudentHome 'alias' system.
Start |
End |
Fee
|
Register |
05 Oct 2024 |
Jun 2025 |
-
| Registration closes 05/09/24 (places subject to availability) Click to register
|
This module is expected to start for the last time in October 2028.
What you will study
You’ll learn to take a problem and state it precisely in order 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 really 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 what the limits are on the speed with which algorithms can solve many important practical problems.
The module comprises three parts, each ending with an assignment:
Part 1
In the first part, you’ll learn about the 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 are 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).
Vocational relevance
This module emphasises how valuable computational thinking skills are for solving a wide variety of real-world problems. Additionally, the study of computing concepts is tightly integrated with professional skills, such as testing and documenting Python programs and using Jupyter notebooks, and information literacy (in particular, searching for information and writing a brief report).
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.
Entry
To enrol on M269 to start in October, you must have:
You need an understanding or experience of computing; an understanding and experience of programming in Python; and some knowledge of mathematics – check if you’re ready for M269, with our self-assessed quiz.
If you’re not sure you’re ready, talk to an adviser.
If you have a disability
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 pages.
Study materials
What's included
You’ll have access to a module website, which includes:
- a week-by-week study planner
- course-specific materials
- audio and video content
- assessment details, instructions and guidance
- online tutorial access
- access to student and tutor group forums.
The module is delivered entirely using Jupyter notebooks which includes the module text and the code for the examples and exercises. The material is also available in PDF and HTML format and the code is also available in separate Python files.
Computing requirements
You'll need broadband internet access and a desktop or laptop computer with an up-to-date version of Windows (10 or 11) or macOS Ventura or higher.
Additional requirements for this module:
- 5GB free disk space
- Chrome, Firefox or Safari web browser (Microsoft Edge is not compatible with Jupyter).
To join in spoken conversations in tutorials we recommend a wired headset (headphones/earphones with a built-in microphone).
Our module websites comply with web standards and any modern browser is suitable for most activities.
Our OU Study mobile App will operate on all current, supported, versions of Android and iOS. It's not available on Kindle.
It's also possible to access some module materials on a mobile phone, tablet device or Chromebook, however, as you may be asked to install additional software or use certain applications, you'll also require a desktop or laptop as described above.
Teaching and assessment
Support from your tutor
Throughout your module studies, you’ll get help and support from your assigned module tutor. They’ll help you by:
- Marking your assignments (TMAs) and providing detailed feedback for you to improve.
- Guiding you to additional learning resources.
- Providing individual guidance, whether that’s for general study skills or specific module content.
- Facilitating online discussions between your fellow students, in the dedicated module and tutor group forums.
Module tutors also run tutorials throughout the module. Where possible, recordings of online tutorials will be made available to students. While these tutorials won’t be compulsory for you to complete the module, you’re strongly encouraged to take part.
Assessment
The assessment details for this module can be found in the facts box.
Students also studied
Students who studied this module also studied at some time:
Future availability
Algorithms, data structures and computability (M269) starts once a year – in October.
This page describes the module that will start in October 2024.
We expect it to start for the last time in October 2028.
How to register
To register a place on this module return to the top of the page and use the Click to register button.
Regulations
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.