Abstraction is probably the most complicated stage of computational thinking. A programmer hides all but the relevant data about an object in order to reduce complexity and increase efficiency.
When you look at a complex problem you want to find the easiest way to solve it. Abstraction is simply hiding detail and removing the parts not needed. The important thing is choosing the right detail to hide so that the problem becomes easier without losing anything that is important. If you are doing research, you try to think of the best keywords when conducting a search online. If you are presenting a topic, you only need to define the key points. Any unnecessary details can become a distraction.
Watch this short video together as a class to learn more about abstraction in computer science.
In the video, they discuss maps and abstraction. A person who wants to identify where all 50 states are needs a political map. They don't need a physical or topographic map that shows rivers, lakes, mountains, etc. So the details, in this case, rivers, lakes, mountains, etc., are hidden for the most part on a political map. There is no reason to show these details on a political map as you are only trying to identify the locations of cities, towns, states, countries, etc. A physical map, on the other hand, serves a different purpose to help those who need to know different land formations and the terrain.
Political Map Physical Map
Continue on in the Quest to learn more about abstraction and how you can hide the details that are not necessary when solving a problem.
Abstraction: Abstraction is filtering out the data you need and what you don’t need. A computer programmer hides all but the relevant data about an object in order to reduce complexity and increase efficiency.
Distraction: Distraction is something that draws attention away.
I Can Statements
- understand abstraction
- hide details that are needed
Steps for Abstraction
1. As a class discuss what abstraction is. Can you think of some real-life examples of abstraction?
2. Brainstorm with your teacher examples of abstraction.
3. Here are a couple to get started.
- When you are riding your bike, do you need to know the internal functions of how it works?
- You just need to know that you have to pedal it to make it work.
- When you are driving a car do you need to know the parts of the engine?
- You just need to know that you have to give it gas, brake at the right times, turn, etc. to drive it correctly.
- When you are writing an essay do you need to explain to your audience what kind of essay it is and define the parts for them?
- Your audience will read the essay and either like or dislike it.
4. When writing code, computer programmers will also hide detail that does not need to be seen by those using the program.
5. If you write a sentence and have others fill it in, most likely they will have different examples. These are the details that can be hidden.
- The sentence would have a common language such as: I have _______ blue _________.
- I, have and blue are the same keywords or points throughout each sentence, but the blanks are the information that is different.
- With computer science, you have to decide what to include and what to leave out.
6. MADLIBS are a fun way to learn about abstraction. You or parents may have purchased a MADLIB book and you and your friends filled out it together to create funny stories.
6. You can also play them online. Go to RedKit and choose several of the story titles to play. Share them with the person next to you. The story will be the same, but the details are going to be different.
7. Now that you understand what abstraction is, you will need to revisit your complex problem and determine how you are going to present it. For example:
- How will you structure the problem and what are the key points?
- What can be left out after defining the key points?
- If you are doing research, what are the keywords that will be necessary?
Completing This Quest
To complete this Quest, watch the video with your teacher, brainstorm abstraction examples and then complete several MADLIBS with a partner. Then complete the steps for your complex problem and share with your teacher when it is completed.
Check this Quest off your 21t4s roadmap
I have completed this Quest and I am ready to tackle Quest 5
Competencies & Standards
MITECS Michigan Integrated Technology Competencies for Students, and
5. Computational Thinker
a. formulate problem definitions suited for technology-assisted methods such as data analysis, abstract models and algorithmic thinking in exploring and finding solutions.
b. collect data or identify relevant data sets, use digital tools to analyze them, and represent data in various ways to facilitate problem-solving and decision-making.