Chapter 17 – Abstraction and automation

AQA A level Computer Science
Teaching and Learning Resources
Chapter 17 – Abstraction and automation
TASK QUESTIONS (WITH ANSWERS)
1
From the following facts, use logical reasoning to determine further facts that you know to
be true:
a)
every cat eats mice
b)
some animals that eat mice are fat
c)
all mice carry diseases
d)
mice can run fast.
Cats are able to catch mice
Cats are not necessarily fat
Some cats are fat.
Cats can run fast.
2
You are asked to work out the timetable for all the students in the sixth form.
a)
What factors do you need to take into account in order to solve this problem?
The number of students, the number of teachers, how many students have selected
each subject, how many teachers there are for that subject, how many students there
can be in one group, what combination of subjects each student has taken, how long
lessons last, what rooms are available.
b)
Give an example of representational abstraction and abstraction by
category/generalisation in this scenario.
An example of representational abstraction would be to look at the problem from the
human perspective. In this case what we need appears quite simple: put students into
classes, allocate a teacher and a room.
An example of abstraction by category would be to look at the main groups or entities
in the problem: Students, teachers, subjects and rooms.
c)
Explain how you might decompose the problem.
You would then need to break each of these down into ever smaller units. For
example, with students you could then look at their individual choices, how many
hours a week they are in lessons. For teachers, you could look at what they teach, how
many hours they have each week. For subjects, you can look at how many students
have opted for that choice, and what teachers are available to teach it.
3
Define the following terms:
a)
Procedural abstraction
Procedural abstraction is the concept that all solutions can be broken down into a
series of procedures or subroutines.
AQA A level Computer Science
© Hodder & Stoughton Limited 2015
AQA A level Computer Science
Teaching and Learning Resources
b)
c)
d)
Functional abstraction
Similar to procedural abstraction, functional abstraction focuses on common functions
that can be used to solve problems.
Data abstraction
Data abstraction is the process of organising and structuring data in a way that
effectively hides the complexity of the data.
Problem abstraction
Problem abstraction is the process of reducing a problem down to its simplest
components until you find a way of solving it.
4
Define information hiding and give an example of where it might be used.
Information hiding is similar to the concept of data abstraction, where the complexity of
how a system works and how data is stored are hidden. The Satnav example shows how
complex data requirements are hidden from the user who is simply presented with a list of
directions.
5
Create a specification for a model to simulate any or all of the following scenarios:
a)
the likelihood of a particular team winning a competition
b)
the speed at which a concert hall could be evacuated in the event of a fire alarm
c)
how many people and households there will be in the UK in 2050.
You could approach this in a number of ways, but you need to think about what the main
factors are that define the problem and how these can be broken down using abstraction to
enable you to create a solution. For example, with part a) you could look at who the team
members are and what their performance has been recently, how the team performed last
year, their current form; where the games are being played, what other competitions the
team is taking part in that might affect their performance, availability of key players, how
many games they play at home or away, their record against other teams, the sequence in
which the games take place, and so on.
AQA A level Computer Science
© Hodder & Stoughton Limited 2015