1what is thinking abstractly?
Removing unnecessary details and only including the relevant details
2why do we need abstraction?
Reduces the complexity and improves the clarity of what we're trying to convey.
3what is thinking ahead?
Identifying the preconditions of a system, the inputs, outputs and reusable components.
4why is thinking ahead good?
Helps us to:
-Maximise code efficiency
-Minimise errors
5Examples of reusable components?
-Subroutines/procedures
-libraries
-APIs
6Example of how thinking ahead has been implemented?
Caching and prefetching
7what is thinking procedurally
Breaking a problem down into sub problems and identifying order of events
8tools for designing algorithms?
hierarchy charts
Flowcharts
Pseudocode
9what is thinking logically?
Identifying decision points for branching or iteration.
10what is thinking concurrently
Identifying if parts of a problem can be tackled at the same time.
Multitasking
11Advantages of concurrency?
Reduces time needed as the number of tasks completed in a given time is increased
12Disadvantages of concurrency
-May be difficult to program/implement
-Program/problem may not suit concurrency