2.1.1 Thinking Abstractly Flashcards
Abstraction
Abstraction : Process of Removing unnecessary detail from a problem to focus on the core aspects which simplifies it (Decreases complexity).
- Only show relevant detail so less components to detract from main problem.
- Used to represent reality with symbols and shapes - many features in reality not needed in abstraction
- Too much abstraction can detract from appeal of program
e.g. Exclude features such as scenery, Not to scale, No sound, Only show what is relevant,
Focus on, Simplify and remove
Abstraction by generalisation : Group different sections of problem with similar underlying functionality - reusable code that saves time.
Abstraction Advantages
Advantages :
- Decreased Complexity of programming and design and execution.
- Reduced computational resources (Memory and processing) due to decreased complexity.
- More likely to solve problem - Unnecessary aspects won’t detract from main program.
- Simplifies problem and allows programmers to focus on core aspects making it easier to solve
- Reduced development time - Ignore factors not relevant to main program.