# 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.

Data

Procedural

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.

Data

Functional

Procedural

Recursive

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

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

Recursive

Functional

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.

FALSE

TRUE

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.

Data

Procedural

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.

Functional

Procedural

Data

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. `

Functional

Procedural

Recursive

Data

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
}```

Procedural

Recursive

Data

Functional

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

abstraction

how to do it

what the data is

what can be done