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

  1. The program development life cycle
  2. Algorithms, flowcharts and pseudocode
  3. Totalling, counting, max, min, average and linear search
  4. Bubble sort
  5. Validation and verification
  6. Test data and errors
  7. Trace tables
  8. Writing and amending algorithms

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.
Loading Bits of Bytes…