You are on page 1of 24

Revision Paper 1 – March Scheme

Questio
Answer/Indicative content Marks Guidance
n

Input Green Light Red Light

1 ✓

2 ✓

3 ✓
Accept T for a tick. Penalise if blank
4 ✓ table elements have content.
5 ✓
2 Examiner’s Comments
6 ✓
1 i (AO3.3
7 ✓ ) Most candidates achieved the first
8 ✓ mark on this question. The second

mark was lost by those who ticked
9
‘red light’ for an input of 5.

Rows 1-4 correct 1 Mark

Rows 5-9 correct 1 Mark

- The value 11 is stored in the MAR.


- 11 is sent down the address bus.
- A read signal is sent down the control bus. 6
Examiner’s Comments
ii - 0 is sent (back from memory) down the data bus. (AO1.2
- 0 is stored in the MDR… )
Many candidates gave a
- …and then copied to the ACC
comprehensive description of the
fetch execute cycle but did not apply
(1 Mark per -, max 6)
their response to the assembly code
instruction given in the question
therefore losing marks.

Do not credit structured English


- Takes in a value from user. Example
- If value is 5 or less it shows green
ii 3 (AO
- Otherwise it shows Red value = input("Enter a
i 3.2)
Value")
if value <=5 then
(1 Mark per -, max 3) print("GREEN")
else
print(“RED”)
endif

Accept equivalents to <=5 (e.g. <


6)For Green/Red (or 1/0) accept
any pseudocode equivalent
(GreenLightOn(), Output 1, print(1)
Output Green etc.) as long as the
logic is correct.

Examiner’s Comments

Most candidates gained credit for


writing code to read the value from
the user with some then losing
marks for either specifying the
incorrect condition e.g. IF value < 5
and/or not outputting the result.

Mark Band 3-High Level (7-9 marks)1 AO1


The candidate demonstrates a thorough knowledge and Assembly code uses mnemonics to
understanding of assembly code and high level represent machine code
languages. The material is generally accurate and instructions/opcodes.
detailed. High level languages use more
natural/mathematical notation.
The candidate is able to apply their knowledge and Assembly code consists of simple
understanding directly and consistently to the context instructions
provided. Evidence/examples will be explicitly relevant As such many more lines of
to the explanation. 9 assembly code are required to
AO1.1 perform the same task as a few lines
The candidate provides a thorough discussion which is (2) of a high level language.
well balanced. Evaluative comments are consistently AO1.2 Assembly code is specific to the
i
relevant and well-considered. (2) instruction set of a given processor.
v
AO2.1 High Level languages are not
There is a well-developed line of reasoning which is (2) architecture specific.
clear and logically structured. The information AO3.3
presented is relevant and substantiated. (3) AO2
Mark Band 2-Mid Level (4-6 marks) Assembly code allows the
The candidate demonstrates reasonable knowledge programmer to choose the exact
and understanding assembly code and high level instructions so they can write code
languages; the material is generally accurate but at that is highly efficient.
times underdeveloped.
It also allows them to have direct
The candidate is able to apply their knowledge and control of how memory is used via
understanding directly to the context provided although addressing modes.
one or two opportunities are missed. Direct control of hardware.
Evidence/examples are for the most part implicitly High level language compilers have
relevant to the explanation. optimisers that can also try and do
this (and in some cases may
The candidate provides a sound discussion, the outperform a human writing in
majority of which is focused. Evaluative comments are assembly code).
for the most part appropriate, although one or two
opportunities for development are missed. As high level code is more intuitive
and easier to read it is easier to
There is a line of reasoning presented with some follow, debug and build as part of a
structure. The information presented is in the most part team. It can also be written in a
relevant and supported by some evidence. much shorter time frame.
The high level code can be
Mark Band 1-Low Level (1-3 marks) recompiled for different
The candidate demonstrates a basic knowledge architectures.
assembly code and high level languages; the material is High level languages come in a
basic and contains some inaccuracies. The candidate variety of paradigms so
makes a limited attempt to apply acquired knowledge programmers can choose according
and understanding to the context provided. to the problem/their preference.

The candidate provides a limited discussion which is AO3


narrow in focus. Judgments if made are weak and Assembly language is best suited to
unsubstantiated. The information is basic and situations such as:
communicated in an -compilers or interpreters don’t exist
unstructured way. The information is supported by for the target CPU i.e. embedded
limited evidence and the relationship to the evidence systems
may not be clear. -highest possible performance is
critical
0 marks -memory is very limited.
No attempt to answer the question or response is not For larger projects which don’t fall
worthy of credit. under the constraints above high
level languages are likely to be
preferable.

Examiner’s Comments

Candidates were assessed on the


quality of their extended response in
this question. Most candidates could
describe the basic differences
between assembly code and high
level languages, with many giving
examples of where each would be
best used. Some candidates gave
clear and appropriate justification for
the coffee machine being
programmed in assembly code. In
general, most candidates scored
reasonably well on this question.

Total 20

Examiner’s Comments

Most candidate correctly identified


that checkValid() was a function
because it returned a value. Some
2 i It returns a value 1
candidates erroneously stated
‘because it has an output’ which did
not differentiate a function from a
procedure since both can print an
output as a side effect.

Allow 1/0, ‘T’/’F’, “Yes”/”No” or any


sensible alternative as return
values.

Examiner’s Comments

Many candidates were able to think


1 mark per bullet
computationally to identify the points
in a solution where a decision had
• If the players card is the same suit return true
to be taken. Occasionally some
ii • if the players card is the same number return 3
candidates did not specify the
true
specific result that would be
• if neither is true, return false
returned from the function after
determining if a card was valid or
not. There were also occurrences of
incorrect logic such as returning
valid using an AND condition on the
same number and same suit
clauses, rather than executing them
in sequence.

Total 4

1 mark per bullet to max 2

• Declares a function called


3 i 2
(1)
• Has parameter (1)

• 08 (1)
ii 1
max 3 marks for benefit, max 3 for drawback, max 4
marks overall
Benefit

• More natural to read (1)


• Quicker to write / less lines of code. (1)
As some functions are naturally recursive (1)
• Suited to certain problems (1) For example
those using trees (1)
• Can reduce the size of a problem with each
call. (1)
ii
4
i Drawback

• Can run out of stack space / memory (1) (due


to too many calls (1)) causing it to crash (1)
This can be avoided with tail recursion (1)
• More difficult to trace / follow (1) as each frame
on the stack has its own set of variables (1)
• Requires more memory than the equivalent
iterative algorithm.
• Usually slower than iterative methods (1) due
to maintainence of the stack (1)

1 mark per bullet

• Loop start and end in correct positions (1)


• With correct number of iterations (1)
• Returns a value (1)
• All other code correct, in the right place (1)

i
4
v
e.g.

1 mark per bullet, to max 3

v • Appropriate declaration of function, taking 2 3


parameters (1)
• Checks position in board against “” correctly (1)
• Returns and true correctly (1)

e.g.

Total 14

1 mark per bullet to max 4

• Suitable loop with correct condition


• In IF: Overwriting num2 with num2 − num1
• In ELSE: Overwriting num1 with num2…
• … Overwriting num2 with num1−num2 4
correctly (using a temp variable) AO2.1
Alternatively swapping values by
(1)
temp = num1
4 AO2.2
num1 = num2
(1)
num2 = temp − num2
e.g. AO3.2
(2)

Examiner’s Comment:
Most candidates produced
recognisable pseudocode. Weaker
candidates produced logically
incorrect solutions or did not
understand the difference between
an iterative and a recursive solution
– reformulating another recursive
solution. Where strong candidates
produced good solutions they
sometimes forget the necessity to
have a temporary swap variable
when swapping the values in two
different variables over.

Total 4

1
5 Iteration [1] AO2.1
(1)
Examiner's Comment:
Well answered by most candidates.

Total 1

1 Examiner’s Comments

6 a i if
AO1.1 A number of candidates overthought
(1) the answer and did not identify the if
branching statement used in the
code.

Examiner’s Comments
1 mark per bullet
2
Branching decides which code is run / only runs Many candidates found difficulty in
ii •
code once AO1.2 defining either branching or iteration
Iteration repeatedly runs the same code in the (2) clearly. Often the two terms were

same sequence
confused, with the clear differences
between branching and iteration not
expanded on.

Exact identifier names required

1
Examiner’s Comments
ii
i AO2.1
num1, num2 Most candidates had little difficulty
(1)
correctly identifying the parameters
num1 and num2.

1 mark per bullet


i 2
v
• By Value Examiner’s Comments
• … the original values do not need to be modified AO2.2
… byRef would not work / would cause the routine
• (2) Most candidates identified that the
to crash
parameters should be passed by
value, but fewer could successfully
justify their choice, and hence show
a deeper understanding of the
reason for the choice they made.

2 Examiner’s Comments
1 mark per bullet
AO1.1 Most candidates could successfully
v
• Gives the remainder after division (1) define the MOD function. A few
• E.g. 10 MOD 3 = 1 AO1.2 confused it with the absolute()
(1) function or with integer division, and
some did not illustrate their answer
with the required example.

1 mark for benefit, 1 mark for drawback


Benefit:

• The program can/might run faster


• Cannot run out of stack space/memory
• Easier to trace/follow
2
Examiner’s Comments
b i
AO1.1
Most candidates achieved some
Drawback: (1)
credit, but many answers were often
too vague.
• Iteration can lead to lengthier code
Iteration can lead to code that looks more complex

/ is harder to understand
some problems are more elegantly coded with a

recursive solution

1 mark for each correct statement

function newGCD(num1, num2)

temp = 0 4
Examiner’s Comments
AO2.2
ii while (num2 != 0) (2)
Most candidates attempted the
AO3.2
question and achieved some credit.
temp = num2 (2)
Relatively few achieved full marks
for this question.
num2 = num1 MOD num2

num1 = temp
endwhile

return num1

endfunction

Total 14

1 mark per bullet

• Calculation of result to 3
• Call with thisFunction(theArray,
num1=4, num2=7, num3=35)
• Result = 5
• call with
thisFunction(theArray,num1=6,num2=
7,num3=35) 5
• (Result = 6) return of value 6 AO2.1
7 a (3)
AO2.2
(2)
Function call num1 num2 num3 result
thisFunction
(theArray,0,7,35) 0 7 35 3

thisFunction
(theArray,4,7,35) 4 7 35 5

thisFunction
(thisArray,6,7,35) 6 7 35 6

1
b Binary search AO2.1
(1)

1 mark per bullet to max 4, e.g.

• Recursion uses more memory…


• …iteration uses less memory
4
• Recursion declares new variables /variables
AO1.1
are put onto the stack each time…
c (2)
• …iteration reuses the same variables
AO1.2
• Recursive can run out of memory/stack
(2)
space…
• …while iteration cannot run out of memory
• Recursion can express a problem more
elegantly / in fewer lines of code…
• …while iteration can take more lines of code /
be harder to understand
• Recursion will be self-referential / will call
itself…
• … whereas iteration does not

1 mark per bullet to max 6

• Retains function call


• Uses a loop
• …that will loop until all elements inspected or
value found
• Updates num1 appropriately
• Updates num2 appropriately
• Returns -1 in the correct place if the value has
not been found
• Returns the result in the correct place if the
value has been found

e.g. 6
function thisFunction(theArray, num1, num2, num3) AO2.2
d (3)
while (true) AO3.1
result = num1 + ((num2 - num1) DIV 2) (3)
if num2 < num1 then
return -1
else
if theArray[result] < num3 then
num1 = result + 1
elseif theArray[result] > num3 then
num2 = result - 1
else
return result
endif
endif
endwhile
endfunction

Total 16

1 mark per box up to a maximum of 3 marks. 12AO1.


1
• Select puzzle and display blank grid (below (2)AO1
8 a i
new game) .2
• Select box and change colour of boxes (2)AO2
(below play game) .1
• Compare to answer and display (23AO
correct/incorrect (below check answer) 3.3 (5)

e.g.

1 mark per bullet up to a maximum of 2 marks, e.g:


e.g.

• Splits the problem into smaller chunks


2AO1.1
• Smaller problems are more manageable
ii (1)AO1
• Smaller problems are easier to solve
.2 (1)
• To see where code can be reused in the
solution
• To split tasks between different programmers

1 mark for input, 1 for process 1 for output


e.g.
Input:

• Clicking a box

Process:
ii 3AO2.2
i • Generating new puzzle (3)
• Checking if block is black
• Changing block to white

Output:

• Grid with coloured squares

1 mark for each correctly completed statement up to a


maximum of 5 marks:
Accept

function countRow(puzzle:byref, 5AO2.2 for i = 0 to row.length-1


b i 01 (2)AO3
rowNum:byval)
02 count = 0 .2 (3) for i = 0 to row.length
03 output = " "
04 for i = 0 To 4 for i=0 to 5
05 if puzzle[rowNum, i] == 1
then
06 count = count + 1
07 elseif count >= 1 then
08 output = output +
str(count) + " "
09 count = 0
10 endif
11 next i
12 if count>= 1 then
13 output=ouput+str(count)
14 elseif output == "" then
15 output = "0"
16 endif
17 return output
18 endfunction

1 mark per bullet up to a maximum of 2 marks, e.g:

• Initialise the variable output…


• …with a space 2AO1.2
ii • …for use later on in the code… (1)AO2
• …So it can be used for concatenation later in .2 (1)
the code …
• …to avoid an error being generated

1 mark per bullet up to a maximum of 3 marks, e.g:

• check the value stored in each index


ii 3AO2.2
• check whether it is at the end of a row
i (3)
• check whether each row has been given an
output or not

1 mark per bullet up to a maximum of 6 marks:

• Procedure heading for displayRowAnswer


• …taking puzzle as parameters Accept
• Nested loops through all array elements
• …outputting all rows 6AO2.2 for i = 0 to row.length-1
i
• … at the end of each row calling countRow …. (3)AO3
v
• …..with parameters puzzle and the current .2 (3) for i = 0 to row.length
loop counter
for i=0 to 5
e.g.
procedure displayRowAnswer(puzzle)
for i = 0 To 4
for j = 0 To 4
print(puzzle[i, j] + " ")
next j
print (" " + countRow
(puzzle, i))
next i
endprocedure

1 mark for clearly identifying each error and giving the Do not award marks for line
correction. numbers alone without stating the
error.
3AO2.1
v • Line 01 needs answerGrid as parameter
(3)
• Line 04 == should be != Consider 1 mark for not changing
• Line 08 should be next row line 04 but changing 05 to true and
09 to False

Mark Band 3 – High level (7-9 marks) AO1: Knowledge and


The candidate demonstrates a thorough knowledge and Understanding
understanding of local and global variables; the material Indicative content
is generally accurate and detailed. Local variables:
The candidate is able to apply their knowledge and
understanding directly and consistently to the context • Scope within the module
provided. defined within
Evidence/examples will be explicitly relevant to the • Cannot access externally
explanation. unless passed as
The candidate is able to weigh up the use of both local parameter, or returned from
and global variables which results in a supported and function
realistic judgment as to whether it is possible to use • When module is exited,
them in this context. memory of variable is freed
9AO1.1
There is a well-developed line of reasoning which is
(2)AO1
clear and logically structured. The information Global variables:
.2
presented is relevant and substantiated.
c (2)AO2
• Scope within the entire
.1
Mark Band 2 – Mid level (4-6 marks) program
(2)AO3
The candidate demonstrates reasonable knoledge and • Can access from anywhere
.3 (3)
understanding of local and global variables; the material • Retained in memory
is generally accurate but at times underdeveloped. permanently
The candidate is able to apply their knowledge and
understanding directly to the context provided although ByRef Points to location of variable
one or two opportunities are missed. ByVal Sends the value
Evidence/examples are for the most part implicitly
relevant to the explanation. AO2: Application
The candidate makes a reasonable attempt to come to
a conclusion showing some recognition of influencing • If global the arrays can be
factors that would determine whether it is possible to accessed from all modules
use local and global variables in this context. by direct reference
There is a line of reasoning presented with some • If local to the main, the
structure. The information presented is in the most part arrays will need to be
relevant and supported by some evidence passed as parameters
byreference
Mark Band 1 – Low Level (1-3 marks) • Can send ByVal – but not
The candidate demonstrates a basic knowledge of local always possible with arrays
and global variables with limited understanding shown; in some languages
the material is basic and contains some inaccuracies. • Modules are self contained
The candidates makes a limited attempt to apply and then can be reused in
acquired knowledge and understanding to the context other programs he wants to
provided. create without needing to
The candidate provides nothing more than an take the global variables
unsupported assertion. with them
The information is basic and comunicated in an
unstructured way. The information is supported by AO3: Evaluation
limited evidence and the relationship to the evidence e.g.
may not be clear.
• +ve Local = memory
0 marks efficient
No attempt to answer the question or response is not • +ve Global = easier
worthy of credit. programming, simpler to
follow, easier to debug
• -ve Global = memory
inefficient, not good
programming technique
• -ve Local = more difficult to
trace/debug/follow where
the values are passed
• Relatively small program –
don’t know about overall
plan for it, it might not be
memory intensive, unlikely
anyone else is going to
access/amend e.g. use as
a library – therefore global
would not waste significant
resources

1 mark per bullet to max 4


e.g.

• Make use of random numbers


4AO2.1
• • Generate an x/horizontal size for the grid
d (2)AO2
• Generate a y/vertical size for the grid
.2 (2)
• Loop through each row/column
• …generate a number between 0 and the
number of rows/columns (depending on MP4
answer)
• Loop through each box
• …generate a 1 or 0 to store in it

Total 40

Examiner’s Comments
1 mark per bullet up to a maximum of 2 marks, e.g: This was also answered well
although some candidates used the
• To setup a loop… 2 word ‘iteration’ in their answer
9 • To repeat (the same block of code) (AO3.3 without going to describe what this
• for each line in the text file / until each value ) (2) means. As this was in the question,
has been read further detail was required such as
repeating or looping through the text
file.

Total 2

• int (1). Up to 2 marks for valid


1 • input (1). identifications that demonstrates
i 2
0 • print (1). application of knowledge to given
context.

• 27 (1). Up to 2 marks for stating valid


ii • 81 (1). 2 output that demonstrates application
of knowledge to given context.

Total 4

Mark Band 3 – High level


(7-9 marks)
AO1: Knowledge and
The candidate demonstrates a thorough knowledge and
Understanding
understanding of parameters and global variables; the
Indicative content
material is generally accurate and detailed.
The candidate is able to apply their knowledge and
9 • Parameter allows a value to
understanding directly and consistently to the context
AO1.1 be sent to a sub-program
provided. Evidence/examples will be explicitly relevant
(2) • Global variables can be
to the explanation.
AO1.2 accessed throughout the
1 There is a well-developed line of reasoning which is
(2) scope of the program
1 clear and logically structured. The information
AO2.1 • Local variables can only be
presented is relevant and substantiated.
(2) accessed within the scope
AO3.3 of the sub-program it's
Mark Band 2 – Mid level
(3) defined within ¡V a
(4-6 marks)
parameter becomes a local
The candidate demonstrates reasonable knowledge
variable in the function
and understanding of parameters and global variables;
the material is generally accurate but at times
AO2: Application
underdeveloped.
The candidate is able to apply their knowledge and
understanding directly to the context provided although
one or two opportunities are missed. • If global, equivalent of by
Evidence/examples are for the most part implicitly reference -value would be
relevant to the explanation. over-ridden
The candidate provides a reasonable discussion, the • Global variable takes more
majority of which is focused. Evaluative comments are, memory than a local
for the most part appropriate, although one or two variable/parameter
opportunities for development are missed. • In recursion, each call
There is a line of reasoning presented with some produces a new local
structure. The information presented is in the most part variable for num1
relevant and supported by some evidence.
AO3: Evaluation
Mark Band 1 – Low Level Candidates will need to evaluate the
(1-3 marks) benefits and drawbacks of each
The candidate demonstrates a basic knowledge of algorithm
parameters and global variables with limited
understanding shown; the material is basic and contains • Global would require
some inaccuracies. The candidates makes a limited altering the algorithm as
attempt to apply acquired knowledge and understanding the value would be over-
to the context provided. ridden on each call
The candidate provides a limited discussion which is • Global would mean that
narrow in focus. Judgements if made are weak and memory space is kept
unsubstantiated. throughout the running of
The information is basic and comunicated in an the program, not just the
unstructured way. The information is supported by sub-program
limited evidence and the relationship to the evidence • Parameter enables memory
may not be clear. to be reallocated
• Many more memory spaces
0 marks needed for parameter in
No attempt to answer the question or response is not recursion, 1 for each call
worthy of credit.

Examiner’s Comments

Most candidates produced


responses limited to the scope of
global variables being accessible
throughout the program or a
discussion of the different methods
of parameter passing available. Few
made any references to either
recursive functions or to the
implications to memory usage of
using parameters instead of global
variables.
Total 9

1 mark per bullet to max 7

• Procedure declaration
• Reading file name as input
• Calling getText() function with filename
• Looping through all characters in the data
• Checking if there is a “.” (ASCII code 46)
• … checking if the next character is a space “ “
(ASCII code 32)
• … looping until there is no “ “ (ASCII code 32)
• … checking if the character is lowercase
• … changing the character to uppercase
• Writing output to text file

procedure fullStop()
filename = input("Enter filename") Examiner’s Comments
textString = getText(filename)
output = "" Most candidates achieved 2 of the
i = 0 first 3 marking points for initialising
newSentence = True the procedure and reading the text
file. Few scored nothing. Many
7AO2.2
1 while i < textString.length - 1: candidates looped through the input
(1)AO3
2 text with a loop and matched where
.2 (6)
nextChar = textString.substring(i, 1) a full-stop was located. Fewer then
went on to accurately move forward
if newSentence == True: to the first letter after the full-stop
if nextChar == " ": was found, and fewer still then
output = output + " " successfully converted the next
else: letter to upper case.
output = output + upper
(nextChar)
newSentence = False
else:
if nextChar == ".":
newSentence = True
output = output + char
endif

i = i + 1

endwhile

file = openWrite(filename)
file.write(output)
file.close()
endprocedure

Total 7

function hash(siteName)
/remove up to and including first
dot.
firstDot=locate(siteName,".")
siteName=siteName.substring(fir
stDot+1,
siteName.length-firstDot -1)

/remove second dot and after


secondDot=locate(siteName,".")
Removes/ignores characters up to and including siteName=siteName.substring(0,

first dot
secondDot)
Removes/ignores characters including and after
– siteName=upper(siteName)
second dot
– Converts characters in variable to uppercase value=0
– Totals the ASCII values of the relevant characters. for i=0 to siteName.length-1
value=value+asc(siteName.subs
tring(i,1))
Up to 1 mark for… next i
return value
1 – Sensible variable names. 5 endfunction
3 – Sensible indentation AO3.2
– Useful comments. Examiner’s Comments

Candidates who used the three


functions given in the question
NB Don’t penalise twice. If candidate hasn’t tended to score well. Those
removed/discounted the right characters they may lose candidates who opted not to use the
mark points 1 and / or 2. They can still access mark given functions and used language
points 3 and 4 specific functions, in many cases,
did not utilise them correctly, hence,
(1 per -, max 5 ) losing credit. Centres should advise
candidates to utilise functions given
in the stem of the question in their
response. In addition, the question
stated that candidates will be given
credit for the readability of their
code. Centres should also advise
candidates to use appropriate
variable names, indent code where
appropriate and comment code to
aid readability.
Total 5

Allow other suitable answers

Examiner’s Comments

Many candidates scored 1 mark, but


fewer gave two clear benefits.
Unqualified statements that were
too vague were often given. A
frequent response was ‘saves time’,
but as an unqualified point it did not
state how time was saved, e.g.
1 mark per bullet to max 2
‘saves time as you don’t have to
retype the same code/routine
• Saves time from having to write the same
again’.
algorithm repeatedly
1
• Reduced testing requirements 2
4 Candidates need to be reminded
• Can be taken and used in different programs
that at this level responses of a
as well as the program they are written in / can
‘quicker’ or ‘easier’ nature will not
be used in a program library
gain marks unless qualified.

Exemplar 1

Candidates are expected to fully


qualify the points that they make.
This response shows clear
identification of points followed by
qualifying statements.

Total 2

1
1
i Save string in file AO2.2
5
(1)

1 mark per bullet, max 2 per advantage to max 4 Allow any appropriate advantages
e.g.

• Procedures can be re-used 4


ii • No need to reprogram / saves time AO1.2
• Program can be split between programmers (4)
• Can specialise in their area
• Speed up completion time
• As multiple procedures worked on concurrently
• Easy to test / debug
• As each module can be tested on its own then
combined.

Examiner’s Comment:
Part (i) was well answered where
candidates had read the question
stem and thought logically about the
steps involved. Many candidates
gained some credit in part (ii), but
fewer could expand on the points
they made to gain full credit.

Total 5

Allow any reasonable sub-


procedure and description for the
context

1 mark for sub-procedure names


Do not award marks for character
(to max 3) 1 for description (to max 3)
movement.

e.g.

• startGame [1]
• loads the game, displaying the load-up
screen[1] 6
1
• displayMap [1] AO2.2
6
• outputs the map onto the screen[1] (6)
• selectArea [1]
• the user clicks on the area of the map and this
is displayed on screen[1]
• loadPuzzle [1]
• loads the puzzle for the chosen area and
displays it on screen [1]

Examiner's Comment:
Most candidates scored well, but
some repeated items from the stem
of the question and gave answers
related to character movement
which were not creditworthy.

Total 6

We are not testing pseudocode


knowledge − answers that work but
do not match the pseudo code given
should still be credited full marks.
1 mark each

4 readMessage and fileName and


1
AO2.1 message are case sensitive
7
(4)
Examiner’s Comment:
Many candidates struggled to
produce good answers which could
have been calculated and did not
require factual recall.

Total 4

1 mark per bullet to max 3

• Defining procedure play


o Resetting bored to 0
o Outputting result 3
1
i AO3.2
8
(3)

e.g.

1 mark per bullet to max 3

• Defining procedure read


o Correct calculation 3
o Outputting result AO2.2
ii (1)
AO3.2
(2)
e.g. Examiner’s Comment:
Most candidates scored some credit,
but a disappointing number did not
give a correct procedural
declaration. The correct
mathematical expression to increase
the intelligence by 0.6% in (ii) was
often incorrectly given.

Total 6

1 mark per bullet, max 2 per sub-procedure


e.g.

• Select character (name, gender)


• Gives the user options for choosing a character

Do not award any user input related


• Choose level procedures e.g. Left/Right input (but
Give the user the choice of level (easy, normal,
• character movement output on
challenging) and take the user input
screen left/right would be valid)

6 Allow other reasonable responses


from the scenario e.g. generate
• Touch enemy AO2.1 enemy()
1 Called to determine if the character touches an (2)
i •
9 enemy AO2.2 Examiner’s Comments
(2)
AO3.2 Most candidates presented
(2) reasonable procedures within the
context of the question. Relatively
• Lose life
• Remove a life, if <0 then game over few made the mistake of reiterating
procedures to handle character
movement that was specified as an
example in the question.

• End level
• Move onto next level

One mark for identifying sensible subroutine, 1 mark for


description

2
1 mark per bullet
Examiner’s Comments
• Decision based on what the user has input AO2.1
ii
E.g. If they click left move the character left / if they (1) A number of answers lacked the
• click right move the character right / if they click AO2.2 clarity of a clear decision and
space bar make the character jump
(2) subsequent action that would be
performed. A number of answers
given did not relate to the user input
sub-procedure as specified.

Note: 1 Mark Max for a generic


description of pipelining
2
1 mark per bullet
Examiner’s Comments
ii The result from one process / procedure feeds into AO1.2

i the next (1)
Many candidates could define the
E.g. the result of detecting a character touching an AO2.2
• concept of pipelining. Fewer were
enemy feeds into reducing the number of lives
(1)
able to apply it within the context of
the given scenario.

Total 10

Examiner’s Comments
1 mark per bullet up to a maximum of 4 marks, e.g.: Most candidates achieved some
4 marks for this question, but few
• makes use of a (while) loop… (AO2.2 achieved complete responses. Many
• ….which will continually check the telephone ) identified iteration within the first
2
i number…. (2) version as key to repeating the
0
• …and repeatedly ask for a telephone number (AO3.3 sequence until the validation
to be re-entered…. ) conditions were met. Fewer could
• ….until the rules have been met (2) explain how version two of the code
would allow invalid data to be
entered into the system.

1 mark for stating a suitable procedure name and 1 The procedure name must be
mark for a suitable purpose (4 marks in total), e.g.: relevant to the context in the
question.
• Procedure Name: registerAccount
• Purpose: To load up the registration page Both a procedure name and
when the user wants to create a new account purpose must be stated for 2 marks.

• Procedure Name: validateDetails Allow other suitable examples that


4
• Purpose: To check the suitability of a new are relevant to the context.
(AO2.1
ii username and password entered
)
Examiner’s Comments
(4)
• Procedure Name: checkLogin Candidates needed to apply
• Purpose: Checks a username and password computational thinking and show
matches those stored when a customer logs in procedural identification. Most
scored full marks and identified
• Procedure Name: checkStock suitable procedures such as
• Purpose: Checks an item is in stock before the checking login details or adding
item can be added to a shopping basket items to shopping basket with clear
descriptions.
Must cover by reference and by
1 mark per bullet up to a maximum of 4 marks, e.g.: value to be given full marks.
2
ii • by reference will receive the memory location (AO1.2 Examiner’s Comments
i of where the data/variable is stored ) More candidates were able to
• by value will receive a copy of the data/variable (2) produce accurate definitions of
passing by value and passing by
reference than in previous series.

Total 10

You might also like