Skip to content
Computer Science · 9th Grade

Active learning ideas

Practical Uses of Abstraction

Students learn abstraction best when they see it in objects they already recognize. This topic bridges their lived experience with formal computer science ideas, making the abstract feel concrete. Active learning works because students practice identifying, creating, and teaching abstractions in multiple contexts.

Common Core State StandardsCSTA: 3A-AP-18
20–30 minPairs → Whole Class4 activities

Activity 01

Think-Pair-Share20 min · Pairs

Think-Pair-Share: Abstract Objects

Each student selects a common object (microwave, elevator, ATM, car dashboard) and lists everything the user interface hides. Partners compare their lists and categorize the hidden complexity by type: mechanical, electronic, or software. Pairs share the most surprising hidden complexity they found.

Identify examples of abstraction in common technologies (e.g., remote control, car dashboard).

Facilitation TipDuring Think-Pair-Share, circulate and listen for student examples that connect technology to familiar objects like thermostats or traffic lights.

What to look forPresent students with images of common objects like a microwave, a calculator, and a video game controller. Ask them to write down one specific abstraction each object provides to the user and one underlying complexity it hides.

UnderstandApplyAnalyzeSelf-AwarenessRelationship Skills
Generate Complete Lesson

Activity 02

Inquiry Circle30 min · Small Groups

Inquiry Circle: Function Design

Groups receive three programming tasks (calculate a restaurant tip, check if a password meets length requirements, convert Fahrenheit to Celsius). They write pseudocode for each as a named function with defined inputs and outputs, then discuss how the function name and signature abstract away the internal calculation from the caller.

Explain how using a function in programming is a form of abstraction.

Facilitation TipIn Collaborative Investigation, provide function signatures with missing documentation so students practice reverse-engineering purpose from inputs and outputs.

What to look forPose the question: 'How does using a function like `print()` in programming help you manage complexity, similar to how a car's dashboard helps a driver manage a car?' Facilitate a class discussion comparing the two scenarios.

AnalyzeEvaluateCreateSelf-ManagementSelf-Awareness
Generate Complete Lesson

Activity 03

Gallery Walk25 min · Small Groups

Gallery Walk: Abstraction Spotting

Post images of six everyday technologies around the room. Students annotate each with three things: what the user sees, what the user does not see, and what would happen to the user experience if the abstraction broke or became visible. Groups discuss patterns in how interfaces hide complexity.

Compare how abstraction simplifies interaction with complex systems.

Facilitation TipDuring Gallery Walk, position yourself at the center of the room to monitor all groups and time their discussions to ensure equal participation.

What to look forAsk students to define 'abstraction' in their own words and provide one example of abstraction they encountered today, either in technology or in a programming concept learned this week.

UnderstandApplyAnalyzeCreateRelationship SkillsSocial Awareness
Generate Complete Lesson

Activity 04

Peer Teaching25 min · Pairs

Peer Teaching: Use the Function

One partner writes a simple pseudocode function with a clear name, inputs, and outputs but does not explain the internal logic. The other partner must use that function in a larger algorithm without reading the implementation, knowing only the function signature. They switch roles after 10 minutes.

Identify examples of abstraction in common technologies (e.g., remote control, car dashboard).

Facilitation TipFor Peer Teaching, assign functions with varied purposes so students see different ways to hide complexity.

What to look forPresent students with images of common objects like a microwave, a calculator, and a video game controller. Ask them to write down one specific abstraction each object provides to the user and one underlying complexity it hides.

UnderstandApplyAnalyzeCreateSelf-ManagementRelationship Skills
Generate Complete Lesson

A few notes on teaching this unit

Teach abstraction by starting with what students already know. Use objects they use daily to build intuition before moving to code examples. Avoid rushing into formal definitions; let students discover the concept through structured activities. Research shows that when students articulate their own examples first, they retain the concept longer and transfer it more easily to new contexts.

By the end of these activities, students should confidently identify abstractions in everyday objects and code, explain why they matter, and apply the concept to design functions that hide complexity. Success looks like students using precise language to describe interfaces and their underlying implementations.


Watch Out for These Misconceptions

  • During Think-Pair-Share, watch for students who claim abstraction only exists in programming because they focus only on code examples.

    During Abstract Objects, redirect students by asking them to list every technology they interacted with today and identify one abstraction in each. Have them share these real-world examples in the pair discussion to break the programming-only misconception.

  • During Peer Teaching, listen for students who assume they do not need to understand a function to use it.

    During Peer Teaching, provide each student pair with a function that has intentional documentation gaps. Require them to ask clarifying questions about inputs, outputs, and purpose before using it, demonstrating that understanding the interface is mandatory.


Methods used in this brief