Abstraction is another one of the Computational Thinking concepts we talk about during Computer Science classes. It's an important step in creating a solution to a larger problem. Abstraction is defined as "focusing on what is important and ignoring what is unnecessary."
In the code.org puzzles my district uses as the core curriculum, many times students are given a lot of coding blocks and are asked to rearrange and remove
any blocks aren't needed. The focus of these lessons is on debugging and the word abstraction is never mentioned in the directions or hints given within the puzzle. I mention it, of course -- but find that many of my students don't really make the connection.
One of my favorite ways to talk about abstraction and have students practice this skill is by pacifying Arno, the almost omnivorous Pizza Troll using the program The Logical Journey of the Zoombini's.
In this logic game, students are asked to create the perfect pizza for Arno. Each time you play the game he wants different toppings and you have to use the visual and verbal clues given to decide which toppings are "eewwwww GROSS" or which ones he likes.
|Arno blocks the path so the Zoombini's can not move on. In order for him to move, the user must use the pizza topping buttons to serve up the perfect pizza. |
As I teach this lesson, I encourage my students to look closely at the pizzas that Arno has been served and what he does with them. If he likes a topping, but wants MORE, he will save it for later. (I explain to the kids that I will eat a pepperoni pizza -- but I really like pepperoni and sausage. They totally get this....) If Arno, however despises a certain topping, he will throw it into the dump in front of him.
|In this example, you can see that Arno is not fond of pineapple or mushrooms. He has thrown them into the dump. The other toppings he likes -- so he has saved them for later. Can you decide what would be his PERFECT pizza??|
Using abstraction skills -- we can tell that Arno is not at all interested in pineapple or mushroom. As the pizza maker/programmer, I would ignore those toppings and not use them in my final recipe/algorithm. The other toppings are all useful to me -- since he likes them. I would make a perfect pizza for Arno using peppers, pepperoni, and cheese.
HINT!!! Presenting Arno with pizzas that only have one topping at a time is a critical act in determining what he likes. He gives very vague comments if he doesn't like an ingredient.
"There is something there I don't like!" "Ewwww....Gross!"
If you present a pizza with 3 toppings and only one is an ingredient he isn't fond of -- it's not very easy to guess which one it is.
As the game levels progress -- the student is introduced to two more pizza trolls -- each with their own likes and dislikes. The pizza machine also expands to produce an ice cream dessert with up to three different toppings.
|In the harder levels, you will meet Arno's friends -- Willa and Shyler. Each have their own likes and dislikes.|
It's very helpful for students to have some sort of way to take notes and record data as they discover it. A simple table would be great. Here is one that I use with my students. Click here
or on the image to see it full size and download it if you like.
Pizza Pass is just one of the 12 amazing Computational Thinking and Logic games that are part of Zoombini's. In future posts, I hope to share some more of my favorite puzzles in this awesome program. Zoombini's is available to play on STEAM
(computer play) -- or via the Apple App Store
or Google Play