# 03 - Procedural, Functional, Data, Problem Abstrac

1. ____________________ abstraction is the art of visualising methods by abstracting actual values of variables.

Recursive

Procedural

Data

Functional

2. _______________ abstraction is the abstraction of particular computational methods by hiding them from the rest of the solution.

Procedural

Data

Recursive

Functional

3. _______________ abstraction is the next level of abstraction and is where the data type is independent of its method and how the action is performed.

Procedural

Functional

Recursive

Data

4. This is an example of __________ abstraction.
```When creating a recursive subroutine to calculate the
Fibonacci sequence, it is not necessary for you to
worry about the actual values.

You can abstract them away and just use variables to hold
them. This means that the values can change and the subroutine
will still continue to function.

The only value that you would need to consider however, is an
exit condition.```

Procedural

Data

Functional

Recursive

5. It is possible in Procedural but not in functional abstraction to use dummy subroutines that return an arbitrary value of the correct data type.

TRUE

FALSE

6. The purpose of ___________ abstraction is to describe what methods are provided to perform computation while hiding the details of how the computation is performed.

Procedural

Data

Functional

Recursive

7. In an OOP program you can have a method that will perform an update on a class such as simulate a change in state of health, but not show how the action was done. This is _______________ abstraction.

Data

Functional

Procedural

Recursive

8. If you had a class that stored information about a customer you would need a routine that retrieved information from that class, called a getter method. Read the excerpt and complete the blanks.
`In this example it would not matter how the data was being implemented (e.g. tree, graph, array) as it is irrelevant. As long as the information in the class is returned, the function will continue to work. This is an example of ____________ abstraction. `

Recursive

Functional

Data

Procedural

9. In ____________ abstraction, methods are used to capture the procedural patterns, abstracting over behaviour. For example, in Java, you could write something like
```public void printFibonacci(int n){
//your code to print Fibonacci numbers
}```

Recursive

Functional

Data

Procedural

10. A data abstraction is a mental model of what can be done to a collection of data. It deliberately excludes details of ____________

how to do it

what the data is

abstraction

what can be done