The aim of this module is to help you become a computational thinker. Formulating a problem for efficient solution by computers is an extremely important skill. In this module, you will hone this skill: exploring a range of computing concepts; applying these to a variety of problems; and, in the process, becoming familiar with the popular Python programming language. This is the module for you if you are specialising in computing or if – whatever your field – you need to understand both the power and the limitations of computing. Though the focus is on the underlying ideas, you will also need to work with some mathematical concepts and notation.
To see a fee on this page, you should use the StudentHome 'alias' system.
07 Oct 2017
Registration closes 14/09/17 (places subject to availability)Click to register
This module is expected to start for the last time in October 2020.
What you will study
You will learn to take a problem and state it precisely in order that it can be solved with a computer. In other words, you will 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 will 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 will delve into the very foundations of computing. You’ll learn which problems cannot be solved with an algorithm. You will also learn what the limits are on the speed with which algorithms can solve many important practical problems.
Throughout the module you’ll encounter activities and visualisations that bring to life the concepts that are at the heart of this module. You will gain an understanding of the basic principles behind the answers to a wide range of questions including:
- How could algorithmic knowledge of sorting help a hospital during the devastation following a natural disaster such as the Haiti earthquake?
- How can companies like Amazon and Facebook sort petabyte data sets within seconds, for further analysis?
- How can a bank locate a single customer record within a few milliseconds, from within a database of many millions of records?
- How can a forensic laboratory locate a distinct sequence of base pairs speedily within a DNA molecule containing over three billion such pairs?
- How can the millions of operations involved in the production process for an advanced aircraft be scheduled to give maximum efficiency and minimum cost and time span?
- How can a computer be programmed to beat human chess players of grandmaster standard?
- In a telecommunications network, how can the data packets being transferred from sender to destination be routed through a series of hundreds of switches to minimise delay and network congestion, as the patterns of network activity change constantly?
- Can a compiler tell you whether your program will ever finish running?
You will learn
The module comprises three parts.
Firstly, you are introduced to the concept of computational thinking. In particular, you will consider the question ’What is it to compute?’. A number of key concepts are defined – such as computational problem, algorithm and abstraction – and their application is illustrated. You will be given examples of computational problems and their solutions in a wide variety of fields, ranging from physics and biology to economics and sports. You will also start using the Python programming language.
Secondly, you’re introduced to tools and techniques for:
- creating abstractions that represent a problem
- devising algorithms that solve a problem efficiently.
A range of standard data structures and algorithms for sorting, searching and optimisation will be covered and illustrated with practical examples. You will also encounter notions such as Big-O notation, induction and recursion.
The first two parts include introductions to sets, functions, logic and proofs. In the third part, you will further develop your understanding of these concepts. In particular, some of the ideas – that you will have been introduced to informally – will now be presented using formal mathematical notation. This will be in the context of concrete applications, such as databases. At this point, you’ll also learn about the limitations of computational problem solving (non-computability and computational complexity) and recent developments in computing, such as quantum computing.
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 the use of the Python programming language, awareness of SQL data manipulation, and information literacy (in particular, searching for information and writing a brief report).
If you are aiming to become a programmer or system builder, this module is ideal as it covers the skills and knowledge that many leading employers in IT and computing value highly, including:
- algorithms: breadth-first, depth-first, greedy, dynamic programming
- sorting and searching
- big-O notation for characterising the efficiency of an algorithm
- trees: know how to construct, traverse and manipulate tree structures
- graphs: how to represent and search graphs
- hash tables: arguably the single most important data structure known to mankind
- other data structures and knowledge of NP-complete problems.
You need to have a good knowledge of computing; an understanding and experience of programming; and some knowledge of mathematics – check if you’re ready for M269, with our self-assessed quiz.
You’d normally be prepared by completing OU level 1 and 2 study as part of one of our computing and IT courses. For this module, we recommend that you’ve passed Introduction to computing and technology 1 (TM111) and Introduction to computing and information technology 2 (TM112), or their predecessor TU100; and Object-oriented Java programming (M250), or its predecessor M255. Discovering mathematics (MU123) would equip you with the required mathematical knowledge.
If you’re not sure you’re ready, talk to an adviser.
M269 is an optional module in our:
It can also count towards most of our other degrees at bachelors level, where it is equally appropriate to a BA or BSc. We advise you to refer to the relevant qualification descriptions for information on the circumstances in which this module can count towards these qualifications because from time to time the structure and requirements may change.
Sometimes you will not be able to count a module towards a qualification if you have already taken another module with similar content. To check any excluded combinations relating to this module, visit our excluded combination finder or check with an adviser before registering.
If you have a disability
Written transcripts of any audio components and Adobe Portable Document Format (PDF) versions of printed material are available. Some Adobe PDF components may not be available or fully accessible using a screen reader (mathematical and programming materials may be particularly difficult to read in this way). Written descriptions of algorithm visualisations will be made available, but may not fully express the information brought across with the visualisations. Advice on a screen reader compatible Python editor will be provided on request. Other alternative formats of the study materials may be available in the future.
If you have particular study requirements please tell us as soon as possible, as some of our support services may take several weeks to arrange. Find out more about our services for disabled students..
The module uses both online and printed material in combination with a book. Electronic copies of printed materials, other documents, software, programming activities, and online forums will be available via the module website.
You will need
Some of the web activities in this module use the HTML5 system. In order to display them you will need Internet Explorer 9 (or later), the latest version of Firefox or Chrome or another modern HTML5 compliant browser. If you have a computer with the Windows XP operating system, you will need to install Firefox or Chrome or another modern HTML5 compliant browser for these activities, as you cannot use Internet Explorer 8.
You probably won't be able to use a netbook, tablet or other mobile computing device for some of the software.
You will need a device with internet access to study this module as a web browser is used to access learning materials and activities. Any other computer-based activities you will need to carry out, such as word processing, using spreadsheets, taking part in online forums, and submitting files to the university for assessment, are specified in the module materials. If any additional software is needed for these tasks it will either be provided or is freely available. You may need administrative privileges to install the software.
Suitable devices are:
- A Windows desktop or laptop computer running Windows 7 or later operating system
- A Macintosh desktop or laptop computer running OS X 10.8 or later operating system.
Some software will not run on Linux, iOS or Android devices.
A netbook, tablet, smartphone or Linux computer that supports one of the browsers listed below may be suitable. However, these devices may not be suitable for some activities. If you intend to use one of these devices please ensure you have access to a suitable desktop or laptop device that uses the Windows or OS X operating system in case you are unable to carry out all activities on your mobile device. You will need a broadband internet connection to complete this module. Better video performance is available with higher connection speeds.
Recent versions of the following browsers for carrying out web-based activities:
Or Internet Explorer 9 and above.
Using a browser upgraded to the latest version will maximise security when accessing the internet.
Using company or library computers may prevent you accessing some internet materials or installing additional software.
To be able to talk and listen in our online discussions you will need both a microphone and speakers/headphones.
Devices with small screens may make it difficult to view the material provided and carry out the activities. However, a device that has a resolution of at least 1024 pixels horizontally and also at least 768 pixels vertically should be adequate.
See our Skills for OU study website for further information about computing skills for study and educational deals for buying Microsoft Office software.
Teaching and assessment
Support from your tutor
You will have a tutor who will help you with the study material and mark and comment on your written work, and who you can ask for advice and guidance. Your tutor will support you by email and telephone, and the tutorials offered will be a blend of online and face-to-face tutor group meetings, the balance of which may be subject to tutor/regional variation. Additional support may be found through the module discussion forums, with which your peers, tutor and forum moderator can interact.
Contact us if you want to know more about study with The Open University before you register.
The assessment details for this module can be found in the facts box above.
You must use the online eTMA system to submit your tutor-marked assignments (TMAs).
Students also studied
Students who studied this module also studied at some time:
The details given here are for the module that starts in October 2017. It starts once a year – in October.
How to register
To register a place on this module return to the top of the page and use the Click to register button.
As a student of The Open University, you should be aware of the content of the academic regulations which are available on our Essential Documents