Computational Thinking - Abstraction
Preserving information that is relevant in a context, and forgetting or suppressing information that is irrelevant in that context to solve a problem is abstraction. A more formal definition of abstraction would be; the process of providing only essential information while hiding the background details or implementation.
We use abstraction to organise things.
- A human is a mammal
- A mammal is an animal
and so on is the categorization of the data “human” into a large category of “animal” rather than looking at unnecessary information like “warm-blooded” and “mammals”.
It is essentially a “big picture” so we can reason without thinking about the details.
Why is abstraction important?
Abstraction allows us to create a general idea of what the problem is and how to solve it. The process instructs us to remove all specific details, and any patterns that will not help us solve our problem. This helps us form our idea of the problem. This idea is known as a ‘model’.
If we don’t abstract we may end up with the wrong solution to the problem we are trying to solve. With our cat example, if we didn’t abstract we might think that all cats have long tails and short fur. Having abstracted, we know that although cats have tails and fur, not all tails are long and not all fur is short. In this case, abstraction has helped us to form a clearer model of a cat.
Examples of Abstraction in Everyday Life
Another way to think about abstraction is in the context of those big concepts that inform how we think about the world like Newton’s Laws of Motion, the Law of Supply and Demand, or the Pythagorean Theorem.
All of these required the people behind them to think about big, broad, and complex concepts; to break down the problem and to experiment; and to find patterns amongst the experimentations; and to eventually abstract this concrete knowledge to package it into these sterile statements that shelter us from the complexity and difficulty waded through to arrive at this law.
Educators use abstraction when looking at vast sets of student data to focus on the most relevant numbers and trends. And educators also use it when helping a student complete an assignment. There may be kids running around the classroom or making loud noises, but they can tune that out to focus on what the kid in need is asking – until of course it reaches an apex level of rambunctiousness and an intervention must be had.
Here is an amazing video that tells you more about Abstraction and its applications.
Source: coursera
Follow-up question Q1. You own a kennel for dogs, and want to build an application to keep track of the dogs you have boarded. Which of the following best captures the data you might want to represent?
A. Characteristics of the head, ears, body, and legs of each dog you have boarded.
B. Name and dietary information for the dog, contact information for the owner, dates during which the dog has been boarded, and payment information.
C. Name and dietary information for the dog, and contact information for the dog’s vet.
D. Name and dietary information for the dog, contact information for the owner, dates during which the dog has been boarded, and weather conditions during those dates.
Check the Solution!
Answer: Option B
🎨An activity applying Abstraction:
Think of a problem for which you could use computational thinking, describe it, and then describe how you would apply Abstraction.
(Add a text box here)