Activity 6: Battleships-Searching Algorithms
Activity 6: Battleships-Searching Algorithms
Battleships—Searching Algorithms
Summary
Computers are often required to find information in large collections of data. They need
to develop quick and efficient ways of doing this. This activity demonstrates three
different search methods: linear searching, binary searching and hashing.
Curriculum Links
9 Mathematics: Number Level 3 and up. Exploring numbers: Greater than, less than
and equal to
9 Geometry Level 3 and up. Exploring shape and space: Co-ordinates
Skills
9 Logical reasoning
Ages
9 9 years and up
Materials
Each child will need:
9 Copy of battleships games
1A, 1B for game 1
2A, 2B for game 2
3A, 3B for game 3
9 You may also need a few copies of the supplementary game sheets, 1A', 1B', 2A',
2B', 3A', 3B'.
2. Give another child a container with four or five sweets in it. Their job is to find a given
number. They can “pay” to look at a particular card. If they find the correct number
before using all their sweets, they get to keep the rest.
4. Now shuffle the cards and give them out again. This time, have the children sort
themselves into ascending order. The searching process is repeated.
If the numbers are sorted, a sensible strategy is to use just one “payment” to eliminate
half the children by having the middle child reveal their card. By repeating this process
they should be able to find the number using only three sweets. The increased efficiency
will be obvious.
Activity
The children can get a feel for how a computer searches by playing the battleship game.
As they play the game, get them to think about the strategies they are using to locate the
ships.
2. Both of you circle one battleship on the top line of your game sheet and tell your partner
its number.
3. Now take turns to guess where your partner’s ship is. (You say the letter name of a ship
and your partner tells you the number of the ship at that letter.)
4. How many shots does it take to locate your partner’s ship? This is your score for the
game.
(Sheets 1A' and 1B' are extras provided for children who would like to play more games
or who “inadvertently” see their partner’s sheet. Sheets 2A', 2B' and 3A', 3B' are for the
later games.)
Follow Up Discussion
1. What were the scores?
2. What would be the minimum and maximum scores possible? (They are 1 and 26
respectively, assuming that the children don’t shoot at the same ship twice. This method
is called ‘linear search’, because it involves going through all the positions, one by one.)
1. Organise yourselves into pairs. One of you has sheet 2A, the other sheet 2B. Don’t show
your sheet to your partner!
2. Both of you circle one battleship on the top line of your game sheet and tell your partner
its number.
3. Now take turns to guess where your partner’s ship is. (You say the letter name of a ship
and your partner tells you the number of the ship at that letter.)
4. How many shots does it take to locate your partner’s ship? This is your score for the
game.
Follow Up Discussion
1. What were the scores?
3. Which ship should you choose first? (The one in the middle tells you which half of the
line the chosen ship must be in.) Which location would you choose next? (Again the best
strategy is always to choose the middle ship of the section that must have the selected
ship.)
4. If this strategy is applied how many shots will it take to find a ship? (Five at most).
This method is called ‘binary search’, because it divides the problem into two parts.
2. In this game you can find out which column (0 to 9) the ship is in. You simply add
together the digits of the ship’s number. The last digit of the sum is the column the ship is
in. For example, to locate a ship numbered 2345, add the digits 2+3+4+5, giving 14. The
last digit of the sum is 4, so that ship must be in column 4. Once you know the column
you need to guess which of the ships in that column is the desired one. This technique is
called ‘hashing’, because the digits are being squashed up (“hashed”) together.
3. Now play the game using this new searching strategy. You may like to play more than
one game using the same sheet—just choose from different columns.
(Note that, unlike the other games, the spare sheets 3A' and 3B' must be used as a pair,
because the pattern of ships in columns must correspond.)
Follow Up Discussion
1. Collect and discuss scores as before.
2. Which ships are very quick to find? (The ones that are alone in their column.) Which
ships may be harder to find? (The ones whose columns contain lots of other ships.)
What are the advantages of each of the three different ways of searching? (The second
strategy is faster than the first, but the first one doesn’t require the ships to be sorted into
order. The third strategy is usually faster than the other two, but it is possible, by chance,
for it to be very slow. In the worst case, if all the ships end up in the same column, it is
just as slow as the first strategy.)
2. What would happen if the ship being sought wasn’t there? (In the Linear Search game it
would take 26 shots to show this. In the Binary Search game you would need five shots to
prove this. When using the Hash System it would depend on how many ships appeared in
the relevant column.)
3. Using the Binary Search strategy how many shots would be required if there were a
hundred locations (about six shots), a thousand locations (about nine), or a million (about
nineteen)? (Notice that the number of shots increases very slowly compared to the
number of ships. One extra shot is required each time the size doubles, so it is
proportional to the logarithm of the number of ships.)
N O P Q R S T U V W X Y Z
51
1A
52 Photocopiable for classroom use only.
© 2005 Computer Science Unplugged (www.unplugged.canterbury.ac.nz)
Photocopiable for classroom use only. 53
© 2002 Computer Science Unplugged (www.unplugged.canterbury.ac.nz)
54 Photocopiable for classroom use only.
© 2005 Computer Science Unplugged (www.unplugged.canterbury.ac.nz)
My Ships Number of Shots Used:
0 1 2 3 4 5 6 7 8 9
H 8051 R 9891 W 1062
E 5125 L 7116 O 6000
I 1481
55
3A
56 Photocopiable for classroom use only.
© 2005 Computer Science Unplugged (www.unplugged.canterbury.ac.nz)
Photocopiable for classroom use only. 57
© 2002 Computer Science Unplugged (www.unplugged.canterbury.ac.nz)
58 Photocopiable for classroom use only.
© 2005 Computer Science Unplugged (www.unplugged.canterbury.ac.nz)
Photocopiable for classroom use only. 59
© 2002 Computer Science Unplugged (www.unplugged.canterbury.ac.nz)
60 Photocopiable for classroom use only.
© 2005 Computer Science Unplugged (www.unplugged.canterbury.ac.nz)
Photocopiable for classroom use only. 61
© 2002 Computer Science Unplugged (www.unplugged.canterbury.ac.nz)
62 Photocopiable for classroom use only.
© 2005 Computer Science Unplugged (www.unplugged.canterbury.ac.nz)
What’s it all about?
Computers store a lot of information, and they need to be able to sift through it quickly.
One of the biggest search problems in the world is faced by Internet search engines,
which must search billions of web pages in a fraction of a second. The data that a
computer is asked to look up, such as a word, a bar code number or an author’s name, is
called a search key.
Computers can process information very quickly, and you might think that to find
something they should just start at the beginning of their storage and keep looking until
the desired information is found. This is what we did in the Linear Searching Game. But
this method is very slow—even for computers. For example, suppose a supermarket has
10,000 different products on its shelves. When a bar code is scanned at a checkout, the
computer must look through up to 10,000 numbers to find the product name and price.
Even if it takes only one thousandth of a second to check each code, ten seconds would
be needed to go through the whole list. Imagine how long it would take to check out the
groceries for a family!
A better strategy is binary search. In this method, the numbers are sorted into order.
Checking the middle item of the list will identify which half the search key is in. The
process is repeated until the item is found. Returning to the supermarket example, the
10,000 items can now be searched with fourteen probes, which might take two
hundredths of a second—hardly noticeable.
A third strategy for finding data is called hashing. Here the search key is manipulated to
indicate exactly where to find the information. For example, if the search key is a
telephone number, you could add up all the digits in the number and take the remainder
when divided by 11. In this respect, a hash key is a little like the check digits discussed in
Activity 4—a small piece of data whose value depends on the other data being processed.
Usually the computer will find what it is looking for straight away. There is a small
chance that several keys end up in the same location in which case the computer will need
to search through them until it finds the one it is seeking.
Computer programmers usually use some version of the hashing strategy for searching,
unless it is important to keep the data in order, or unless an occasional slow response is
unacceptable.