Unit 7 · Algorithm design and problem-solving
7 Algorithm design and problem-solving
By the end of this section you should be able to
- 7.1 Describe the program development life cycle: analysis, design, coding and testing
- 7.2 Understand systems and sub-systems, and decompose a problem into inputs, processes, outputs and storage
- 7.3 Explain the purpose of a given algorithm
- 7.4 Understand standard methods: linear search, bubble sort, totalling, counting, maximum, minimum and average
- 7.5 Explain the need for validation and verification checks
- 7.6 Suggest and apply normal, abnormal, extreme and boundary test data
- 7.7 Complete a trace table to dry-run an algorithm
- 7.8 Identify errors in algorithms and suggest corrections
- 7.9 Write and amend algorithms using pseudocode, program code and flowcharts
Lessons
Key vocabulary
- Abstraction
- Removing unnecessary detail so you can focus on what matters.
- Decomposition
- Breaking a problem down into smaller parts.
- Structure diagram
- A diagram showing how a system is broken down into sub-systems.
- Pseudocode
- A way of writing algorithms using keywords and structure, not tied to a language.
- Linear search
- Checks each item in a list in turn until the target is found.
- Bubble sort
- Repeatedly compares and swaps adjacent items until the list is in order.
- Validation
- An automatic check that input data is sensible and reasonable.
- Verification
- A check that data has been copied or entered accurately, e.g. double entry.
- Range check
- Checks that a value lies between a lower and an upper limit.
- Boundary data
- The largest or smallest accepted value and the value just outside it.
- Trace table
- A table used to record the values of variables during a dry run.