In this lesson, we will be introduced to three computational thinking techniques: decomposition, abstraction, and algorithmic thinking. We will explore how these skills can be applied when solving a wide range of problems, both computer-based and in their everyday lives.

In this lesson, we will be developing flow charts. This lesson assumes that learners have already covered the flow chart lesson in the KS4 Programming unit, although this lesson can also be used to introduce the flow chart symbols if required.

In this lesson, we will be shown examples of tracing a Python program and a flow chart. Trace tables are great for walking through an algorithm and are often used to locate logic errors

In this lesson, we will be introduced to one of two searching algorithms we need to know about: linear search. We will go over the steps of carrying out a linear search, and perform a linear search in real life and with a sample of data.

In this lesson, we will be introduced to binary search: the second searching algorithm we need to know about. We will go over the steps of carrying out a binary search and perform a binary search with playing cards and with a sample of data.

In this lesson, we will compare the features of linear search and binary search and the suitability of each algorithm in different contexts. We will also interpret the code of both algorithms in Python, as well as analysing the efficiency of two implementations of the linear search algorithm.

In this lesson, we will learn the first sorting algorithm in this unit: bubble sort. We will discuss why and where sorting is used in real life, become familiar with performing a bubble sort on a set of data, and investigate the efficiency of bubble sort.

In this lesson, we will explore another sorting algorithm: insertion sort. Some exam boards do not require learners to know insertion sort, so do check the specification first. We will start by discussing how to sort objects in real life, which will help us to describe something akin to an insertion sort.

In this lesson, we will analyse and evaluate code for bubble sort and insertion sort in Python, as well as comparing different implementations of the bubble sort algorithm.

In this lesson, we will explore the final sorting algorithm in this unit: merge sort. We will start by considering how we might go about combining two groups of sorted items into one sorted group before being taken through the steps of one merge of a merge sort.

In this lesson, we will practise and cement our knowledge of what we they have learnt in the algorithms unit. The worksheets contain a range of questions on flow charts, searching algorithms, and sorting algorithms that will help prepare us for the summative assessment for the unit.