A-level Computing/AQA/Paper 1/Theory of computation/Abstraction

Abstraction

 * representational abstraction is a representation arrived at by removing unnecessary details
 * abstraction by generalisation or categorisation is a grouping by common characteristics to arrive at a hierarchical relationship of the 'is a kind of' type.

Information Hiding

 * The process of hiding all details of an object that do not contribute to its essential characteristics.

Procedural Abstraction

 * The result of abstracting away the actual values used in any particular computation is a computational pattern or computational method – a procedure.

Algorithm to calculate square of a number Procedure sqr(int: number)
 * Input number
 * Print sqr(5)

Calculate number ** 2 

End Procedure

Text in bold is the result of a procedural abstraction which is the procedure itself without the actual value of number in this case.

Functional Abstraction

 * The result of a procedural abstraction is a procedure, not a function. To get a function requires yet another abstraction, which disregards the particular computation method and this is a functional abstraction.

Data Abstraction

 * Data abstraction is a methodology that enables us to isolate how a compound data object is used from the details of how it is constructed. For example, a stack could be implemented as an array and a pointer for top of stack.

Problem Abstraction/Reduction

 * Details are removed until the problem is represented in a way that is possible to solve because the problem reduces to one that has already been solved.

What is abstraction? This is the process of creating a generic model or template by grouping common characteristics and removing unnecessary details.

What is Information Hiding? This is the process of hiding all details of an object that do not contribute to its essential characteristics.