2.1.1 Thinking Abstractly Flashcards
Abstraction Types Pros and Cons of Abstraction Computational Thinking
What is computational thinking?
an ability to think logically about a problem and apply techniques for solving it
formulating a problem in a way that it can be solved computationally
What are the techniques used in computational thinking?
Decomposition
Abstraction
Problem/Pattern Recognition
What is abstraction?
Model of a complex system that includes only the fundamentals to providing a solution to a problem.
Why do we need abstraction?
Makes it easier to solve the problem by creating a clearer view. Also the solution becomes easier to maintain, modify and view as people are not distracted by excessive details.
What is an example of abstraction? - computing example
High Level Programming Languages - removes need to know where variables are stored and other implementation. Overall less time consuming and easier.
What are the 4 specific types of abstraction I have to know?
Procedural
Functional
Data
Problem
What is procedural abstraction? Give an example
Act of removing the actual values used in particular computation and leaving the procedure.
(a + b) x c
What does procedural abstraction require in programming?
Knowledge of arguments to be passed onto procedure.
This means order data type and name
What is functional abstraction? give an example
The act of disregarding the method and focusing only on values/results. (this means inputs and outputs)
Black Box Testing
What is an input?
Information relevant and necessary for problem to be solved
What is an output?
Solution/result to a problem
What is data abstraction?
details of data types and implementation of data are hidden. The only thing necessary is how to get and use data.
What does data abstraction mean for the client?
the client code doesn’t need to be changed
Another name for problem abstraction?
problem reduction
What is problem reduction/abstraction?
The act of breaking down a complicated problem so that it becomes represented in a way that makes it easier to solve. - (often reduces it to a similar problem that already has a solution)