1/22
Looks like no tags are added yet.
What is abstraction?
The process of removing detail from a problem to make it easier to approach, understand or solve.
What is data abstraction?
Where the details of how data is stored are hidden from the user.
What is a classic example of abstraction?
The London Underground map.
How does abstraction relate to the writing of code?
High-level languages are an abstraction of low-level languages, because high-level languages' syntax encompasses many lines of a low-level language into one line of code which is easier to remember and understand.
What is thinking procedurally?
The process of thinking of a large piece of code in terms of procedures.
How does thinking procedurally relate to abstraction?
Programmers work with a procedure interface rather than the actual code of the procedure. They do not need to fully understand the procedure's code to use it.
What is a procedure interface?
The format in which inputs and outputs are sent and received from a procedure, as well as the name of the procedure.
What is decomposition?
Where a large task is broken down into smaller tasks which are individually solved.
How does decomposition relate to thinking procedurally?
A program is broken down into procedures, which are individually written.
What are the benefits of using procedures? (3)
- Code becomes more maintainable, as the procedure causing an issue can be identified and focused on.
- Easier for team members to work on code together, as they do not need to understand how the procedures work, and can be assigned to work on different procedures.
- Code is reusable so time is saved as code does not need to be rewritten.
What is pattern recognition?
The process of recognising that a problem is a variation of one that has already been solved.
How can pattern recognition be used when a team starts a project?
The team can recognise where they have written code which would be appropriate for the project, and reuse that code, making small tweaks if necessary.
What is divide and conquer?
The process of breaking down a problem into smaller parts, solving these individually, and piecing them together for the solution.
What are the key examples of divide and conquer algorithms? (3)
- Merge Sort
- Quick Sort
- Binary Search
What is thinking logically?
Understanding the flow of a program and the boolean operations that are a part of it.
What are the components that control the flow of a program? (3)
- Sequence
- Selection
- Iteration
What is problem recognition?
The process of recognising where a problem is occurring, the cause of the problem, and conceptualising a solution to the problem.
When is a problem classed as 'solvable'?
If every instance of it can be solved within a limited number of instructions.
What is problem solving?
The process of creating an algorithm which will consistently produce the solution to a problem.
What is thinking concurrently?
Understanding potential issues that may arise if two operations attempt to take place at the same time.
How is thinking concurrently used in databases?
Record locking protects any records which are needed by a specific transaction from being accessed by other transactions.
What is thinking ahead?
Thinking about issues which may arise in a solution and how to handle them in the best way possible, as well as thinking about the future needs of a user.
What is an example of thinking ahead relating to operating systems?
Caching; the operating system predicts which resources will be needed in the near future, and caches them for future use.