4.4.1 - ToC (Abstraction and automation) Flashcards
What does Abstraction mean
Removing unnecessary details from a problem, only showing details that are important in context, making a comlex problem simpler
What is the need for abstraction
- It allows for only the most important details of a problem to be shown, espescially for interfaces
What is Representational Abstraction
A representation arrived at by removing unnecessary details
What is Abstraction by Genralisation
a grouping by common
characteristics to arrive at a hierarchical
relationship of the ‘is a kind of’ type.
What happens as you go up a abstraction generalisation hierarchy
- You generalise chracteristics
What happens as you go down a abstraction generalisation hierarchy
- You specialise chracteristics
How is Abstraction by Generalisation applied in OOP
By the use of Inheritance
What is Information Hiding
The process of hiding all of the details of an object that do not contribute to its essential characteristics
How is information hidiing used practically
Most systems hide their complexity behind an interface as it provides abstraction of what lies behind, like in an OS which uses a GUI that allows the user to interact with the computer system without any knowledge of its work around
What is the advantage of Information hiding and Interfaces
1 - Interfaces using information hiding allows the machine to be changed or upgraded without the need to modify the interface
What is Procedural Abstraction
The result of abstracting away the actual values used in any particular computation which creates procedure
What is Functional Abstraction
Abstraction with disreagard to the computational method which creates a function
What are the only three requiremnts for a function
the number, order and type of inputs to get the results
What is the key distinction between Functional and Procedural Programming
In functional the particular computational method is hidden
What is meant by data abstraction
a methodology that enables
us to isolate how a compound data object is
used from the details of how it is constructed.
What are the benfits of data abstraction
It allows us to not only make more complex data types and structure but therefore also use OOP to program
What is meant by problem abstraction/reduction
where details from a problem 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 meant by (Procedural Decomposition)
breaking a problem into a number of subproblems, so that each sub-problem
accomplishes an identifiable task, which might
itself be further subdivided.
What are the 2 main approaches for Decomposition
- Top-down approach
- Divide and Conquer
What is the essence of composition
The process of combining pre-existing components of a problem that are already proven to work
What is meant by automation
The process of taking a model and implementing a solution to solve a problem
What are the 4 steps to complete an automation
- Create the algorithm
- Implement the algorithm in program code
- implement the models in data structures
- excecuting the code
What is the point of automation
- It helps build clean abstract modlels of real world phenomena
- It helps determine the minimum and most effiecient amount of detail needed to solve a problem