KS3 Computing/Data Abstraction

Computer systems are built to solve problems. The previous chapter described the de-composition of a problem as an essential step towards its solution. This process results in smaller sub-problems. Each of these smaller problems has to be de-composed and defined algorithmically. Leading to the question below: How can each problem be described, so that the computer can understand it?

[IMAGE TO BE INSERTED HERE]

One - imperative or procedural - approach of thinking like a computer scientist, or algorithmically, is to define a problem in terms of its data requirements. Consider the definition of a data processing system:

[IMAGE TO BE INSERTED HERE}

In line with the above definition, it is possible to approach computational problem solving in terms of data: the identification of input and output data and the development of processes which manipulate the input data, in such a way that the output data can be produced.

Data Abstraction Exercises
In the previous chapter, you de-composed problems into its sub-problems. Now, you need to identify the required data for each of the sub-problems.

Examples

 * In an air traffic control system, one sub-problem would be to prevent planes from flying into each others paths. The required data for this sub-problem would include: the current position of each plane, the direction of movement and the speed of each of the planes.
 * In a computer gaming system, one sub-problem would be to add to the score when the player has achieved an objective. The required data for this sub-problem would include: a signal to mark when an objective has been achieved and the current score.

Exercise 1
What are the data requirements for the problem of getting dressed? One data requirement would be the contents of your wardrobe... what are the others?

Exercise 2
What are the data requirements for the problem of cooking dinner? One data requirement would be the content of your fridge... what are the others?

Exercise 3
What are the data requirements for the problem a simple banking system, which allows users to open accounts, close accounts and track money spent and money deposited into the account. One data requirement would be the name of the account holder... what are the others?

Exercise 4
Consider your favourite game. What are the data requirements of for this system?

Exercise 5
Can you think of an app that you would like to create? Describe the app and identify at least 5 sub-components of the app. Produce a structure diagram. (You may have already completed these tasks). Now identify the data requirements.

Data Abstraction Summary
Computational thinking requires the identification of data to solve a given problem. The data describes the problem in computational terms. The solution to a given problem can be found by identifying the processes which will manipulate the input data with the aim to achieve the results, which will be presented as the output data.

Data Requirements Further Study
The use of data within a system can expressed as data flow diagrams. Research this technique and produce one such diagram for each of the problems above. Find out about Object Oriented Programming (OOP) and summarise the method. Produce an OOP design for each of the problems above.