# 4.2 Connecting computational thinking and program design

# 4.2.1 Characteristics of standard algorithms

### VisuAlgo: Sorting Algorithms

Visu Algo is another site which offers animated visualizations of common computing algorithms. The great thing about their animated sorting algorithms is the ability to display pseudo-code next to the animation and have it run step-by-step, following each line of code as it is processed. Really useful for helping students better understand code.

*Updated: 2015-04-13*

### Algorithms - Searching and Sorting

CS Field Guide has an extremely comprehensive page about searching and sorting algorithms, including clear explanations, animated examples, and interactives. It covers algorithm efficiency and cost.

*Updated: 2017-01-23*

### Searching game

The Searching Boxes game from the CS Field Guide makes for a good lesson starter and can help students understand the need for different searching algorithms. Once they have tried part 1, students could try Searching Boxes Part 2 and try to devise a better search algorithm.

*Updated: 2017-01-23*

### Bubble sort and Merge sort

Using a combination of playing cards and simple computer animations, this video clearly explains the bubble sort and merge sort algorithms step by step. It also compares the speed of each algorithm of data sets of different sizes.

The second half of the video examines the complexity of the algorithms, introducing 'Big O' notation and highlighting how bubble sort's complexity is a major drawback on large lists.

*Updated: 2015-05-27*

### The Sorting Balance

This is another interactive to help students learn about sorting algorithms. They must use a set of virtual scales to test and compare the weights of 10 jars. Students must then line the jars up in the correct order at the bottom of the page. There are, of course, multiple ways to solve the problem - some more efficient than others. CS Field Guide have a similar game.

*Updated: 2017-01-23*

### Linear search / sequential search algorithm

The linear search or sequential search algorithm is very straightforward, but this video explains it. It also makes an important point that students often forget: that is, while we can see all of the numbers on display at the same time in our examples, a computer cannot. Therefore no algorithm can make 'jumps' or 'assumptions' about the data - it must be searched item by item if it is unsorted. The video also includes pseudo code for the algorithm

*Updated: 2017-01-23*

### Bubble Sort algorithm

This Bubble Sort video does exactly as its name suggests - explaining the algorithm clearing with the aid of diagrams. Although it is labelled as "Java", it is relevant to all computer science students.

There is also a good explanation of the algorithm (including why it is very inefficient) plus step by step diagrams here.

*Updated: 2017-01-23*

### Selection Sort algorithm

The selection sort video from Harvard's CS50 program provides a clear explanation of this algorithm. The technique - using labelled plastic cups - is one that can easily be used in the classroom to test understanding.

Two other good examples which use clear diagrams to explain the algorithm are Algorithms Lesson 8: Selection Sort and SelectionSort animated demo.

For students who prefer step-by-step diagrams, Tutorials Point has a very clear page, along with the algorithm in structured English and pseudo code.

*Updated: 2017-01-23*

# 4.2.2 Standard operations on collections

### VisuAlgo: Linked Lists, Queues, Stacks

Linked Lists (single and doubly linked), stacks, and queues are explained on this page from Visu Algo. The site is more than a simple animation of the data structures - it allows students to interact and perform different operations (insert, remove, find, etc), then displays the pseudo-code to achieve the result while showing an animation of the data structure.

*Updated: 2015-04-13*