Abstraction, as used in computer science, is a simplified expression of a series of tasks or attributes that allow for a more defined, accessible representation of data or systems. In computer programming, abstraction is often considered a means of “hiding” additional details, external processes and internal technicalities to succinctly and efficiently define, replicate and execute a process.
Real-Life Examples of Abstraction
One well-known example of abstraction in the computer science space is illustrated in an article Thorben Janssen at Stackify. In this example, Janssen explains abstraction in terms of making your morning cup of coffee. You can complete the process knowing only to add water and beans and switch the coffee maker on. You don’t necessarily need to know how the coffee maker functions to provide coffee. With the very specific task of “making coffee,” you don’t even need to consider how and when to provide a mug, as that would be considered a separate “task” from “making coffee.”
In this example, abstraction consolidates the function of the coffee maker simply into the process of “turning on the coffee maker” and eliminates the need to think about anything more complicated than the base processes to complete that specific goal: put in filter, add coffee grounds, measure and add water, switch on. Read more about the “CoffeeMachine” abstraction here.
Additionally, some real-world examples of abstraction include:
- Baking a cake. If you are following a recipe to bake a cake, you are using abstraction. In this example, you’re following only the necessary steps to prepare and bake the batter. You are not calculating or analyzing the science behind different leavening agents and baking temperatures and may not understand the inner workings of the oven’s temperature control and timing mechanisms. However, you can still complete the task of baking a cake since these intricacies are automatically accounted for when you measure the ingredients into a bowl, mix and place the batter-filled pan in the oven for the specified amount of time.
- Using known color and outfit combinations to dress in the morning. Another real-world example of an abstraction is getting dressed in the morning. You’re able to quickly evaluate wardrobe needs and put together a corresponding outfit relatively simply. Perhaps you have a pants and jacket set that provides a simplified match. You have previous knowledge about which patterns and colors match without reanalyzing color science each time you get dressed, efficiently narrowing down your blouse or shoe selection. Finally, you also use abstraction to effectively pair a sweater and jeans as opposed to a sweater and running shorts instead of analyzing every possible clothing combination every time you get dressed.
- Driving to work. Driving to work also uses abstraction in the real world. There are intricate workings inside the motor that make your vehicle move (for instance, the starter motor engages the flywheel, which turns the crankshaft, moves the pistons and starts the engine’s combustion process). However, aside from “start engine, engage drive and use gas and brake pedals,” these intricacies are largely ignored when you drive to work. You are also automatically extracting your ideal route from all possible routes, likely with a preferred effective route that you use the majority of the time instead of re-evaluating every turn, or even every route variation, as you approach it.
A common misconception about abstraction is that it must include steps that obfuscate more complicated parts of a task (such as how a coffee machine works, how an oven works, how a car engine works, etc.). However, this is not necessarily true. In abstraction, the defining factor is not that these processes are not understood by the end user, but rather that they are “contained,” with the purpose of getting the same result with less work. For instance, all the inner workings (or attributes) of a coffee machine are contained in the simplified container, or object, of “coffee machine.” All of the inner workings/attributes still exist, and may even be understood, but are simplified by using “coffee machine” instead of explaining the inner workings/attributes every time a cup of coffee is made.
Abstraction is, quite simply, the process of simplifying the representation of code in external systems. This concept is integral in computer science and coding and in computational thinking. Learn more about teaching abstraction and computational thinking to students by exploring EasyTech today.
Founded in 1999, Learning.com provides educators with solutions to prepare their students with critical digital skills. Our web-based curriculum for grades K-12 engages students as they learn keyboarding, online safety, applied productivity tools, computational thinking, coding and more.
30 Examples of Digital Literacy in 2023
Digital literacy is the ability to understand, use and interact with technology, media and digital resources in real-world situations. Every...
Improving Partnership for Student Success
In January 2020, I had the good fortune of joining the team at Learning.com. The Customer Success team at Learning.com is unparalleled in their...
Make Computational Thinking a Social-Emotional Learning Experience
Social and emotional learning is an approach to education that focuses on cultivating persistence, empathy, mindfulness and relationship skills, as...
How One Teacher is Creating a Safe Space for Girls to Learn about STEM
My name is Allyson Varlas, and this is my fourth year as a fifth grade Title I Reading Specialist for the Marshall County School District in West...
Education 4.0 & the Future of Work
Up until the early 20th century, futurists estimated that human knowledge doubled every 100 years. By the mid 19th century, knowledge doubled every...
Leveling Up with TA-TEKS: Computational Thinking, Coding and Python
One of the significant shifts in the updated Texas Essential Knowledge and Skills for Technology Applications, or TA-TEKS, is a focus on teaching...
To Enhance Curriculum Implementation, Start with Communication
What’s in a journey to curriculum implementation? A lot, it turns out. When multiple educators are using the same program or application, it’s...
South Carolina Schools Chart Course Toward Digital Equity
In an effort to ensure digital equity for students in rural or lower socio-economic areas, the South Carolina state legislature began funding the...
Cultivating Digital Literacy Skills in Students
Digital literacy is the ability to understand, use, and interact with technology, media, and digital resources in real-world situations, providing...