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 we use as our 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.
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.
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.
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 on the image to see full size and download.