# Chapter 2.8 - What is Abstraction

## Time Estimate: 45 minutes

### 2.8.1. Introduction and Goals

An important concept and practice in Computer Science is abstraction. But what exactly is abstraction? This lesson provides a quick introduction to this key concept.

**Learning Objectives**: I will learn to

* explain how data can be represented using bits

**Language Objectives**: I will be able to

* Describe abstractions in computer science and in the real world using key vocabulary such as procedural abstraction and data abstraction, out loud and in writing, with the support of [vocabulary notes](https://docs.google.com/presentation/d/1n-K4AQ_maHcXekzcfERQ9dxj91nqv9ytwJx4ZkAp8zw/copy) from this lesson.

### 2.8.2. Learning Activities

* [Slides](https://docs.google.com/a/css.edu/presentation/d/1nOMpxZpdkCcS6Wc-eU8eeBi-z55LyKSJRBCVolJDM78) | [YouTube video](https://www.youtube.com/watch?v=XpJdZrviSuw) | [TeacherTube video](http://www.teachertube.com/video/abstraction-347740)

#### Lecture

[What Is Abstraction?](https://youtu.be/XpJdZrviSuw)

#### Practice with Abstraction

Your teacher may have you do some of the following activities.

* In pairs, play a guessing game, where 1 student draws something in 10 seconds, and the other student tries to guess what it is. After each drawing, discuss what the essential features were that were drawn that helped to guess what it was, and which features of the actual object were left out. The essential features make up the abstraction or abstract drawing for that object.
* In teams, play a few rounds of Fishbowl. Fishbowl (sometimes called Salad Bowl) is a game named by the bowl you put the slips of paper in. After each round, the points are added up and the papers are added back into the fish bowl. Each round lasts until either the papers are out or each member of the team has gone for one minute. Each round will add an extra layer of abstraction for you to get through. Use [these slides](https://docs.google.com/presentation/d/1zK5OtGpiF0TMgyaZFT7Rjhvgv4d5etzHTvjix-fsDnw/) to guide you.
* Go to the [Google scientific calculator](https://www.google.com/search?q=calculator). This is an app that Google programmers have made. The buttons on this calculator are abstractions for the functions that they perform. Identify at least 4 functions that are associated with 4 abstract buttons.

### 2.8.3. Summary

In this lesson, you learned how to:

**Learning Objective DAT-1.A**: Explain how data can be represented using bits.

* Data values can be stored in variables, lists of items, or standalone constants and can be passed as input to (or output from) procedures.
* Abstraction is the process of reducing complexity by focusing on the main idea. By hiding details irrelevant to the question at hand and bringing together related and useful details, abstraction reduces complexity and allows one to focus on the idea.

### 2.8.4. Self-Check

#### Vocabulary

Here is a table of the technical terms we've introduced in this lesson. Hover over the terms to review the definitions.

| <p>abstraction</p><p>abstracting</p><p>constant</p> | <p>variable</p><p>data abstraction</p><p>procedural abstraction</p> |
| --------------------------------------------------- | ------------------------------------------------------------------- |

#### Check Your Understanding

#### Complete the following self-check exercises.

**Q-1**: Complete the following definition: An abstraction is a \_\_\_\_\_\_\_\_\_\_\_\_ representation that stands for some collection of individual instances.

A. artistic

B. specific

C. fixed

D. general

**Q-2**: True or False: One of the main characteristics of an abstraction is that it simplifies a complex phenomenon by leaving out the irrelevant aspects.

A. False

B. True

**Q-3**: Examples of abstraction can be found in which of the following? (Choose all that apply)

A. Computer science

B. Designs

C. Maps

D. Languages

**Q-4**: In Computer Science, the process of abstracting also means: (Choose all that apply)

A. Complicating

B. Complexing

C. Condensing

D. Simplifying

**Q-5**: True or False: Two examples of abstraction in Computer Science are Data Abstraction and Procedural Abstraction.

A. True

B. False

### 2.8.5. Reflection: For Your Portfolio

Answer the following portfolio reflection questions as directed by your instructor. Questions are also available in this [Google Doc](https://docs.google.com/document/d/1N2--kSnPTVPiycwyKYgZgCkLx6W0CjtDTc8FTxn-hqQ/copy), where you may use File > Make a Copy to make your own editable copy.

<br>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://curriculum.thunkable.com/chapter-2/chapter-2.8-what-is-abstraction.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
