Programming

Algorithms

Candidates should be able to:
  • understand algorithms (written in pseudocode or flow diagram), explain what they do, and correct or complete them
  • produce algorithms in pseudocode or flow diagrams to solve problems.

Programming Languages

Candidates should be able to:
  • explain the difference between high level code and machine code
  • explain the need for translators to convert high level code to machine code
  • describe the characteristics of an assembler, a compiler and an interpreter
  • describe common tools and facilities available in an integrated development environment (IDE): editors, error diagnostics, run-time environment, translators, auto-documentation.

Control flow in imperative languages

Candidates should be able to:
  • understand and use sequence in an algorithm
  • understand and use selection in an algorithm (IF and CASE statements)
  • understand and use iteration in an algorithm (FOR, WHILE and REPEAT loops).

Handling Data in Algorithms

Candidates should be able to:
  • define the terms variable and constant as used in an imperative language
  • use variables and constants
  • describe the data types integer, real, Boolean, character and string
  • select and justify appropriate data types for a given program
  • perform common operations on numeric and Boolean data
  • use one-dimensional arrays.

Testing

Candidates should be able to:
  • describe syntax errors and logic errors which may occur while developing a program
  • understand and identify syntax and logic errors
  • select and justify test data for a program, stating the expected outcome of each test.

Revision Extras