Paper1 ComputerScience MarkScheme
Paper1 ComputerScience MarkScheme
COMPUTER SCIENCE
8525/1A, 8525/1B, 8525/1C
Paper 1 Computational thinking and programming skills
Mark scheme
June 2022
Version: 1.0 Final
*226G8525/1/MS*
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
Mark schemes are prepared by the Lead Assessment Writer and considered, together with the relevant
questions, by a panel of subject teachers. This mark scheme includes any amendments made at the
standardisation events which all associates participate in and is the scheme which was used by them in
this examination. The standardisation process ensures that the mark scheme covers the students’
responses to questions and that every associate understands and applies it in the same correct way.
As preparation for standardisation each associate analyses a number of students’ scripts. Alternative
answers not already covered by the mark scheme are discussed and legislated for. If, after the
standardisation process, associates encounter unusual answers which have not been raised they are
required to refer these to the Lead Examiner.
It must be stressed that a mark scheme is a working document, in many cases further developed and
expanded on the basis of students’ reactions to a particular paper. Assumptions about future mark
schemes on the basis of one year’s document should be avoided; whilst the guiding principles of
assessment remain constant, details will change, depending on the content of a particular examination
paper.
Copyright information
AQA retains the copyright on all its publications. However, registered schools/colleges for AQA are permitted to copy material from this booklet for their own
internal use, with the following important exception: AQA cannot give permission to schools/colleges to photocopy any material that is acknowledged to a third
party even for internal use within the centre.
2
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
Note to Examiners
In the real world minor syntax errors are often identified and flagged by the development environment.
To reflect this, all responses in a high-level programming language will assess a candidate’s ability to
create an answer using precise programming commands/instructions but will avoid penalising them for
minor errors in syntax.
When marking program code, examiners must take account of the different rules between the languages
and only consider how the syntax affects the logic flow of the program. If the syntax is not perfect but
the logic flow is unaffected then the response should not be penalised.
The case of all program code written by students is to be ignored for the purposes of marking. This is
because it is not always clear which case has been used depending on the style and quality of
handwriting used.
Examiners must ensure they follow the mark scheme instructions exactly. If an examiner is unsure as to
whether a given response is worthy of the marks they must escalate the question to their team leader.
Before you apply the mark scheme to a student’s answer read through the answer and annotate it (as
instructed) to show the qualities that are being looked for. You can then apply the mark scheme.
When assigning a level you should look at the overall quality of the answer and not look to pick holes in
small and specific parts of the answer where the student has not performed quite as well as the rest. If
the answer covers different aspects of different levels of the mark scheme you should use a best fit
approach for defining the level and then use the variability of the response to help decide the mark within
the level, ie if the response is predominantly level 3 with a small amount of level 4 material it would be
placed in level 3 but be awarded a mark near the top of the level because of the level 4 content.
3
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
You may well need to read back through the answer as you apply the mark scheme to clarify points and
assure yourself that the level and the mark are appropriate.
Indicative content in the mark scheme is provided as a guide for examiners. It is not intended to be
exhaustive and you must credit other valid points. Students do not have to cover all of the points
mentioned in the Indicative content to reach the highest level of the mark scheme.
An answer which contains nothing of relevance to the question must be awarded no marks.
4
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
Total
Question Part Marking guidance
marks
01 1 Mark is for AO2 (apply) 1
B Line number 2;
Total
Question Part Marking guidance
marks
01 2 Mark is for AO2 (apply) 1
E 16;
Total
Question Part Marking guidance
marks
01 3 Mark is for AO2 (apply) 1
A Line number 1;
Total
Question Part Marking guidance
marks
01 4 Mark is for AO2 (apply) 1
B Line number 2;
Total
Question Part Marking guidance
marks
01 5 Mark is for AO2 (apply) 1
5
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
Total
Question Part Marking guidance
marks
01 6 Mark is for AO3 (refine) 1
C#
A
for (int x = 0; x < 5; x++) {
Console.Write("Enter a number: ");
int i = Convert.ToInt32(Console.ReadLine());
if (i % 2 == 0) {
Console.WriteLine(i * i);
}
else {
Console.WriteLine(i);
}
}
Python
A for x in range(0, 5):
i = int(input("Enter a number: "))
if i % 2 == 0:
print(i * i)
else:
print(i)
VB.NET
C
For x As Integer = 0 To 4
Console.Write("Enter a number: ")
Dim i As Integer = Console.ReadLine()
If i Mod 2 = 0 Then
Console.WriteLine(i * i)
Else
Console.WriteLine(i)
End If
Next
6
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
Total
Question Part Marking guidance
marks
02 1 2 marks for AO2 (apply) 2
7.0;
35.0 5
A. 7
Total
Question Part Marking guidance
marks
02 2 Mark is for AO2 (apply) 1
2 // two;
Total
Question Part Marking guidance
marks
02 3 2 marks for AO2 (apply) 2
I. Case
A. Programming language specific data types eg Single in VB.NET
Total
Question Part Marking guidance
marks
02 4 Mark is for AO1 (recall) 1
Boolean // Bool;
Int // Integer;
Date/Time;
Character;
I. Case
A. Any reasonable data type
7
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
Total
Question Part Marking guidance
marks
03 1 Mark is for AO3 (refine) 1
C#
string displayMessage = carReg + " is not valid";
Python
displayMessage = carReg + " is not valid"
VB.NET
Dim displayMessage As String = carReg + " is not
valid" //
Dim displayMessage As String = carReg & " is not
valid"
I. Case
I. Space between variable outputs
I. Order of strings
Total
Question Part Marking guidance
marks
03 2 Mark is for AO3 (refine) 1
C#
charge = hours * 2 + 2; //
charge = 2 + hours * 2;
Python
charge = hours * 2 + 2 //
charge = 2 + hours * 2
VB.NET
charge = hours * 2 + 2 //
charge = 2 + hours * 2
I. Case
I. Parentheses, unless altering result eg, hours * (2 + 2)
8
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
Total
Question Part Marking guidance
marks
04 1 Mark is for AO2 (apply) 1
Total
Question Part Marking guidance
marks
04 2 2 marks for AO2 (apply) 2
//
A. Program B has fewer variables; so, would use less memory (when
executing);
9
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
Total
Question Part Marking guidance
marks
05 1 2 marks for AO1 (recall) 2
Total
Question Part Marking guidance
marks
05 2 Mark is for AO2 (apply) 2
Mark is for AO3 (refine)
C#
Line number: 7;
Python
Line number: 7;
VB.NET
Line number: 7;
Total
Question Part Marking guidance
marks
05 3 Mark is for AO2 (apply) 1
10
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
Total
Question Part Marking guidance
marks
06 1 Mark is for AO1 (recall) 1
Total
Question Part Marking guidance
marks
06 2 2 marks for AO2 (apply) 2
Log out;
11
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
Total
Question Part Marking guidance
marks
07 2 marks for AO3 (design), 3 marks for AO3 (program) 5
Program Design
Note that AO3 (design) marks are for selecting appropriate techniques to use
to solve the problem, so should be credited whether the syntax of
programming language statements is correct or not and regardless of
whether the solution works.
Mark A for using meaningful variable names throughout and for using two
variables to store the two email address inputs;
Mark B for the use of a selection construct // use of multiple selection
constructs;
Program Logic
Mark C for using user input and storing the results in two variables correctly
for the first email address and the second email address;
Mark D for a correct expression that checks if the first entered email address
is equal to the second entered email address (or not equal to);
Mark E for outputting Do not match and Match in logically separate
places such as the IF and ELSE part of selection, and for outputting the email
address if both email addresses match;
I. Case
I. Messages or no messages with input statements
12
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
13
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
14
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
Total
Question Part Marking guidance
marks
08 3 marks for AO3 (design) and 4 marks for AO3 (program) 7
Program Design
Note that AO3 (design) marks are for selecting appropriate techniques to
use to solve the problem, so should be credited whether the syntax of
programming language statements is correct or not and regardless of
whether the solution works.
Program Logic
Mark D for using user input and storing the result in two variables correctly
for the items sold and years of employment;
Mark E for correct expression that checks the years entered against the
criteria for years employed;
Mark F for correct Boolean expressions throughout;
Mark G for outputting correct bonus depending on inputs entered in logically
separate places such as IF, ELSE part of selection;
I. Case
I. Prompts
15
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
16
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
Total
Question Part Marking guidance
marks
09 1 Mark is for AO2 (apply) 1
D S;
Total
Question Part Marking guidance
marks
09 2 Mark is for AO2 (apply) 1
B 2;
Total
Question Part Marking guidance
marks
09 3 Mark is for AO2 (apply) 1
Sara;
I. Case
Total
Question Part Marking guidance
marks
09 4 2 marks for AO3 (program) 2
Model Answer
var SUBSTRING(2, 4, name1)
OUTPUT (names[1] + var)
17
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
Total
Question Part Marking guidance
marks
10 1 4 marks for AO2 (apply) 4
• 1 mark for the first value of column a and the first value of column b both
correct;
• 1 mark for column a correctly integer dividing the first value in column a
by 2 down to 1 and no other values;
• 1 mark for minimum of six values in the b column, incrementing by one.
The number of values in the b column must match the number of values
in the a column;
• 1 mark for OUTPUT being the final value of b and no other values in the
output column, and no other values in column n; A. follow through from
column b
n a b OUTPUT
50 50 0
25 1
12 2
6 3
3 4
1 5
5
Total
Question Part Marking guidance
marks
10 2 Mark is for AO2 (apply) 1
1;
Total
Question Part Marking guidance
marks
10 3 Mark is for AO2 (apply) 1
1 mark for giving a new identifier that describes this purpose, eg count //
total // times // numberOfTimes // counter
18
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
Total
Question Part Marking guidance
marks
10 4 2 marks for AO2 (apply) 2
19
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
Total
Question Part Marking guidance
marks
11 1 6 marks for AO3 (program) 6
1 mark for each correct item in the correct location
size size / 8
RETURN size
ENDSUBROUTINE
I. Case
R. Incorrect order of parameters
Total
Question Part Marking guidance
marks
11 2 Mark is for AO1 (understanding) 1
//
Total
Question Part Marking guidance
marks
11 3 3 marks for AO1 (understanding) 3
20
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
Total
Question Part Marking guidance
marks
12 1 6 marks for AO2 (apply) 6
arr
i j temp
[0] [1] [2]
c b a
0 0 c
b c 1 c
a c 1 0 b
a b 1
Total
Question Part Marking guidance
marks
12 2 Mark is for AO2 (apply) 1
Sort (the values in order) // bubble sort // put into alphabetical order;
21
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
Total
Question Part Marking guidance
marks
12 3 Mark is for AO2 (apply) 1
//
The algorithm will attempt to use an index which is greater than the
maximum array index of 2;
22
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
Total
Question Part Marking guidance
marks
13 1 2 marks for AO3 (design), 2 marks for AO3 (program) 4
Program Design
Note that AO3 (design) marks are for selecting appropriate techniques to use
to solve the problem, so should be credited whether the syntax of
programming language statements is correct or not and regardless of
whether the solution works.
Program Logic
Mark C for using a Boolean condition that checks the lower or upper bound of
position;
Mark D for using a Boolean condition that checks BOTH the lower and upper
bounds of position correctly;
Marks C and D could be one expression eg 0 < position <= 100;
I. Case
I. Missing prompts
23
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
I. Indentation in C#
I. WriteLine instead of Write
24
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
I. Indentation in VB.NET
I. WriteLine instead of Write
25
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
Total
Question Part Marking guidance marks
13 2 2 marks for AO3 (design), 4 marks for AO3 (program) 6
Any solution that does not map to the mark scheme refer to lead examiner
Program Design
Note that AO3 (design) marks are for selecting appropriate techniques to use
to solve the problem, so should be credited whether the syntax of programming
language statements is correct or not and regardless of whether the solution
works.
Mark A for the idea of using an iteration structure which attempts to access
each element in the cards array; // attempts to repeat 100 times;
Mark B for the idea of using a selection structure which attempts to compare
two cards;
Program Logic
Mark C for using a loop or similar to correctly iterate through the cards array
using valid indices that do not go out of range;
Mark D for using correct Boolean conditions that compare values in the cards
array;
Mark E for correctly checking if there are five values in the cards array that
are in sequence;
Mark F for setting gameWon to True in the correct place;
I. Case
26
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
I. Indentation in C#
count = 1 (Part of E)
for i in range(99): (C)
if cards[i] + 1 == cards[i + 1]: (D, Part of E)
count = count + 1 (Part of E)
if count == 5: (Part F)
gameWon = True (Part F)
else:
count = 1 (Part of E)
count = 0 (Part of E)
i = 0 (Part of C)
while i < len(cards) - 1: (Part of C)
if cards[i] + 1 == cards[i + 1]: (D, Part of E)
count = count + 1 (Part of E)
if count == 4: (Part F)
gameWon = True (Part F)
else:
count = 0 (Part of E)
i = i + 1 (Part of C)
27
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
I. Indentation in VB.NET
28
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
Total
Question Part Marking guidance
marks
14 1 4 marks for AO3 (refine) 4
1 mark for initialising j to 0 in correct place;
1 mark for using i and j as indices in ticket;
1 mark for incrementing j by 1 in correct place;
1 mark for incrementing i by 1 in correct place;
int i = 0;
while (i < 3) {
int j = 0;
while (j < 3) {
ticket[i, j] = generateKeyTerm();
j = j + 1;
}
i = i + 1;
}
int i = 0;
while (i < 3) {
int j = 0;
while (j < 3) {
ticket[i, j] = generateKeyTerm();
j++;
}
i++;
}
i = 0
while i < 3:
j = 0
while j < 3:
ticket[i][j] = generateKeyTerm()
j = j + 1
i = i + 1
29
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
i = 0
while i < 3:
j = 0
while j < 3:
ticket[i][j] = generateKeyTerm()
j += 1
i += 1
Dim i As Integer = 0
While (i < 3)
Dim j As Integer = 0
While (j < 3)
ticket(i, j) = generateKeyTerm()
j = j + 1
End While
i = i + 1
End While
Dim i As Integer = 0
While (i < 3)
Dim j As Integer = 0
While (j < 3)
ticket(i, j) = generateKeyTerm()
j += 1
End While
i += 1
End While
30
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
Total
Question Part Marking guidance
marks
14 2 4 marks for AO3 (design), 4 marks for AO3 (program) 8
Any solution that does not map to the mark scheme refer to lead examiner
Program Design
Note that AO3 (design) marks are for selecting appropriate techniques to use
to solve the problem, so should be credited whether the syntax of
programming language statements is correct or not and regardless of
whether the solution works.
Program Logic
Mark E for initialising a counter to 0 and incrementing the counter in the
relevant place;
Mark F for the correct use of indices which accesses each element in the
array;
Mark G for using a Boolean condition that tests for equality of the
array elements with the correct value "*";
Mark H for outputting the word Bingo and the count of asterisks in the
relevant place;
I. Case
31
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
32
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
}
C# Example 3 (fully correct)
All design marks are achieved (Marks A, B, C and D)
int i = 0; (Part of F)
while (i < 3) { (Part of F)
i = 0;
while (i < 3) {
if (ticket[2, i] == "*") {
count += 1; }
i++;
}
if (count < 9) { (Part of H)
Console.WriteLine(count);
}
else {
Console.WriteLine("Bingo"); (Part of H)
}
}
I. Indentation in C#
I. Missing static in C#
def checkWinner(ticket):
count = 0 (Part of E)
for i in range(3): (Part of F)
for j in range(3): (Part of F)
if ticket[i][j] == "*": (Part of F, G)
count = count + 1 (Part of E)
if count == 9:
print("Bingo") (Part of H)
else:
print(count) (Part of H)
33
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
def checkWinner(ticket):
count = 0 (Part of E)
if ticket[0][0] == "*": (F, G)
count += 1 (Part of E)
if ticket[0][1] == "*":
count += 1
if ticket[0][2] == "*":
count += 1
if ticket[1][0] == "*":
count += 1
if ticket[1][1] == "*":
count += 1
if ticket[1][2] == "*":
count += 1
if ticket[2][0] == "*":
count += 1
if ticket[2][1] == "*":
count += 1
if ticket[2][2] == "*":
count += 1
if count < 9:
print(count) (Part of H)
else:
print("Bingo") (Part of H)
34
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
def checkWinner(ticket):
count = 0 (Part of E)
i = 0
while i < 3: (Part of F)
if ticket[0][i] == "*": (Part of F, G)
count = count + 1 (Part of E)
i = i + 1
i = 0
while i < 3:
if ticket[1][i] == "*":
count = count + 1
i = i + 1
i = 0
while i < 3:
if ticket[2][i] == "*":
count = count + 1
i = i + 1
if count == 9:
print("Bingo") (Part of H)
else:
print(count) (Part of H)
Sub checkWinner(ticket)
If count = 9 Then
Console.WriteLine("Bingo") (Part of H)
Else
Console.WriteLine(count) (Part of H)
End If
End Sub
35
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
Sub checkWinner(ticket)
36
MARK SCHEME – GCSE COMPUTER SCIENCE – 8525/1 – JUNE 2022
Sub checkWinner(ticket)
i = 0
While i < 3
If ticket(1,i) = "*" Then
count = count + 1
End If
i = i + 1
End While
i = 0
While i < 3
If ticket(2,i) = "*" Then
count = count + 1
End If
i = i + 1
End While
If count = 9 Then
Console.WriteLine("Bingo") (Part of H)
Else
Console.WriteLine(count) (Part of H)
End If
End Sub
I. Indentation in VB.NET
37