211-thinking-abstractly-elements-of-computational-thinking Flashcards
Abstraction
Process of separating ideas from particular instances/reality.
It simplifies problem by removing unnecessary detail (such as underlying implementation) to focus on the main purpose and relevant parts important to the problem, can be separating the logical and physical aspects
Abstraction benefits
- Computational resources: processing, memory, time requirements -> - lower spec computers
- no detracts -> higher quality focus
- omit non contributes -> development time
- reduce programming complexity -> easier problem solving
Thinking abstractly
- level of expertise?
- What details are irrelevant?
- analysing what is relevant in a given scenario and simplifying a problem based on the info into one thats already solved(representational) or grouping similarities within a problem under a certain category (genereralisation) to devise a common solution
Modelling and simulation in abstraction
Devising a model that represents the reality
real world object or phenomenon model to solve particular problem. E.g climate change consequence of … model
difference between abstraction and real
removal of irrelevant and complex features
may not be to scale
-representation of reality using symbols to show real-life features
data abstraction
details of how data is stored/constructed is hidden
programmers make use of abstract data structures e.g stacks without concerning about how theyre implemented
can use functions like push without knowing the code/how its done
Levels of abstraction
highest levels of abstraction, closest to user, interface for user to interact with
- low levels responsible for the actual tasks execution
the higher the level, the less detail needed