Lesson 0.5: Computational Thinking: Patterns
Learning Objectives:
Students will learn about the basics of pattern recognition in recipes.
Students will learn how recipes are relevant to algorithms.
Do Now:
Watch: Programming and Computer Science
Activity Part 1: Read
What is pattern recognition?
When we decompose a complex problem we often find patterns among the smaller problems we create. The patterns are similarities or characteristics that some of the problems share.
Pattern recognition is one of the cornerstones of Computer Science. It involves finding the similarities or patterns among small, decomposed problems that can help us solve more complex problems more efficiently.
What are patterns?
Imagine that we want to draw a series of cats.
All cats share common characteristics. Among other things they all have eyes, tails and fur. They also like to eat fish and make meowing sounds.
Because we know that all cats have eyes, tails and fur, we can make a good attempt at drawing a cat, simply by including these common characteristics.
In computational thinking, these characteristics are known as patterns. Once we know how to describe one cat we can describe others, simply by following this pattern. The only things that are different are the specifics:
one cat may have green eyes, a long tail and black fur
another cat may have yellow eyes, a short tail and striped fur
Why do we need to look for patterns?
Finding patterns is extremely important. Patterns make our task simpler. Problems are easier to solve when they share patterns, because we can use the same problem-solving solution wherever the pattern exists.
The more patterns we can find, the easier and quicker our overall task of problem solving will be. If we want to draw a number of cats, finding a pattern to describe cats in general, eg they all have eyes, tails and fur, makes this task quicker and easier. We know that all cats follow this pattern, so we don’t have to stop each time we start to draw a new cat to work this out.
From the patterns we know cats follow, we can quickly draw several cats.
What happens when we don’t look for patterns?
Suppose we hadn’t looked for patterns in cats. Each time we wanted to draw a cat, we would have to stop and work out what a cat looked like. This would slow us down. We could still draw our cats - and they would look like cats - but each cat would take far longer to draw. This would be very inefficient, and a poor way to go about solving the cat-drawing task. In addition, if we don’t look for patterns we might not realize that all cats have eyes, tails and fur. When drawn, our cats might not even look like cats. In this case, because we didn’t recognize the pattern, we would be solving the problem incorrectly.
Recognizing patterns
To find patterns in problems we look for things that are the same (or very similar) in each problem. It may turn out that no common characteristics exist among problems, but we should still look. Patterns exist among different problems and within individual problems. We need to look for both.
Patterns among different problems
To find patterns among problems we look for things that are the same (or very similar) for each problem. For example, decomposing the task of baking a cake would highlight the need for us to know the solutions to a series of smaller problems:
what kind of cake we want to bake
what ingredients we need and how much of each
how many people we want to bake the cake for
how long we need to bake the cake for
when we need to add each ingredient
what equipment we need
Once we know how to bake one particular type of cake, we can see that baking another type of cake is not that different - because patterns exist.
For example:
each cake will need a precise quantity of specific ingredients
ingredients will get added at a specific time
each cake will bake for a specific period of time
Once we have the patterns identified, we can work on common solutions between the problems.
Patterns within problems
Patterns may also exist within the smaller problems we have decomposed to.
If we look at baking a cake, we can find patterns within the smaller problems, too. For example, for ‘each cake will need a precise quantity of specific ingredients’, each ingredient needs:
identifying (naming)
a specific measurement
Once we know how to identify each ingredient and its amount, we can apply that pattern to all ingredients. Again, all that changes is the specifics.
Activity Part 2: Recipes as Algorithms
Using this worksheet, describe what is different and what is the same in each recipe.
Think of other steps in things that you do that are often repeated. For example, when completing work (like this worksheet), you put our name on it before turning it in. Then, put your name on it and turn it in!
Lesson 0.5 Wrap Up:
Reflection: Algorithms are Relevant to Recipes
You can think of an algorithm as similar to a food recipe. If you make a sandwich, you follow a set of steps to put the different ingredients together. You bring ingredients together, assemble them as you like, and produce a final product - the sandwich. If you were asked to write down instructions to make a sandwich, you could create a written algorithm.
Within your sandwich algorithm you would need to specify:
inputs - ingredients and quantities
the process - recipe or method
output - what the finished sandwich will be like
When designing an algorithm, you need to assess how complex it could be. With a food recipe, a simple command like 'spread butter on bread' could be made much more detailed. For example:
Remove lid from butter tub and place to one side.
Place 5 grams of butter on the tip of the knife.
Position the tip of the knife on the upwards side of the slice of bread with the butter between the knife and the bread.
Move the knife backwards and forwards in a sweeping motion across the bread to spread it at an even thickness.
Repeat steps 2 to 4 until one side of the slice of bread is evenly coated with butter.
Remove any excess butter from the tip of the knife.
Differentiation
Use additional targeted questions during the recipe activity to support students in thinking what is the same, different and to think what can be reused.