You are viewing information for England.  Change country.

Algorithms, data structures and computability

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.

Modules count towards OU qualifications

OU qualifications are modular in structure; the credits from this undergraduate module could count towards a certificate of higher education, diploma of higher education, foundation degree or honours degree.

Browse qualifications in related subjects

Module

Module code
M269
Credits

Credits

  • Credits measure the student workload required for the successful completion of a module or qualification.
  • One credit represents about 10 hours of study over the duration of the course.
  • You are awarded credits after you have successfully completed a module.
  • For example, if you study a 60-credit module and successfully pass it, you will be awarded 60 credits.
30
Study level

Across the UK, there are two parallel frameworks for higher education qualifications, the Framework for Higher Education Qualifications in England, Northern Ireland and Wales (FHEQ) and the Scottish Credit and Qualifications Framework (SCQF). These define a hierarchy of levels and describe the achievement expected at each level. The information provided shows how OU module levels correspond to these frameworks.

OU SCQF FHEQ
2 9 5
Study method
Distance Learning
Module cost
See Module registration
Entry requirements
See Am I ready?

Student Reviews

Quite a challenging module which focuses very much on the theoretical side of algorithms and computing. You will do some...
Read more

I took this as a stand alone computing course as part of my Open degree, sandwiched between a couple of...
Read more

Request your prospectus

Explore our subjects and courses

Request your copy now

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.

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 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.

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.

Assessment

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).

Future availability

Algorithms, data structures and computability starts once a year – in October. This page describes the module that will start in October 2018. We expect it to start for the last time in October 2020.

Regulations

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 website.

    Course work includes:

    2 Tutor-marked assignments (TMAs)
    7 Interactive computer-marked assignments (iCMAs)
    Examination
    No residential school

    Course satisfaction survey

    See the satisfaction survey results for this course.


    Entry requirements

    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.

    Register

    Start End England fee Register
    06 Oct 2018 Jun 2019 £1464.00

    Registration closes 13/09/18 (places subject to availability)

    Register
    This module is expected to start for the last time in October 2020.

    Additional Costs

    Study costs

    There may be extra costs on top of the tuition fee, such as a laptop, travel to tutorials, set books and internet access.

    If you're on a low income you might be eligible for help with some of these costs after your module has started.

    Ways to pay for this module

    Open University Student Budget Account

    The Open University Student Budget Accounts Ltd (OUSBA) offers a convenient 'pay as you go' option to pay your OU fees, which is a secure, quick and easy way to pay. Please note that The Open University works exclusively with OUSBA and is not able to offer you credit facilities from any other provider. All credit is subject to status and proof that you can afford the repayments.

    You pay the OU through OUSBA in one of the following ways:

    • Register now, pay later – OUSBA pays your module fee direct to the OU. You then repay OUSBA interest-free and in full just before your module starts. 0% APR representative. This option could give you the extra time you may need to secure the funding to repay OUSBA.
    • Pay by instalments – OUSBA calculates your monthly fee and number of instalments based on the cost of the module you are studying. APR 5.1% representative.

    Joint loan applications

    If you feel you would be unable to obtain an OUSBA loan on your own due to credit history or affordability issues, OUSBA offers the option to apply for a joint loan application with a third party. For example, your husband, wife, partner, parent, sibling or friend. In such cases, OUSBA will be required to carry out additional affordability checks separately and/or collectively for both joint applicants who will be jointly and severally liable for loan repayments.

    As additional affordability checks are required when processing joint loan applications, unfortunately, an instant decision cannot be given. On average the processing time for a joint loan application is five working days from receipt of the required documentation.

    Read more about Open University Student Budget Accounts (OUSBA).  

    Employer sponsorship

    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.

    More than one in ten OU students are sponsored by their employer, and 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. 

    • Your employer just needs to complete a simple form to confirm how much they will be paying and we will invoice them.
    • You won’t need to get your employer to complete the form until after you’ve chosen your module.  

    Credit/debit card

    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, Maestro (UK only), Mastercard, Visa/Delta and Visa Electron. 

    Mixed payments

    We know that sometimes you may want to combine payment options. For example, you may wish to pay part of your tuition fee with a debit card and pay the remainder in instalments through an Open University Student Budget Account (OUSBA).


    For more information about combining payment options, speak to an adviser or book a call back at a time convenient to you.


    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 fees and funding information provided here is valid for modules starting before 31 July 2019. Fees normally increase annually in line with inflation and the University's strategic approach to fees. 

    This information was provided on 15/08/2018.

    What's included

    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.

    Computing requirements

    A computing device with a browser and broadband internet access is required for this module.  Any modern browser will be suitable for most computer activities. Functionality may be limited on mobile devices.

    Any additional software will be provided, or is generally freely available. However, some activities may have more specific requirements. For this reason, you will need to be able to install and run additional software on a device that meets the requirements below.

    A desktop or laptop computer with either:

    • Windows 7 or higher
    • Mac OS 10.7 or higher

    The screen of the device must have a resolution of at least 1024 pixels horizontally and 768 pixels vertically.

    To participate in our online-discussion area you will need both a microphone and speakers/headphones. 

    Our Skills for OU study website has further information including computing skills for study, computer security, acquiring a computer and Microsoft software offers for students. 

    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 Overcoming barriers to study if you have a disability or health condition website.