Problem solving Flashcards
What is top down design/stepwise refinement?
- It’s used to plan solutions based on a top down strategy, problems are broken down into smaller steps, which are broken into even smaller steps,
- Smaller steps are easier to understand and solve.
What are the advantages to using top down design?
- Breaking down the problem helps to show exactly what needs to be achieved
- The refinement makes it easier to solve
- Parts of the solution can be reusable
- Breaking it into different parts means multiple people can work on it
What is an algorithm?
A set of instructions, that when followed complete a task
What are hand trace algorithms?
A form of dry run testing where a program is tested and the variables are recorded.
What is abstraction?
Abstraction is the removing of unnecessary details
What is procedural abstraction?
- When large programs are written by breaking them down into smaller subprograms called procedures.
- The computational method used is not hidden (though it can be used by the operator without an understanding of its process)
What is information hiding?
- Hiding complexity from the customer by hiding details of the implementation of software components
What is functional abstraction?
- The computational method used is hidden.
- Built in/library functions are examples of functional abstraction
- The user calls the function name and a values is returned but they have no knowledge of the internal code within the function
What is data abstraction and give an example of this?
- Where the details of how a compound data object is constructed are isolated from how the data is used
- The primitive data objects that make up a user-defined structure are hidden from the user.
- User-defined data structures, such as records are an example.
What is problem abstraction/reduction?
- Where the details of the problem are removed/reduced, until the problem is represented in a way that is straightforward to solve.
- It might show that this problem has already been solved or has a similar solution
What is decomposition?
The process of breaking down a problem into smaller problems so it’s easier to understand and solve
What is composition?
The process of creating a system by combining tasks identified in the decomposition stage
What is the automation process?
Creation of algorithms
Implementing them in program code
Implementing the models in data structures
Executing the code
What are the steps of composition?
- writing procedures for each of the tasks identified in the decomposition
- Linking these procedures to create compound procedures
- Creating the necessary data structures to support the compound procedures