Introduction to abstraction
What is abstraction?
Abstraction in Computer Science is the process of removing irrelevant data, so that only the data required to solve the problem is stored and processed.
Why do we need abstraction?
The real world contains an infinitely large amount of information, which means that in any system that develop we have to careful to focus on the information required. Otherwise we would end up with system that would be almost impossible to code or maintain and with data storage requirements far beyond the capacity of the system.
How do we abstract problems?
We approach abstraction in Computer Science in a different way for each project but in general terms it is a good idea to start with the end output – What do you want the end output of your program to be?
From there you can work backwards – What processes need to take place in order to that output to be generated? What decisions will your system need to make along the way?
What data will the system need to in order to make that decision?
Using the answer to this question will allow you to work out what data will need to be stored, for how long (does it need to be stored persistently in a data base/file system or can the data be discarded once processed?) and where.
Finally this will give you an idea of how data might be input into the system(either manually or by the use of sensors) and the level of detail to which the data needs to be stored.
Using all of this you can be up models to represent how the abstracted data will look, for example using an Entity Relationship Diagram to model the database structure, or using a structure chart to model the flow of data around a program .
Example 1 – School Dinners payment system
Example 2 – First Person Shooter Game
Activity – Class Test Scores System