Section 2 Chapter 11 - Abstraction and Automation Flashcards
The two steps of computational thinking
- Formulate the problem as a computational problem
- Construct an algorithm to solve the problem
Representational abstraction
Representation arrived at by removing unnecessary details
e.g. A simulation of a snooker ball, the London tube map, a flight simulator
First generation language
Machine code
Second generation language
Assembly
Third generation language
Abstract languages starting with BASIC and FORTRAN
Information hiding
Removing all irrelevant details from a problem e.g. the konigsberg bridges problem
Procedural abstraction
Keeping the actual values separate from the overall design. It represents a computational method. (It means abstracting a method of doing something)
Encapsulation
The use of local variables
Functional abstraction
Hiding the method used to complete a task. (The binary search algorithm is a procedural abstraction. A functional abstraction can be arrived at by abstracting the binary search to simply a ‘search algorithm’. It is not relevant how the search is performed.)
Data abstraction
The details of how the data is actually represented is hidden. For instance when using a float you don’t need to know how it is stored.
Decomposition
Breaking down a complex problem into a number of sub problems each with an identifiable task which might itself be further subdivided
Composition
Combining procedures to build compound procedures.
Can also mean combining objects to form compound data
Problem abstraction
Removing details until the problem is possible to solve
Automation
Building and putting models into action to solve problems
Graph unfolding
Rearranging a graph so that easier to see what it means