BBC Bitesize revision materials on evaluation solutions

BBC Bitesize Programming resources

Race To Learn provides a real life context of a racing team and provides actual live data to develop, interpret and use when developing a solution

The Harwell Dekatron computer was used as a giant calculator. This unit of work provides tools for exploring computer coding through the Dekatron exemplar

Khan Academy resources focusing on the use of Algorithms

Many schools are teaching Python as a first programming language, the LGfL Python Tutor provides resources, learning and practical development in a familiar, reactive environment

code.org provides a series of materials and teaching contexts to support a wide range of programming languages.

While recognising that HTML is not a language suitable for solving computational problems it can be an excellent way to introduce coding fundamentals and syntax.See the LGfL HTML Tutor or the Code Academy HTML simulation.

How does Google work? How are pages ranked, sorted and shown? Google Inside Search explains the principles behind the search engine and how it sorts data in real world terms

The LGfL Python Tutor provides students with opportunities to find alternative solutions to the same problem and reflect on the efficiency of developed algorithms.

This collection of unplugged activities can also be used to support students in developing and refining algorithms

Testing and theorising is a key part of the learning process, pupils should be given opportunities to test and refine as well as solve problems. BBC Bitesize revision guide to evaluating solutions
Logo is an excellent way to develop simple problem solving, such as mazes and can be used to develop complex but unique answers. LGfL provides access to an adapted version of Logo by J2E

Computer Science Unplugged provides a range of non-screen based resources for teaching and learning of computing contexts

BBC Bitesize resources on search algorithms

Resources can be found to support Sorting in the BBC Bitesize Computing area

Computer Science Unplugged provides a range of non-screen based resources for teaching and learning of computing contexts including algorithms

Algorithms

Understand several key algorithms that reflect computational thinking [for example, algorithms for sorting and searching]; use logical reasoning to compare the utility of alternative algorithms for the same problem Link icon

An algorithm is a precise method for solving a given problem (for example, a recipe for baking a loaf of bread or instructions for constructing a flat-pack desk). Some algorithms are written to be run on a computer, and some are meant to be carried out by a person. A common misconception is that algorithms, programs and code are all the same thing. This isn't the case. Programs contain algorithms. Programs are written in programming languages. Code is a generic term for any set of statements written in a programming language, whether or not they constitute a program. An algorithm can also take the form of steps written in structured English (pseudocode) or it can be expressed as a flowchart. Link icon

Algorithms help shape the world around us. We have algorithms to find the best route from A to B, algorithms that rank pages from a web search, algorithms that establish our credit rating, and so on. Algorithms are everywhere!Link icon

Often, there are several possible algorithms to solve the same problem, which differ in complexity, efficiency or generality. These may just be different ways of arriving at the same result (for example, different procedures for adding together threedigit numbers). Where the problem is more complex, different algorithms may lead to different solutions (for example, different routes from A to B).Link icon

It is important that pupils understand there may be more than one way to solve a problem, and that some problems have more than one 'right' solution. This can be challenging, but it is an essential lesson in life. Pupils should be prepared to evaluate an algorithm using factors such as correctness (in the sense that it solves the problem) and speed, but also the quality of the solutions that it yields.Link icon

For example, to find the way out of a maze, one (simple but slow) algorithm might be to walk around at random until you find the exit. Another (more complicated) algorithm would involve remembering where you had been in order to avoid going down the same path twice. Another might be to keep your left hand on the wall and walk until you find the exit. Each algorithm gives a different solution to the same problem (a different route out of the maze). Other qualities might be taken into consideration: maybe one solution gets your feet wet and another gets them muddy.Link icon

The programme of study requires that pupils understand several key algorithms, giving searching and sorting as examples. These examples are important because the tasks (searching and sorting) are easy to understand, but there is a particularly rich variety of algorithms for solving them, vividly illustrating the kind of trade-offs discussed above. Pupils can play the part of a machine executing searching and sorting algorithms, and they can translate algorithms into program code.

child using computer

Searching
Linear and binary searches are the main searches pupils should learn.Link icon

A linear search starts at the beginning of a list and goes through every item until it finds the one you are looking for (or you come to the end of the list without finding the item). A real-life example of this might be looking for a picture of your cousin's wedding in a pile of unordered printed photographs. You keep flicking through until you find the photograph, or until you've looked at all the photographs and conclude that the picture isn't there.

A binary search is much quicker, but only works if you have a list of items that have already been sorted in order. You start with the middle item. If you find it first time, well done! Otherwise, the item you are looking for will either be in the top or bottom half of the list. Go to the middle of that half and eliminate the other half of the list. Continue chopping the list in half until you have found the item – or worked out that the item you're looking for is not in the list.

You may find it useful to look at CS Unplugged, which provides lots of non-computer-based searching activities.

Sorting
There are dozens of competing algorithms for sorting data. It is important that pupils know that there are lots of ways of achieving the same result, and that some methods are more efficient than others.Link icon

Giving pupils physical sorting tasks, and asking them to record the algorithms they use, can be a useful way of introducing the subject. There are some helpful examples at CS Unplugged, which provides lots of noncomputer-based sorting activities. There are also sorting dance videos available, for example, see this example on You Tube.

About

Author

Author: Peter Kemp

Acknowledgements

Copyright

Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License