Computational Thinking Algorithms and Programming
Computational Thinking Algorithms and Programming
First name(s)
Last name
INSTRUCTIONS
• Use black ink.
• Write your answer to each question in the space provided. If you need extra space use
the lined pages at the end of this booklet. The question numbers must be clearly shown.
• Answer all the questions.
INFORMATION
• The total mark for this paper is 80.
• The marks for each question are shown in brackets [ ].
• This document has 20 pages.
ADVICE
• Read each question carefully before you start to answer.
BLANK PAGE
© OCR 2019
3
Section A
1 (a) Complete the truth table in Fig. 1 for the Boolean statement P = NOT(A AND B).
A B P
0 0 1
0 1
…………………………………
1 0
…………………………………
1 1 0
Fig. 1
[2]
(b) Tick () one box to identify the correct logic diagram for P = NOT(A AND B).
[1]
© OCR 2019 Turn over
4
num1 = ………………………………………………
………………………………………………
else
………………………………………………
endif [5]
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
[5]
© OCR 2019
5
3 The database table Results stores the results for each student in each of their chosen subjects.
Complete the SQL query to return all of the fields for the students who take Art.
SELECT ……………………………………………………………….…………….…….…….…………
FROM ……………………………………………………………….…………….…….…….…………
WHERE ……………………………………………………………….…………….…….…….…………
[3]
4 A program creates usernames for a school. The first design of the program is shown in the
flowchart in Fig. 2.
Start
INPUT
firstName
INPUT
surname
OUTPUT
username
Stop
Fig. 2
For example, using the process in Fig. 2, Tom Ward’s username would be TomWa.
(a) State, using the process in Fig. 2, the username for Rebecca Ellis.
……………………………………………………………………………………………………………. [1]
© OCR 2019
7
• If the person is a teacher, their username is the last 3 letters of their surname and then
the first 2 letters of their first name.
• If the person is a student, their username is the first 3 letters of their first name and then
the first 2 letters of their surname.
(i) What would be the username for a teacher called Fred Biscuit using the updated
process?
……………………………………………………………………………….……………………... [1]
(ii) Write an algorithm for the updated program design shown in question 4(b)(i).
……………………………………………………………………………………………..……………
……………………………………………………………………………………………..……………
……………………………………………………………………………………………..……………
……………………………………………………………………………………………..……………
……………………………………………………………………………………………..……………
……………………………………………………………………………………………..……………
……………………………………………………………………………………………..……………
……………………………………………………………………………………………..……………
……………………………………………………………………………………………..……………
……………………………………………………………………………………………..……………
……………………………………………………………………………………………..……………
……………………………………………………………………………………………..……………
……………………………………………………………………………………………..……………
……………………………………………………………………………………………..……………
……………………………………………………………………………………………..……………
……………………………………………………………………………………………..……………
……………………………………………………………………………………………..……………
…………………………………………………………………………………………….…………….
[6]
(a) State why the computer needs to translate the code before it is executed.
……………………………………………………………………………………………………………….. [1]
1 ..……………………………………………………………………………………………………………..
……………………………………………………………………………………………………………..…..
………………………………………………………………………………………………..………………..
……………………………………………………………………………………………..…………………..
2 ……………………………………………………………………………………………………………….
……………………………………………………………………………………………..…………………..
……………………………………………………………………………………………..…………………..
………………………………………………………………………………………………………………….
[4]
© OCR 2019
9
6 A program uses a file to store a list of words that can be used in a game.
Fig. 3
(a) Show the stages of a bubble sort when applied to data shown in Fig. 3.
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
[4]
Fig. 4
Show the stages of a binary search to find the word zebra using the data shown in Fig. 4.
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
[4]
7 The area of a circle is calculated using the formula π × r2 where π is equal to 3.142 and r is the
radius.
A program is written to allow a user to enter the radius of a circle as a whole number between
1 and 30, then calculate and output the area of the circle.
01 radius = 0
02 area = 0.0
03 radius = input("Enter radius")
04 if radius < 1 OR radius > 30 then
05 print("Sorry, that radius is invalid")
06 else
07 area = 3.142 * (radius ^ 2)
08 print (area)
09 endif
(a) Explain, using examples from the program, two ways to improve the maintainability of the
program.
1 ……………………………………………………………………………………………………………….
………………………………………………..………………………………………………………………..
……………………………………………………………..…………………………………………………..
………………………………………………………………..………………………………………………..
2 ……………………………………………………………………………………………………………….
…………………………………………………………………..……………………………………………..
……………………………………………………………………..…………………………………………..
………………………………………………………………………………………………………..………..
[4]
1 ………………………………………………………………………………………………………………
2 …………………………………………………………………………………………………………..…..
[2]
© OCR 2019
11
(c) (i) Identify one item in the program that could have been written as a constant.
………………………………………………………………………………………………………. [1]
(ii) Give one reason why you have identified this item as a constant.
……………………………………………………………………………………………………… [1]
(d) Tick () one box in each row to identify whether each programming construct has or has not
been used in the program.
Sequence
Selection
Iteration
[3]
Identify two features of an IDE that might be used when writing the program.
1 ……………………………………………………………………………………………………………….
……………………………………………………………………………………………………………..…..
2 ……………………………………………………………………………………………………………….
………………………………………………………………………………………………………..………...
[2]
Section B
Some questions require you to respond using either the OCR Exam Reference Language or a
high-level programming language you have studied. These are clearly shown.
8 A teacher researches the length of time students spend playing computer games each day.
(a) Tick () one box to identify the data type you would choose to store the data and explain
why this is a suitable data type.
String
Integer
Real
Boolean
Explanation: ……………………………………………………………………………………………….
…………………………………….………………………………………………….……………………..
[2]
© OCR 2019
13
(b) The program should only allow values from 0 to 300 inclusive as valid inputs. If the data entered
breaks this validation rule, an error message is displayed.
(i) Complete the following program to output "Invalid input" if the data does not meet
the validation rule.
endif
[3]
(ii) Complete the following test plan for the program in 8(b)(i).
Invalid input
Invalid
message displayed
300 Boundary
[2]
(c) Data for one week (Monday to Friday) is stored in a 2D array with the identifier minsPlayed.
Students
Stuart Wes Victoria Dan
0 1 2 3
Days Mon 0 60 30 45 0
of the
week Tue 1 180 60 0 60
Wed 2 200 30 0 20
Thu 3 60 10 15 15
Fri 4 100 35 30 45
The teacher wants to output the number of minutes Dan (column index 3) played computer
games on Wednesday (row index 2). The following code is written:
print(minsPlayed[3,2])
Write a line of code to output the number of minutes that Stuart played computer games on
Friday.
…………………………………………………………………………………………………………
……………………………………………………………………………………………………… [1]
© OCR 2019
15
(d) The teacher writes a program to add up and print out the total number of minutes student 2 played
computer games over 5 days (Monday to Friday).
total = 0
print(total)
Refine the program to be more efficient. Write the refined version of the algorithm.
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
[4]
x = 15
y = 0
while x > 0
y = y + 1
x = x – y
endwhile
print(y)
x y output
[4]
© OCR 2019
17
(f) A teacher writes an algorithm to store the name of the game a student plays each night (for
example "OCR Zoo Simulator").
valid = false
while(valid == false)
gamesPlayed = gameName.upper
valid = true
else
endif
endwhile
The algorithm needs testing to make sure the IF-ELSE statement works correctly.
Identify two different pieces of test data that can be used to test different outputs of the
algorithm. Give the output from the program for each piece of test data.
(g) The teacher asks students how long they spend completing homework. Students answer in
minutes and hours (for example 2 hours 15 minutes).
The teacher would like to create an algorithm that will display students’ inputs in minutes only.
(i) Identify the input and output required from this algorithm.
Input …….………………………………………………………………………………………………
……...……………………………………………………………………………………………………
Output …..………………………………………………………………………………………………
…….………………………………………………………………………….……………………........
[2]
(ii) A program is created to convert hours and minutes into a total number of minutes.
finalTotal = ………………………………………………………………..
print(finalTotal)
function ………………………………………………………………..
………………………………………………………………..
………………………………………………………………..
………………………………………………………………..
………………………………………………………………..
endfunction
[4]
© OCR 2019
19
(iii) The following flowchart outputs a message depending on how long each person has spent
playing computer games.
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
[4]
© OCR 2019
20
If additional space is required, you should use the following lined page(s). The question
number(s) must be clearly shown in the margin(s).
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
..................................................................................................................................................................
Copyright Information:
OCR is committed to seeking permission to reproduce all third-party content that it uses in the assessment materials. OCR has attempted to
identify and contact all copyright holders whose work is used in this paper. To avoid the issue of disclosure of answer-related information to
candidates, all copyright acknowledgements are reproduced in the OCR Copyright Acknowledgements booklet. This is produced for each
series of examinations and is freely available to download from our public website (www.ocr.org.uk) after the live examination series.
If OCR has unwittingly failed to correctly acknowledge or clear any third-party content in this assessment material, OCR will be happy to correct
its mistake at the earliest possible opportunity.
For queries or further information please contact the Copyright Team, The Triangle, Shaftesbury Road, Cambridge, CB2 8EA.
OCR is part of the Cambridge Assessment Group; Cambridge Assessment is the brand name of University of Cambridge Local Examinations
Syndicate (UCLES), which is itself a department of the University of Cambridge.
© OCR 2019
…day June 20XX – Morning/Afternoon
GCSE (9–1) Computer Science
MAXIMUM MARK 80
R10049/17
MARKING INSTRUCTIONS
PREPARATION FOR MARKING
SCORIS
1. Make sure that you have accessed and completed the relevant training packages for on–screen marking: scoris assessor Online Training;
OCR Essential Guide to Marking.
2. Make sure that you have read and understood the mark scheme and the question paper for this unit. These are posted on the RM
Cambridge Assessment Support Portal http://www.rm.com/support/ca
3. Log–in to scoris and mark the required number of practice responses (“scripts”) and the required number of standardisation responses.
YOU MUST MARK 10 PRACTICE AND 10 STANDARDISATION RESPONSES BEFORE YOU CAN BE APPROVED TO MARK LIVE
SCRIPTS.
Assessment Objective
AO1 Demonstrate knowledge and understanding of the key concepts and principles of computer science.
AO1 1a Demonstrate knowledge of the key concepts and principles of computer science.
AO1 1b Demonstrate understanding of the key concepts and principles of computer science.
AO2 Apply knowledge and understanding of key concepts and principles of computer science.
AO2 1a Apply knowledge of key concepts and principles of computer science.
AO2 1b Apply understanding of key concepts and principles of computer science.
AO3 Analyse problems in computational terms:
• to make reasoned judgements
• to design, program, evaluate and refine solutions.
AO3 1 To make reasoned judgements (this strand is a single element).
AO3 2a Design solutions.
AO3 2b Program solutions.
AO3 2c Evaluate and refine solutions.
2
COMPONENT 2 SECTION B SYNTAX GUIDANCE
In Section B, certain questions require candidates to answer in either the OCR Exam Reference Language or the high-level programming language
they are familiar with. The information in this section provides generic guidelines in relation to the marking of these questions.
Where a response requires an answer in OCR Exam Reference Language or a high-level programming language, a candidate’s level of precision
will be assessed. These questions are designed to test both a candidate’s programming logic and understanding of core programming structures.
Marks will be given for correctly using syntax to represent core programming constructs which are common across all programming languages. The
construct must be present in a recognisable format in a candidate’s answer.
Where the response requires a candidate to respond using the OCR Exam Reference Language or a high-level programming language, answers
written in pseudocode, natural English or bullet points must not be awarded marks.
The guidance below covers the elements of each core construct. As guidance, several examples are provided for each. These examples are not
exclusive but do present a variety of acceptable ways taken from a range of different languages.
3
Concept Examiner Guidance
Commenting
// //This function squares a number • Other examples allowable, e.g.:
function squared(number) o # this is a comment
squared = number^2 o /* this is another comment */
return squared
endfunction
//End of function
Variables
= x = 3 • Variables and constants are assigned using the = operator
const name = "Louise" • Constants are assigned using the const keyword (or similar)
global const vat = 0.2 • Identifiers should not have clear spaces within them or start with
global userID = "Cust001"
numbers
• String values must use quotation marks (or equivalent)
• Assignment must use =, :=, (or a suitable alternative)
• variable identifier must be on the left when using OCR Exam
Reference Language and the value to be assigned on the right
• Some languages allow the value on the left- and the identifier on
the right-hand side
• Variables and constants are declared the first time a value is
assigned. They assume the data type of the value they are given
• Variables and constants that are declared inside a function or
procedure are local to that subroutine
• Variables in the main program can be made global with the
keyword global
• For input, a suitable command word for input and a variable
identifier to assign data to (if required)
e.g.
INPUT identifier
identifier = INPUT
4
Input/Output
input(…) myName = input("Please enter a • For output, a command word for output (e.g. output, print, cout)
name")
• Data to be output. If this is a string then quotation marks (or
print(…)
equivalent) are required
print("My name is Noni") • If multiple items are to output, a suitable symbol for concatenation
print(myArray[2,3]) such as +, &.
Casting
str() str(345) • Variables can be typecast using the int str and float functions
int() int("3")
real() real("4.52")
bool() bool("True")
Iteration
for … to … for i=0 to 9 • for keyword
print("Loop") • …with counter variable
next … next i
• Identification of number of times to iterate
• Clear identification of which section of code will be repeated (e.g.
for … to … step … for i=2 to 10 step 2 using indentation, next keyword or equivalent, {braces} )
print(i)
next … next i
5
while … while answer != "Correct" • While / do..until key words or equivalent
answer = input("New answer") • …with logical comparison
endwhile endwhile
• clear identification of which section of code will be repeated (e.g.
using indentation, endwhile/until keyword or equivalent, braces)
do do
answer = input("New answer")
until … until answer == "Correct"
Selection
if … then if answer == "Yes" then • if key word followed by logical comparison
elseif … then print("Correct") • key word for elseif or equivalent followed by logical
elseif answer == "No" then
else comparison
print("Wrong")
endif
else • key word for else or equivalent with no comparison
print("Error") • clear identification of which section of code will be executed
endif depending upon decision
switch … : switch day : • May be referred to differently in some languages. The format to
case … : case "Sat": the left will be used in all questions
case … : print("Saturday")
• switch/select key word or equivalent followed by variable/
default: case "Sun":
value being checked
endswitch print("Sunday")
default: • key word for each case followed by variable/ value to compare to
print("Weekday") • key word for default case (last option)
endswitch • clear identification of which section of code will be executed
depending upon decision
6
String handling/operations
.length subject = "ComputerScience" • Suitable key word to indicate length and string
subject.length gives the value 15 identifier e.g. len(string)
.substring(x , i) subject.substring(3,5) returns "puter" • Suitable string and characters required identified
.left(i) subject.left(4) returns "Comp" • Use of key words such as left, right, mid,
.right(i)
subject.right(3) returns "nce" etc, are all acceptable as long as these are precise
• Treating a string as an array of characters is
acceptable
+ (concatenation) print(stringA + string) • Alternate symbol used indicate two strings or values
print("Hello, your name is : " + name) are being concatenated is acceptable e.g. stringA
& stringB or stringA.stringB
• Use of comma e.g. print(stringA, stringB)is
acceptable to output multiple values but examiners
should be aware that this is not concatenation.
.upper subject.upper gives "COMPUTERSCIENCE" • Suitable key word to indicate string to be converted
.lower subject.lower gives "computerscience" and whether this is to be converted to upper or
lower case e.g. lower(stringname)
ASC(…) ASC(A) returns 65 (numerical)
CHR(…)
CHR(97) returns ‘a’ (char) • Suitable keyword to indicate conversion and
whether this is to or from ASCII. Where converting
from ASCII, an integer value must be given and
where converting to ASCII, a single character must
be given.
7
File handling
open(…) myFile = open("sample.txt") • open keyword (or equivalent)
.close() myFile.close() • read or write clearly identified
• write or read keyword (or equivalent)
.readLine() myFile.readLine()returns the next line in the file • close file keyword (or equivalent)
.writeLine(…) myFile.writeLine("Add new line") • newFile keyword (or equivalent)
newFile() newFile("myText.txt")
Arrays
array colours[…] array colours[5] • Array identifier
• Index number to be accessed in square brackets,
rounded brackets or curly braces (all acceptable)
array colours = ["Blue", "Pink", "Green", • Array identifier assigned to initial values in one step
"Yellow", "Red"]
array gameboard[…,…]
• For 2D arrays, the two indices should be given in one
array gameboard[8,8]
bracket separated by a comma or in two separate
names[…] = … names[3] = "Noni"
brackets, e.g.
gameboard[4,6]
gameboard[…,…] = … gameboard[1,0] = "Pawn"
gameboard[4][6]
8
Sub programs
procedure name (…) procedure agePass() • function or procedure key word (or equivalent)
print("You are old enough to ride") • … followed by identifier
endprocedure endprocedure • Any parameters passed in are contained within
brackets and come after identifier name
procedure printName(name)
• Clear identification of which section of code is
print(name)
contained within the subroutine (e.g. indentation,
endprocedure
endsub key word, braces)
procedure multiply (num1, num2)
print(num1 * num2)
endprocedure
procedure(parameters) agePass()
printName(parameter)
multiply(parameter1, parameter2)
9
Random numbers
random(…,…) myVariable = random(1,6) • random key word (or equivalent)
• identification of either smallest and largest number to
myVariable = random(-1.0,10.0) be chosen or just largest number
e.g.
randnumber(10)
rand(1,6)
10
SECTION A
Question Answer Marks Guidance
1 a A B P 2 1 mark for each correct answer in table
(AO1 1b)
1 ‘True’ or ‘T’ are also credit worthy.
1
11
SECTION A
Question Answer Marks Guidance
b • use of condition controlled loop (while or do/until)… 5 e.g. 1
• …checking condition of number larger than or equal to 0 (AO3 2b) store 10 in number
while number is greater than or equal to 0 do the
• Input number from user within loop (FT if no loop)
following:
• multiply number input by 2… Take input from the user, store in number
• ….output value in number Multiply number by 2
Output number
e.g. 2
while number >= 0
number = input()
output(number * 2)
Ignore non-initialisation of value used in condition for
loop.
3 • SELECT StudentName, Subject, Grade 1 Correct Answer Only
• FROM Results (AO1 1b)
2 Accept SELECT *
• WHERE Subject = "Art"
(AO3 2a)
12
SECTION A
Question Answer Marks Guidance
ii 6 1 mark for each correct bullet to a maximum of 6.
• Taking firstname, surname and teacher or student as (AO3 2b)
input If used, a flowchart should represent the bulleted steps
• Checking IF role is teacher/student (using in the answer column.
appropriate selection)
• For teacher ...Generating last 3 letters of surname
using appropriate string manipulation
• ...Generating first 2 of letters of firstname and adding
to previous
• For student.... correctly calculating as before
• Correct concatenation and output
e.g.
Ask the user to input the data, store in variables firstname,
surname and role.
Check whether the role entered is teacher. If it is, join the
right 3 most letters in surname with the left 2 letters in
firstname. Store this in username.
If it is not teacher, join the left 3 letters from firstname with
the left 2 letters from surname. Store this in username.
Output the value in username.
13
SECTION A
Question Answer Marks Guidance
b • Compiler translates all the code in one go… 4 1 mark to be awarded for the correct identification and
• …whereas an interpreter translates one line at a time (AO1 1b) one for a valid description up to a maximum of 4 marks.
• Compiler creates an executable… No more than 2 marks for answers relating only to
• …whereas an interpreter does not/executes one line interpreters and no more than 2 marks for answers only
at a time relating to compilers.
• Compiler reports errors at the end…
• …whereas an interpreter stops when it finds an error
6 a crime bait fright victory nibble loose 4 1 mark for each row from rows 2–5. Allow multiple
(AO2 1b) swaps in one stage, where it is clear that a bubble sort
bait crime fright victory nibble loose has been applied.
bait crime fright nibble victory loose
bait crime fright nibble loose victory
bait crime fright loose nibble victory
14
SECTION A
Question Answer Marks Guidance
6 b • Comparing zebra to orange 4 1 mark per bullet (multiple ways through, marks
• Greater, so split and take right side (AO2 1b) awarded for appropriate comparison and creation of
sub groups).
• Further comparison (1 or 2 depending on choices
made)
• Correct identification of zebra using methodology
above
e.g.
compare to wind
compare to zebra
E.g
• Comments/annotation…
• …E.g. any relevant example, such as line 4 checks
the input is valid
• Indentation…
• …E.g. indenting within IF statement
• Using constants…
• …E.g. π
15
SECTION A
Question Answer Marks Guidance
7 b • radius 2 1 mark per bullet up to a maximum of 2 marks.
• area (AO1 1b)
c i • 3.142 1 1 mark for one correct identification.
• 2 (AO2 1a)
• 1
• 30
c ii • The number does not need to be changed while the 1 Maximum of 1 mark.
program is running (AO1 1a)
• The number can be updated once and it updates
throughout
d • HAS been used 3
• HAS been used AO2 1b
• HAS NOT been used
e • Error diagnostics (any example) 2 1 mark per bullet to a maximum of 2 marks.
• Run-time environment (AO1 1a) Only 1 example per bullet, e.g. auto-correct and auto-
• Editor (any feature such as auto-correct, auto-indent) indent would only gain 1 mark.
• Translator
• Version control
• Break point
• Stepping
16
SECTION B
Question Answer Marks Guidance
8 a Integer (1)… 1 One mark for appropriate data type identified.
(AO3 2a)
• …number of seconds not important (1) 1 One mark for appropriate justification linked to the data
• … level of accuracy not needed so round to nearest (AO3 1) type chosen.
minute (1)
• …using a decimal to store seconds (0-60) is not
appropriate (1)
Real (1)…
• … number of seconds may be important (1)
8 b i • or 3
• >300 // >= 301 (AO3 2b) High-level programming language / OCR Exam
Reference Language response required
• print
Do not accept pseudocode / natural English.
17
SECTION B
Question Answer Marks Guidance
8 c print (minsPlayed[0,4]) 1 High-level programming language / OCR Exam
(AO3 2b) Reference Language response required
18
SECTION B
Question Answer Marks Guidance
e.g.
total = 0;
for (int x = 0; x <= 4; x++){
total = total + hoursplayed[2][x];
}
System.out.println (total);
8 e 4
(AO3 2c) one mark for first row
x y output
one mark for row 2 and 3
MP1 15 0 one mark for rows 4, 5, and 6
14 1 one mark for the correct output (the only value in the
MP2 output column, in any position)
12 2
9 3
MP3 5 4
0 5
MP4 5
8 f 1 mark per bullet 4 Mark test data first, both must meet different criteria.
• Test data either 0 or less characters, or 20 or more (AO3 2c) Then mark output for each.
characters
• Stating correct output
19
SECTION B
Question Answer Marks Guidance
8 g i Input 2
• Number of hours and minutes (AO3 2a)
Output
• Number of minutes
g ii • Program calls function correctly using hours and minutes 4 hours = input("Please enter number of
variables (AO3 2a) hours played")
• Parameters used appropriately
• Calculation is computed accurately minutes = input("Please enter number of
• Final total is returned suitably minutes played")
print (finalTotal)
function totalMins(hours,minutes)
return total
endfunction
20
SECTION B
Question Answer Marks Guidance
8 g iii • Takes input from the user 4 High-level programming language / OCR Exam
• Compares if input is larger than 120… (AO3 2b) Reference Language response required
• …if true, outputs "You played games for too
long!" Do not accept pseudocode / natural English.
• …if false, outputs "You are under your time
limit!" Example algorithm given below
21
Summary of updates
July 2020 1.3 • Question 2a increased to 5 marks. Reflected in the mark scheme.
• Question 8b(ii) reduced to 2 marks. Reflected in the mark scheme.
June 2020 1.2 • Updated question 8(c) from ‘Write program code’ to ‘Write a line of code’
• Updated mark scheme guidance on page 19 for question 8(g)(ii) from total = hours + mins * 60 to
total = (hours * 60) + mins
• Syntax ‘Guide’ updated to Syntax ‘guidance’
• Within the syntax guidance, added concatenation and an additional way of declaring 1D arrays
• Corrected typos
October 2019 1.1 • Updated question 1(a) and the mark scheme to reflect that teachers more commonly use ‘0’ and ‘1’ rather than
‘True’ and ‘False’.
• Question 8(f) on page 17 - updated the ‘v’ in ‘valid’ to lower case
• Mark scheme on page 10 - minor reformatting of the Operators table
• Mark scheme on page 17 – added ‘while’ to the MP2 guidance column
• Mark scheme on page 20 - updated ‘mins’ to ‘minutes’ and capitalised ‘E’ in ‘Enter’
September 2019 1 To clearly differentiate the updated approach for the external assessment of Practical Programming skills for first
teach 2019 / first assessment 2022, we have updated our qualification code from J276 to J277.
September 2019 1 We’ve introduced sectioning – Section A and Section B. Section B contains questions that relate to the updates
made to our qualification for first teach 2020 / first assessment 2022 where we assess Practical Programming skills
in the examination. Some questions in Section B require candidates to answer in either the OCR Exam Reference
Language or a high-level programming language.
Mapping of questions:
22
1(b) new
2(a) new
2(b) new
3 new
4(a) updated 4(a)
4(b) (i) and 4(b) (ii) 4(b)
5(a) 5(a)
5(b) 5(b)
6(a) 7(a)
6(b) 7(b)
7(a) 8(a)
7(b) 8(b)
7(c)(i) and 7(c)(ii) 8(c)(i) and (c)(ii)
7(d) new
7(e) 8(d)
8(a) new
8(b)(i) new
8(b)(ii) new
8(c) 6(c)(i)
8(d) new
8(e) new
8(f) 6(d)
8(g)(i) new
8(g)(ii) 6(e)
8(g)(iii) new
September 2019 1 We’ve reviewed the look and feel of our papers through text, tone, language, images and formatting. For more
information please see our assessment principles in our ‘Exploring our question papers’ brochure on our website.
23