OCR Unit A453: Programming Project

Controlled assessment: 30% of the total GCSE – 45 marks

The marks are broken down as follows:

  • Programming Techniques – 18 marks
  • Use of programming techniques – 6 marks
  • Efficient use of programming techniques – 12 marks
  • Design – 9 marks
  • Development – 9 marks
  • Testing and evaluation – 9 marks

Duration: Approx 20 hours

Programming tasks set by OCR that enable candidates to design, develop and test a solution to a problem.

  • OCR will issue a range of practical assessment tasks each consisting of up to three sub-tasks.
  • Students will need to create suitable algorithms which will provide a solution to the stated problem then code their solutions in a suitable programming language.
  • The solutions must be tested at each stage to ensure they solve the stated problem using a suitable test plan with appropriate test data. The code must be suitably annotated to describe the process. Test results should be annotated to show how these relate to the code, the test plan and the original problem.
  • Students will need to provide an evaluation of their solution based on the test evidence.

This controlled assessment is to be taken under Medium Control meaning students must complete all work, with the exception of research, under informal supervision. Informal supervision means that the teacher must be able to authenticate the work as the students’ own unaided work.

A candidate can re-take a controlled assessment but any work that has been previously assessed cannot be returned to the candidate and, along with moderated work returned to centres, should be destroyed. Candidates may re-use any controlled assessment group research work but must completely redo the individual activity part of the assessment.

The current sets of A453 assessment tasks can be downloaded by logging onto OCR Interchange.


Unit A453 3.1: Standard Programming Techniques

Candidates should be able to:

  • identify and use variables, operators, inputs, outputs and assignments
    understand and use the three basic programming constructs used to control the flow of a program: Sequence; Conditionals; Iteration
  • understand and use suitable loops including count and condition controlled loops
  • use different types of data including Boolean, String, Integer and Real appropriately in solutions to problems
  • understand and use basic string manipulation
  • understand and use basic file handling operations: open, read, write and close
  • define and use arrays as appropriate when solving problems.

Programming Techniques (0 – 18 marks)

Each task is equally weighted.

1-2 marks 3-4 marks 5-6 marks
Use of programming techniques There is an attempt to solve parts of the tasks using few of the techniques identified. There is an attempt at most parts of the tasks using several techniques. There is an attempt to solve all of the tasks using most of the techniques listed.
1-4 marks 5-8 marks 9-12 marks
Efficient use of programming techniques The techniques used produce partially working solutions to a small part of the problem. The techniques will be used appropriately giving working solutions to most of the parts of the problem. Some sections of the solution will be inefficiently coded. The techniques are used appropriately in all cases giving an efficient, working solution for all parts of the problem.


Unit A453 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:

  • analyse and identify the requirements for a solution to the problem
  • design suitable algorithms to represent the solution to a problem
  • design suitable input and output formats and navigation methods for their system
  • identify the data requirements for their system
  • identify suitable variables and structures with appropriate validation for their system
  • 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 are comments on what the task involves and a limited outline describing the intended approach to some parts of the problem. There is a brief analysis of the tasks indicating what is required for each of the tasks. There is a detailed analysis of what is required for these tasks justifying their approach to the solution.
There is a set of basic algorithms outlining a solution to most parts of the problem. There is a full set of detailed algorithms representing a solution to each part of the problem.
There are brief comments on how this might be tested but with no mention of success criteria. There is some discussion of how this will be tested and how this compares to the identified outcomes in the tasks. There is detailed discussion of testing and success criteria.
There is 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.

Student support

The design stage is easily overlooked by students keen to start writing program code. It is however crucial to gaining high marks, both in the design section itself, and in the other sections.

The analysis of each of the three tasks is very important. The requirements for a successful outcome (the success criteria) should be clearly stated as the final testing and evaluation both relate to this. The software choice should be justified, as well as considerations such as whether to use a text or graphical interface and the format to be used for any ‘data’ files needed.

Breaking each of the three tasks down into sub-tasks is a key skill and has several advantages:

  • The success criteria for each sub-task can be easier to identify.
  • Creating the algorithm for a sub-task will 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.

Writing algorithms

It is easy for students who have not practised this to loose marks. They tend to either start writing detailed program code or write such general statements that it is difficult to see how they actually intend to approach/solve the problem.

The key is again to break each task down, then for each sub-task:

  • clearly explain what the algorithm for that sub-task will do;
  • explain how the section of algorithm will fit into the whole program (will it be a ‘sub-routine’ or is it setting up initial values for example);
  • write the algorithm (in pseudo-code or as a flow diagram) for that sub-task;
  • identify the variables and program structures that the algorithm will use.

Testing

This is clearly very important in the mark scheme, gaining marks in this section, the development section and in the final testing and evaluation section. Outlining the testing at the design stage 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 final testing is linked to the success criteria will make the final evaluation easier;
  • Since consideration of validation of inputs gains marks at this stage, rule testing of any actual validation is obviously important and often relatively easy with normal, extreme and erroneous data.

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 designs.

Variables

  • Students should be able to use their algorithms to decide on the key variables they will need. For each variable they identify they should be able to explain how it will be used and justify if a number (integer or real), string or Boolean variable is needed. If an array variable is needed than they should be able to explain how it will be used and justify and discuss the array index needed.

Program structures

  • Over the three task students are expected to show that they can use sequence, conditionals and iteration (including count and condition controlled loops). It is therefore useful to have some form of check list so they can check all these have been used at least once.
  • Other program structures to consider include the use of subroutines/procedures/functions if these are supported by the chosen programming language.

Unit A453 3.3: Development

Create a coded solution

  • fully annotate the developed code to explain its function.

Candidates should be able to:

  • develop a solution to the identified problem using a suitable programming language
  • demonstrate testing and refinement of the code during development
  • explain the solution using suitable annotation and evidence of development.

Development (0 – 9 marks)

Each task is equally weighted

1-3 marks 4-6 marks 7-9 marks
There is some evidence to show a solution to part of the problem with some evidence to show that it works. There is evidence to show how the solutions were developed.
There is evidence of testing during development showing that many parts of the solution work.
There is detailed evidence showing development of the solution with evidence of systematic testing during development to show that all parts work as required.
Code us presented with little or no annotation, the variable names not reflecting their purpose and with little organisation or structure. The code is organised with sensible variable names and with some annotation indicating what sections of the code does. The code is well organised with meaningful variable names and detailed annotation indicating the function of each section.

0 = no response or responses not worthy of credit.

Support

Students will need to print out versions of their program at several stages of development. This does not need to be a daily log of the code produced.

Since most programming tasks can be broken down into identifiable sub-tasks, the annotated code for each sub-task could be printed out, along with evidence such as screen dumps or data file printouts showing how that sub-task was systematically tested.


Unit A453 3.4: Testing and Evaluation

Test their solution

  • to show functionality
  • to show how it matches the design criteria
  • identify success and any limitations.

Candidates should be able to:

  • use a suitable test plan and data to test the function of the system
  • test the system against the success criteria
  • provide good evidence of test procedures
  • modify the system, if required, to meet success criteria where these are not met;
  • evaluate the system against the success criteria to establish how successful, or otherwise, their implementation has been.

Testing and evaluation (0 – 9 marks)

Each task is equally weighted.

1-3 4-6 7-9
There is evidence to show that the system has been tested for function but the test plan is limited in scope with little structure. There is a test plan covering many parts of the problem with some suggested test data.

There is some evidence that the system has been tested using this data.

The test plan covers all major success criteria for the original problem with evidence to show how each of these criteria have been met, or if they have not been met, how the issue might be resolved.
There is limited evidence to show how the result matches the original criteria. There is some evidence to show how the results of testing have been compared to the original criteria.

There is a brief discussion of how successful or otherwise the solutions are.

There is a full evaluation of the final solution against the success criteria.
The evidence of written communication is limited with little or no use of specialist terms. The quality of written communication is good, using some specialist terms. A high level of written communication is obvious throughout the task and specialist terms/technology with accurate use of spelling will have been used.
Errors in spelling, punctuation and grammar may be intrusive.
Information may be ambiguous or disorganised.
There are few errors in spelling, grammar and punctuation.

Information for the most part is presented in a structured format.

Grammar and punctuation are used correctly and information are presented in a coherent and structured format.

0 = no response or responses not worthy of credit.

Support

It is vital that students evaluate their work against the specific success criteria they identified at the design stage. General comments on how well they feel they did at each task will not gain many marks.

It is also important that they refer to the results of their testing when evaluating how successful they were at meeting each aspect of the success criteria.

The testing itself should relate to the success criteria, including testing of validation (when relevant) with normal, extreme and erroneous data.


Unit A453: Exemplar Material

GCSE Computing Assessment Exercise

Task 3 System password. 15 marks

  1. Create a system to accept and test a password for certain characteristics.
    • It should be at least 6, and no more than 12 characters long.
    • A message to indicate that the password is acceptable must be displayed.
    • The system must indicate that the password has failed and why, asking the user to re enter their choice until a successful password is entered.
    • The user must be able to change passwords and add new passwords if they are longer than 12 characters or less than 6 characters than this should be rejected.
  2. Password strength can be assessed against simple criteria to assess its suitability; for example a password system using only upper and lower case alphabetical characters and numeric characters could assess the password strength as:
    • WEAK if only one type used, e.g. all lower case or all numeric
    • MEDIUM if two types are used
    • STRONG if all three types are used.
    • For example:
      • hilltop, 123471324, HAHGFD are all WEAK
      • catman3 and 123456t are MEDIUM
      • RTH34gd is STRONG
  3. A message to indicate the password strength should be displayed after an acceptable password is chosen.

Exemplar files for this exercise

passwordcheckerv3.xls (43KB)
passwordcheckerv3_1.xls (31KB)
A453_Exemplar_Password_Program_using_VBA.ppt (4.5MB)


Unit A453: Programming Project – Resource Files

  • Programming Techniques – 18 marks
    • Use of programming techniques – 6 marks
    • Efficient use of programming techniques – 12 marks
  • Design – 9 marks
    • This will include algorithms, planning of variables, input method and design sketches of the interface if relevant.
  • Development – 9 marks
    • Evidence for this will mainly be annotated printouts of the code showing the main developments. It is suggested that pupils add details of how they tested each development to make sure marks can be allocated for ‘evidence of systematic testing during development’.
  • Testing and evaluation – 9 marks
    • Evidence for this will include a test plan. This is typically a table detailing the test number, what is being tested, the test ‘data’ if relevant and the expected results.
    • The evidence the testing was carried out can be in the form of screen-shots cross-references to the test, or screen-video capture (although the latter would be more complex as it would have to be submitted if the work was moderated).

Student support documents:

  • Designing.doc – a framework for the design and analysis stage
  • testing.doc – a framework for the testing stage
  • evaluation.doc – a framework for the evaluation stage
  • log_template.doc – a template for logging the code developed, describing the developments made and the testing that took placed
  • tick_sheet.doc – a record sheet that could help pupils track their progress through the mark scheme

Small Basic Exercises: (can be adapted to work with a range of programming languages)

These are designed to build up the skills needed to support the programming tasks (primarily the recipe, calculator and hangman game tasks). Unless otherwise stated, the exercises will only use the text window.

Exemplar Tasks: