Unit A453: Programming project

3.2 Designing a coded solution to a problem

Analyse the problem

  • develop suitable algorithms
  • design suitable input and output formats
  • identify suitable variables and structures
  • identify test procedures.

Candidates should be able to:

  1. analyse and identify the requirements for a solution to the problem
  2. design suitable algorithms to represent the solution to a problem
  3. design suitable input and output formats and navigation methods for their system
  4. identify the data requirements for their system
  5. identify suitable variables and structures with appropriate validation for their system
  6. identify test procedures to be used during and after development to check their system against the success criteria.


Design (0 - 9 marks) - Each task is equally weighted.

1-3 marks 4-6 marks 7-9 marks
There will be vague comments on what the task involves and a limited outline describing the intended approach to some parts of the problem. There will be a brief analysis of the tasks indicating what is required for each of the tasks,

There will be a detailed analysis of what is required for these tasks justifying their approach to the solution.
  There will be a set of basic algorithms outlining a solution to most parts of the problem. There will be a full set of detailed algorithms representing a solution to each part of the problem.
There will be brief comments on how this might be tested but with no mention of success criteria. There will be some discussion of how this will be tested and how this compares to the identified outcomes in the tasks.
There will be detailed discussion of testing and success criteria.
  There will be discussion of the variables to be used and some general discussion of validation. The variables and structures will be identified together with any validation required.

0 = no response or responses not worthy of credit.

Support:

The analysis of each task is very important.  Breaking each task down into sub-tasks has several advantages:

  • The success criteria for each sub-task can be easier to identify.
  • Creating the algorithm for a sub-task can be a lot easier than trying to create an overall algorithm.
  • Showing the development stages can be easier as there will be distinct points in the overall task where a sub-task has been completed and tested. This code can then be tested, annotated and printed out.
  • The final evaluation becomes much easier, allowing the student to evaluate their final solution against each sub-task success criteria.

Testing is clearly very important in the mark scheme, gaining marks in this section, the development section and in the final testing and evaluation section. Getting the testing criteria right in this section will make the latter two sections much easier to complete. Some of the points students will need to consider are:

  • Having a clear test plan that is systematic, and that clearly states what is being tested, why and the expected outcome.
  • Making a clear distinction between the testing they will do as the program develops, and the final testing of the overall solution.
  • Making sure the testing is linked to the success criteria will make the final evaluation easier.
  • Since consideration or actual validation of inputs gains marks, validation rule testing is obviously important.

Since meaningful variable names and well organised code also gain high marks in the development stage, students should be encouraged to consider both of these in their planning.