Abstraction: Generalization
What word would you use to describe the following picture?
Did you say "Fruit?" Classifying all of these objects into a single idea is powerful. It allows us to conceptualize lots of food into a single category. When nutritionists advise us to eat "5 fruits daily," we are considering fruit as an abstract concept that we have generalized into a single idea. Generalization is another way of abstracting information that helps learners think computationally.
Probably the most common method of using abstraction for generalization is through the use of symbols. Written language itself is just a series of generalized abstractions for sounds that form words. Lev Vygotsky demonstrated that symbols are both culturally and historically bound. This means students learn what an abstracted symbol means by interacting with their surrounding peers and society. For example, what do you suppose the following symbols mean?
420:12
This symbol may seem odd to you (or not), because you may be used to seeing it in a different manner. If you were educated in the U.S., you might be more familiar with the following notation instead:
42012
My wife, who grew up and was educated in Chile, learned to represent division using the former symbol and had to learn the latter representation when she studied microbiology at BYU. Symbols, at their core, are just generalized abstractions. More importantly, they are abstractions that we can use to our advantage. The ability to generalize allows students to take a mess of complex ideas and consider how they can apply them across a series of problems. We actually already make use of generalized abstractions regularly in elementary education. Consider the following mathematical expression to calculate the tip you might give at a restaurant:
C x 1.15
What is "C"? It's just a generalization for whatever the cost of the meal was. We could have used any other symbol or even a word in its place. We didn't have to choose a single letter, we could have written "Cost" instead. Both of these are simple abstractions to act as placeholders for some generalized information about the cost of the meal.
What are some ways we use generalizations in other subject areas? Here are a few that come to mind:
- Language arts: genres, character types
- Social studies: government and economic systems
- Science: animal and plant classification
As students learn to generalize, they can combine these abstractions with other computational thinking practices to create more dynamic programs. You have actually already learned one way of generalizing through code when you learned how to use clones to deal with patterns (a clone is a generalization of a new instance of a single sprite). Two other ways of generalizing in coding are through the use of variables and lists. Advance to the next lesson to learn how to apply these generalizations in your own Scratch projects.