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.
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...
Celebrating South Carolina STEM Education Month
March 14 (Pi day) marked the kickoff of STEM Education Month in South Carolina. STEM education is becoming increasingly important in K-12...
Women Making History in Tech
Believe it or not, a report by Accenture showed that “the proportion of women working in tech is now smaller, at 32%, than it was in 1984, at 35%."...
This Digital Learning Day, Equipping Students to Navigate Our Digital World
Today we celebrate Digital Learning Day (#DLDay), a day sponsored by All4Ed to highlight the digital tools educators use across the country to...
What Does Lifelong Digital Literacy Look Like in a Constantly Changing Digital World?
There’s no doubt that the digital technology landscape is constantly changing. What began as the ability to automate calculations and digitize...
Preparing Students for a Tech Centered World
For many, technology is a gift. For others…not so much. Either way you view technology, one thing is certain: technology is here to stay and will...
Is Teaching Keyboarding to Students Still Relevant in 2023?
It wasn’t not too long ago that typing was ubiquitous in computer class. Typing curriculum programs were an important focus of technology...
Get Creative with Professional Development for Technology Integration
Technology continues to develop at lightning speed. For educators, there is more and more pressure to integrate it into the classroom; but with...
How to Help Students Improve Pattern Recognition Skills
In computational thinking, one of the integral steps to the problem-solving process is pattern recognition. In this process, pattern recognition is...