2.1 Algorithms Flashcards
What is abstraction? (2)
Separating ideas (1) from reality (1) Using only relevant detail (1) eg using symbols to show real life (1)
Why do we need abstraction? (2)
Computers can only use binary (1) so all information must be abstracted into a quantitative form (1)
What is a precondition? (2)
A state or form data needs to be in (1) in order to be processed by a function (1) eg a variable may need to be an integer to be multiplied.
What is caching? (2)
Data that has been used is stored in cache / ram (1) so it is quicker to use again (1)
What are the downsides of caching? (2)
It requires space in memory (1) that could be used for other things (1)
What are the benefits of reusable programming components? (2)
The code can be used in multiple places in the program (1) the code can be split into small components (1) the components can be edited and tested independently (1) the components can be used in future projects (1)
What is concurrent processing? (3)
Multiple processes being executed at the same time or appearing to execute at the same time (1) giving processes a slice of processor time (1) having multiple processors each carrying out a different process (1)
What are the benefits of concurrent processing? (2)
Multiple users could use a processor at the same time (1) multiple tasks can be completed simoultaneously (1)
What are the drawbacks of concurrent processing? (2)
There may be collisions where two processes try to edit the same data at the same time (1) Individual tasks may be completed more slowly(1)
Benefits of abstraction (4)
Reduced development time (1) as factors can detract from the program are ignored (1). Reduces complexity of code (1) so it can run on lower spec computers (1)
Benefits of visualisation (2)
Visualisations benefit humans rather than computers (1). Visualisations present the information in a simpler form to understand (1). Visualisations can best explain complex situations (1).
Reasons why abstraction is needed (2)
Reduce processing/memory requirements (1). Simplify programming (1).
Explain and evaluate the use of decomposition (9)
Splits problem into sub-problems (1) until each problem can be solved (1). Allows the use of divide and conquer (1). Increase speed of production (1), assign areas to specialties (1), allows use of pre-existing modules (1) and re-use of new modules (1), can ensure subprograms can interact correctly (1).
Adavantages of using reusable components (4)
Modules are tested (1) so more reliable programs (1). Less development time (1) as programs can be shorter (1) and modules can be shared (1)
Caching AO1 for 9 markers
Caching is when previously used data is stored in a location (1) that can be accessed quickly (1) to speed up retrieval if needed in the future (1)