Algorithms underpin much of computer science, helping to solve problems, to describe processes, to map out the steps necessary to achieve a goal, and the extent to which a problem is actually solvable.
These resources support students to recognise the fundamental building blocks of algorithms: sequencing, selection and iteration, and understand how use abstraction, decomposition and other computational thinking techniques. They will learn to create flowcharts and to break problems down into relevant steps in the correct order; skills that can be transferred to almost any field. They give students the opportunity to work on problems which have real world applications including common sorting and searching algorithms.
Links and Resources
This resource contains a variety of activities and teacher resources to help students develop their problem solving skills, these are mostly through the use of unplugged activities which also encourage the development of skills associated with creating algorithms. The resources consist of teacher guides for each of the five resources, and an associated resource for use in the classroom.
The activities include:
- Stompy zombie robots, a Logo like activity
- Binary bingo, students apply the algorithm to convert denary numbers to binary
- Getting the message across, which describes routing algorithms and networks, using flowcharts to describe dances
- Binary bead bracelets, which uses binary to encode messages in chains of two colour beads
This resource consists of a ten page student workbook and some associated resources. The workbook is designed to be used with Key Stage 3 students over a number of lessons, to introduce them to the concept of algorithms, to get them used to following instructions given as an algorithm and to start producing their own in order to achieve a goal or solve a problem. Although the workbook is in the form of a PDF the contents could easily be adapted by a teacher in order to meet slightly different requirements. This also features a couple of presentations which could be used as starter activities for various lessons.
This lesson plan and supporting resources from the IET detail a lesson on how to turn a problem into a flowchart. Although initially aimed at design technology teachers this resource is suitable for computing lessons too. The description of levels is outdated and may need updating for whichever system is in place in a school. Some more complex examples might also be beneficial for more advanced students.
This booklet contains a number of very briefly described algorithms, which students are then expected to analyse, develop an algorithm for and then implement in a language of their choice. Each section contains success descriptors at three different levels which could be adapted to meet the requirements of an individual school's needs. As the description of each problem is so brief it may be necessary for users of this resource to research the tasks more thoroughly in order to understand the requirements properly, or depending on the level of the students attempting this activity, this could be set as part of the problem.
This resource from CS Unplugged demonstrates how algorithms which perform steps in parallel can be used to speed up the time it takes to solve a task. The task itself requires space for students to move about, and the ability for networks to be drawn out on the floor, the suggestion is that this could be accomplished with chalk on a school yard, but other solutions may be possible. A discussion about relative complexities of different algorithms might be useful, along with comparisons between this algorithm and a non-parallel version. Demonstrating the task on a worksheet and whiteboard may be an alternative possibility. Videos of similar activities can also be found online, to help with explain how to run the task
This resource from CS Unplugged contains an activity which demonstrates how routing and deadlocks occur and can be handled in a network. This cooperative activity should result in students realising that if they hold on to their own orange then others will not be able to achieve the goal of solving the problem. Once they have completed the task and discussed the points raised in the activity, getting them to draw flowcharts/explain the algorithm that enables the task to be solved would also be beneficial
This CS Unplugged activity is a simple representation of a class of Computer Science problems which require the programmer/user to find a minimal spanning tree for a network or graph. A minimal spanning tree creates a network such that there exists a path to travel from any node to any other node in the network. The problem is shown in the context of a village with no roads just muddy tracks, the mayor wants to pave just enough of the town that a paved path will exist from any building to any other, but spend the least amount of money doing it. Students are asked to attempt various strategies in order to solve the problem. The resource finishes with a discussion of various strategies which can be used to solve this problem. Getting students to describe their own strategies is also very beneficial.
This problem on the face of it looks very similar to the Muddy City problem, for finding Minimal Spanning Trees. The problem is to also find the minimum length of network which will link all of the nodes together, but with the added proviso that we can introduce extra nodes where they would make the overall lengths of the paths shorter (creating a more efficient solution). The activity gives very detailed instructions for activities for students to try. It finishes with a detailed discussion of this type of problem (NP-complete) and explains why there may be no algorithm to find a guaranteed shortest path. (It also explains about one of the great unsolved problems in computer science: whether P=NP and what it means)
This resource includes two lessons on sorting algorithms along with a piece of software to allow students to investigate how these algorithms function. The software itself is a simple game where students perform a given sorting algorithm on a set of data, and lose lives if they perform an incorrect step. The lesson plans, detail using this in conjunction with various other ideas for introducing students to the ideas behind how these sorting algorithms work.