The One About Abstraction in Computational Thinking
Abstraction in computational thinking enables us to navigate complexity and find relevance and clarity at scale. Decomposition and pattern recognition broke down the complex, and abstraction figures out how to work with the different parts efficiently and accurately. This process occurs through filtering out the extraneous and irrelevant in order to identify what’s most important and connects each decomposed problem.
“But it is a pipe." "No, it's not," I said. It's a drawing of a pipe. Get it? All representations of a thing are inherently abstract. It's very clever.”
Abstraction is actually similar to the selective filtering function in our brains that gates the neural signals with which we are constantly bombarded so we can make sense of our world and focus on what’s essential to us.
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.
Examples of Abstraction in Curriculum
Like the other elements of computational thinking, abstraction occurs inherently and can be addressed throughout curriculum with students. Here are some ideas.
English Language Arts Students summarize a novel into a book review.
Mathematics: Students conduct a survey of peers and analyze the data to note the key findings, create visualizations, present the findings.
Science: Students develop laws and theorems by looking at similar formulas and equations.
Social Studies: Students coalesce the most important details shared in articles about a specific current event and write a brief about the event.
Languages: Students create a personal guide that dictates when to use the formal and informal ‘you’ in Spanish class or the two ‘to know’ verbs in French, which, mind you, always confounded me.
Arts: Students generalize chord progressions for common musical genres into a set of general principles they can communicate.
Examples of Abstractions in Computer Science
Abstraction in coding and computer science is used to simplify strings of code into different functions. It hides the underlying complexity in a programming language, which makes it simpler to implement algorithms and communicate with digital tools.
Abstraction helps students return to the larger problem that prompted this whole computational thinking adventure and identify the most important details from the earlier phases. Understanding abstraction enables students to make sense of problems they encounter, helping them to not be overwhelmed in the face of something complex and to persist, compute, iterate, and ideate.
What's Next? Check out our articles on decomposition, pattern recognition, and algorithmic thinking.