Algorithm Design And Problem-solving
Algorithms
Candidates should be able to:
1. Understand the program development life cycle, limited to: analysis, design, coding and testing
Including identifying each stage and performing these tasks for each stage:
analysis: abstraction, decomposition of the problem, identification of the problem and requirements
design: decomposition, structure diagrams, flowcharts, pseudocode
coding: writing program code and iterative testing
testing: testing program code with the use of test data
2. - Understand that every computer system is made up of sub-systems, which are made up of further sub-systems
Understand how a problem can be decomposed into its component parts
Use different methods to design and construct a solution to a problem
Including:
inputs
processes
outputs
storage
Including:
structure diagrams
flowcharts
pseudocode
3. Explain the purpose of a given algorithm
Including:
stating the purpose of an algorithm
describing the processes involved in an
algorithm
4. Understand standard methods of solution
Limited to:
linear search
bubble sort
totalling
counting
finding maximum, minimum and average values
5. - Understand the need for validation checks to be made on input data and the different types of validation check
Understand the need for verification checks to be made on input data and the different types of verification check
Including:
range check
length check
type check
presence check
format check
check digit
the purpose of each validation check and writing algorithms to implement each validation check
Including:
visual check
double entry check
6. Suggest and apply suitable test data
Limited to:
normal
abnormal
extreme
boundary
Extreme data is the largest/smallest acceptable value
Boundary data is the largest/smallest acceptable value and the corresponding smallest/largest rejected value
7. Complete a trace table to document a dry-run of an algorithm
Including, at each step in an algorithm:
variables
outputs
user prompts
8. Identify errors in given algorithms and suggest ways of correcting these errors
Asymmetric encryption includes the use of public and private keys
9. Write and amend algorithms for given problems or scenarios, using: pseudocode, program code and flowcharts
Precision is required when writing algorithms, e.g. x > y is acceptable but x is greater than y is not acceptable
pseudocode
flowcharts