Candidates should be able to:

2.1.1 Problem-solving and design

show understanding that every computer system is made up of sub-systems, which in turn are made up of further sub-systems

use top-down design, structure diagrams, flowcharts, pseudocode, library routines and subroutines

work out the purpose of a given algorithm

explain standard methods of solution

suggest and apply suitable test data

understand the need for validation and verification checks to be made on input data (validation could include range checks, length checks, type checks and check digits)

use trace tables to find the value of variables at each step in an algorithm • identify errors in given algorithms and suggest ways of removing these errors

produce an algorithm for a given problem (either in the form of pseudocode or flowchart)

comment on the effectiveness of a given solution

2.1.2 Pseudocode and flowcharts

understand and use pseudocode for assignment, using ← • understand and use pseudocode, using the following conditional statements: IF … THEN … ELSE … ENDIF CASE … OF … OTHERWISE … ENDCASE

understand and use pseudocode, using the following loop structures: FOR … TO … NEXT REPEAT … UNTIL WHILE … DO … ENDWHILE

understand and use pseudocode, using the following commands and statements: INPUT and OUTPUT (e.g. READ and PRINT) totalling (e.g. Sum ← Sum + Number) counting (e.g. Count ← Count + 1)

understand and use standard flowchart symbols to represent the above statements, commands and structures

(Candidates are advised to try out solutions to a variety of different problems on a computer using a language of their choice; no particular programming language will be assumed in this syllabus.)

### 2.1.2 Pseudocode and flowcharts

By the end of this sub-unit, you should be able to:

• understand and use pseudocode for assignment, using ←
• understand and use pseudocode, using the following conditional statements: IF … THEN … ELSE … ENDIF CASE … OF … OTHERWISE … ENDCASE
• understand and use pseudocode, using the following loop structures: FOR … TO … NEXT REPEAT … UNTIL WHILE … DO … ENDWHILE
• understand and use pseudocode, using the following commands and statements: INPUT and OUTPUT (e.g. READ and PRINT) totalling (e.g. Sum ← Sum + Number) counting (e.g. Count ← Count + 1)
• understand and use standard flowchart symbols to represent the above statements, commands and structures
(Candidates are advised to try out solutions to a variety of different problems on a computer using a language of their choice; no particular programming language will be assumed in this syllabus.)

### 2.1.1 Problem solving

By the end of this sub-unit, you should be able to:

• show understanding that every computer system is made up of sub-systems, which in turn are made up of further sub-systems
• use top-down design, structure diagrams, flowcharts, pseudocode, library routines and subroutines
• work out the purpose of a given algorithm
• explain standard methods of solution
• suggest and apply suitable test data
• understand the need for validation and verification checks to be made on input data (validation could include range checks, length checks, type checks and check digits)
• use trace tables to find the value of variables at each step in an algorithm
• identify errors in given algorithms and suggest ways of removing these errors
• produce an algorithm for a given problem (either in the form of pseudocode or flowchart)
• comment on the effectiveness of a given solution