Unit j276 02 Computational Thinking Algorithms and Programming Sample Assessment Materials
Unit j276 02 Computational Thinking Algorithms and Programming Sample Assessment Materials
Date – Morning/Afternoon
Time allowed: 1 hour 30 minutes
en
im
* 0 0 0 0 0 0 *
First name
ec
Last name
Centre Candidate
number
Sp
number
INSTRUCTIONS
• Use black ink.
• Complete the boxes above with your name, centre number and candidate
number.
• Answer all the questions.
• Write your answer to each question in the space provided.
• If additional space is required, use the lined page(s) at the end of this
booklet. The question number(s) must be clearly shown.
• Do not write in the bar codes.
INFORMATION
• The total mark for this paper is 80.
• The marks for each question are shown in brackets [ ].
• This document consists of 16 pages.
1 Kofi uses his computer to record an audio file of himself playing his guitar.
(a) Outline what happens when the computer converts the music into a file.
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
[2]
(b) Kofi increases the sample rate his computer is using to record his guitar.
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
en
im
……………………………………………………………………………………………………………
[4]
ec
(c) Kofi is e-mailing his recording to a record label. He uses lossy compression to produce the
music file.
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
……………………………………………………………………………………………………………
[4]
………………………………………………………………………………………………………………..
[1]
(b) Convert the decimal number 191 into an 8 bit binary number.
………………………………………………………………………………………………………………..
[1]
(c) Convert the hexadecimal number 3E into a decimal number. You must show your working.
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
en [2]
im
ec
Sp
(d) There is a subroutine, HEX(), that takes a denary number between 10 and 15 and returns the
corresponding hexadecimal number. E.g. HEX(10) would return ”A”, HEX(15) would return
“F”.
Write an algorithm, using the subroutine HEX(), to convert any whole decimal number
between 0 and 255 into a 2 digit hexadecimal number.
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………….. en
im
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
ec
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
Sp
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
[4]
(e) (i) Add together the following two 8 bit binary numbers. Express your response in an 8 bit
binary form.
01101010
10010110
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
[2]
en
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
[1]
im
3 (a) Complete a 2 place right shift on the binary number 11001011.
………………………………………………………………………………………………………………..
ec
………………………………………………………………………………………………………………..
[1]
Sp
(b) Explain the effect of performing a 2 place right shift on the binary number 11001011.
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
[2]
(c) Complete the truth table below for the Boolean statement P = NOT (A AND B).
A B P
FALSE FALSE TRUE
FALSE TRUE
TRUE FALSE
TRUE TRUE FALSE
[2]
4 Johnny is writing a program to create usernames. The first process he has developed is shown in
the flowchart in Fig. 1.
Fig. 1
Start
INPUT
firstName
INPUT
surname
en
name = LEFT(firstName, 3)
im
username = name +
LEFT(surname, 2)
ec
OUTPUT
username
Sp
Stop
For example, using the process in Fig. 1, Tom Ward’s user name would be TomWa.
(a) State, using the process in Fig. 1, the username for Rebecca Ellis.
………………………………………………………………………………………………………………..
[1]
(b) Johnny has updated the process used to create usernames as follows:
• If the person is male, then their username is the last 3 letters of their surname and
the first 2 letters of their first name.
• If the person is female, then their username is the first 3 letters of their first name
and the first 2 letters of their surname.
What would be the username for a male called Fred Biscuit using the updated process?
………………………………………………………………………………………………………………..
[1]
Write an algorithm for Johnny to output a username using the updated process.
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
en
im
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
ec
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
Sp
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
[6]
(a) State why the computer needs to translate the code before it is executed.
………………………………………………………………………………………………………………..
[1]
(b) Harry can use either a complier or an interpreter to translate the code.
Describe two differences between how a complier and an interpreter would translate Harry’s
computer game.
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
en
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
im
………………………………………………………………………………………………………………..
[4]
ec
6 Heath is researching how long, to the nearest minute, each student in his class spends playing
computer games in one week (Monday to Friday). He is storing the data in a 2D array.
Fig. 2
Students
0 1 2 3
Days of the
0 60 30 45 0
week
1 180 60 0 60
2 200 30 0 20
3 60 10 15 15
4 100 35 30 45
For example, student 1, on Monday (day 0), played 30 minutes of computer games.
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
[2]
(b) (i) Identify a data type that could be used to store the number of minutes in this array.
………………………………………………………………………………………………………………..
[1]
………………………………………………………………………………………………………………..
[1]
(c) Heath wants to output the number of minutes student 3 played computer games on
Wednesday (day 2). He writes the code:
print (hoursPlayed[3,2])
(i) Write the code to output the number of minutes student 0 played computer games on
en
Wednesday.
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
im
[1]
(ii) State the output if Heath runs the code:
print (hoursPlayed[2,1])
ec
………………………………………………………………………………………………………………..
[1]
Sp
………………………………………………………………………………………………………………..
[1]
(iv) Write an algorithm to output the total number of minutes student 0 played computer
games from Monday (day 0) to Friday (day 4).
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
[3]
© OCR 2015 J276/02
10
(d) Heath has the day of the week stored as a number e.g. 0 = Monday, 1 = Tuesday.
Write a sub-program that takes the number as a parameter and returns the day of the week
as a string.
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
en
im
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
ec
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
Sp
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
[5]
(e) Heath needs to work out the average number of minutes spent playing computer games each
day for the class, which contains 30 students. Write an algorithm to output the average
number of minutes the whole class spends playing computer games each day.
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
en
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
im
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
ec
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
Sp
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
[6]
© OCR 2015 J276/02 Turn over
12
7 Willow has created a hangman program that uses a file to store the words the program can select
from. A sample of this data is shown in Fig. 3.
Fig. 3
(a) Show the stages of a bubble sort when applied to data shown in Fig. 3.
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
en
im
………………………………………………………………………………………………………………..
[4]
Fig. 4
Sp
Show the stages of a binary search to find the word ‘zebra’ when applied to the data shown in
Fig. 4.
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
[4]
© OCR 2015 J276/02
13
8 The area of a circle is calculated using the formula π × r2 , where π is equal to 3.142 and r is the
radius.
Finn has written a program to allow a user to enter the radius of a circle as a whole number,
between 1 and 30, and output the area of the circle.
01 int radius = 0
02 real area = 0.0
03 input 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 end if
(a) Explain, using examples from the program, two ways Finn can improve the maintainability of
the program.
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
en
im
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
ec
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
Sp
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
……………………………………………………………………………………………………………….
[6]
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
[2]
(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]
en
(d) Finn uses an IDE (Integrated Development Environment) to write his programs. Identify two
features of an IDE that Finn might use.
im
………………………………………………………………………………………………………………..
………………………………………………………………………………………………………………..
[2]
ec
Sp
BLANK PAGE
en
im
ec
Sp
en
im
ec
Sp
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, First Floor, 9 Hills Road, Cambridge CB2 1GE.
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.
en
SAMPLE MARK SCHEME
im
Duration: 1 hour 30 minutes
ec
MAXIMUM MARK 80
Sp
DRAFT
R10049/17
J276/02 Mark Scheme June 20XX
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
en
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
im
SCRIPTS.
ec
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.
Sp
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
J276/02 Mark Scheme June 20XX
en
the original ... (AO2 1a) (1 mark for identification of the effect, one mark for an
...the difference is unlikely to be noticed by humans explanation)
Lossy will decrease the file size ...
... so it can be sent via e-mail
2 a bit , nibble, byte, MB, GB, PB 1 Correct Answer Only
im
(AO1 1b)
b 10111111 1 Correct Answer Only
(AO1 1b)
c Working; (3 * 16) + 14 OR 00111110 2 1 mark for correct answer, 1 for valid method of working
ec
62 (AO1 1b)
d Taking a number as input 4 1 mark for each bullet.
Using HEX subroutine correctly (AO3 2b)
Calculating Digit 1 There are no marks associated with data types or
Sp
Calculating Digit 2 conversions of data types.
3
J276/02 Mark Scheme June 20XX
en
4 a RebEl 1 Correct Answer Only (allow any case)
(AO2 1b)
b i UitFr 1 Correct Answer Only (allow any case)
(AO2 1b)
im
ii 6 1 mark for each correct bullet to a maximum of 6.
Taking firstname, surname and gender as input (AO3 2b)
Checking IF gender is male/female (using If used, a flowchart should represent the bulleted steps
appropriate selection) in the answer column
ec
For male ...Generating last 3 letters of surname using
appropriate string manipulation
...Generating first 2 of letters of firstname and adding
to previous
Sp
For female.... correctly calculating as before
Correct concatenation and output
4
J276/02 Mark Scheme June 20XX
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 all errors at the end…
en
…whereas an interpreter stops when it finds an error
6 a Allows multiple items of data to be stored … 2 1 mark for each bullet to a maximum of 2.
….. under one identifier/name (AO1 1b)
im
Can store a table structure
Reduces need for multiple variables
ec
b ii It is a whole number/ no decimals/ to the nearest minute. 1
(AO2 1b)
c i print (hoursPlayed[0,2]) 1 Correct Answer Only
(AO2 1b)
Sp
ii 0 1 Correct Answer Only
(AO2 1b)
iii 80 1 Correct Answer Only
(AO2 1b)
iv Adding all correct elements 3 1 mark per bullet to a maximum of 3.
Outputting correctly (AO3 2b)
If used, a flowchart should represent the bulleted steps
Using a loop in the answer column
e.g.
total = 0
for x = 0 to 4
5
J276/02 Mark Scheme June 20XX
en
e.g.
im
case 0:
returnDay = “Monday”
case 1:
returnDay = “Tuesday”
ec
case 2:
returnDay = “Wednesday”
case 3:
returnDay = “Thursday”
case 4:
Sp
returnDay = “Friday”
case default:
returnDay = “Invalid”
endswitch
endfunction
6
J276/02 Mark Scheme June 20XX
e.g.
total = 0
for x = 0 to 29
for y = 0 to 4
Total = total + hoursPlayed[x,y]
next y
next x
average = total / (30*5)
en
print (average)
7 a crime bait fright victory nymph loose 4 1 mark for each row from row 2 – 5. Allow multiple
(AO2 1b) swaps in one stage, where it is clear that a bubble sort
bait crime fright victory nymph loose
im
has been applied.
bait crime fright nymph victory loose
bait crime fright nymph loose victory
bait crime fright loose nymph victory
ec
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)
Sp
Correct identification of zebra using methodology
above
e.g.
compare to wind
7
J276/02 Mark Scheme June 20XX
compare to zebra
en
…E.g. indenting within IF statement
Using constants…
…so numbers can be updated easily
…E.g. π
im
b radius 2
area (AO1 1b)
c i 3.142 1 Maximum of 1 mark
2 (AO2 1a)
ec
1
30
c ii The number does not need to be changed while the 1 Maximum of 1 mark
program is running (AO1 1a)
Sp
The number can be updated once and it updates
throughout
d 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
8
J276/02 Mark Scheme June 20XX
en
2 (c) 0 2 0 0 0 0 0 0
2 (d) m 0 0 0 0 0 0 4 0 4
2 (e) i m 0 2 0 0 0 0 0 0 2
2 (e) ii 0 1 0 0 0 0 0 0 1
1
im
3 (a) m 0 1 0 0 0 0 0 0
3 (b) m 0 0 0 2 0 0 0 0 2
3 (c) m 0 2 0 0 0 0 0 0 2
4 (a) 0 0 0 1 0 0 0 0 1
ec
4 (b) i 0 0 0 1 0 0 0 0 1
4 (b) ii 0 0 0 0 0 0 6 0 6
5 (a) 1 0 0 0 0 0 0 0 1
5 (b) 0 4 0 0 0 0 0 0 4
Sp
6 (a) 0 2 0 0 0 0 0 0 2
6 (b)i 0 0 0 1 0 0 0 0 1
6 (b) ii 0 0 0 1 0 0 0 0 1
6 (c) i 0 0 0 1 0 0 0 0 1
6 (c) ii 0 0 0 1 0 0 0 0 1
6 (c) iii 0 0 0 1 0 0 0 0 1
6 (c) iv 0 0 0 0 0 0 3 0 3
6 (d) 0 0 0 0 0 0 5 0 5
6 (e) 0 0 0 0 0 0 6 0 6
9
J276/02 Mark Scheme June 20XX
en
Total 4 24 5 23 0 0 24 0 80
m = mathematical content
im
ec
Sp
10
J276/02 Mark Scheme June 20XX
BLANK PAGE
en
im
ec
Sp
11
J276/02 Mark Scheme June 20XX
BLANK PAGE
en
im
ec
Sp
12