IGCSE Computer Science Mark Scheme 2025
IGCSE Computer Science Mark Scheme 2025
Published
This mark scheme is published as an aid to teachers and candidates, to indicate the requirements of the
examination. It shows the basis on which Examiners were instructed to award marks. It does not indicate the
details of the discussions that took place at an Examiners’ meeting before marking began, which would have
considered the acceptability of alternative answers.
Mark schemes should be read in conjunction with the question paper and the Principal Examiner Report f or
Teachers.
Cambridge International will not enter into discussions about these mark schemes.
Cambridge International is publishing the mark schemes f or the February/March 2025 series f or most
Cambridge IGCSE, Cambridge International A and AS Level components, and some Cambridge O Level
components.
These general marking principles must be applied by all examiners when marking candidate answers. They should be applied alon gside the
specific content of the mark scheme or generic level descriptions for a question. Each question paper and mark scheme will also comply with these
marking principles.
• the specific content of the mark scheme or the generic level descriptors for the question
• the specific skills defined in the mark scheme or in the generic level descriptors for the question
• the standard of response required by a candidate as exemplified by the standardisation scripts.
Marks awarded are always whole marks (not half marks, or other fractions).
• marks are awarded for correct/valid answers, as defined in the mark scheme. However, credit is given for valid answers which go beyond
the scope of the syllabus and mark scheme, referring to your Team Leader as appropriate
• marks are awarded when candidates clearly demonstrate what they know and can do
• marks are not deducted for errors
• marks are not deducted for omissions
• answers should only be judged on the quality of spelling, punctuation and grammar when these features are specifically assess ed by the
question as indicated by the mark scheme. The meaning, however, should be unambiguous.
Rules must be applied consistently, e.g. in situations where candidates have not followed instructions or in the application of generic level
descriptors.
Marks should be awarded using the full range of marks defined in the mark scheme for the question (however; the use of the fu ll mark range may
be limited according to the quality of the candidate responses seen).
Marks awarded are based solely on the requirements as defined in the mark scheme. Marks should not be awarded with grade thresholds or
grade descriptors in mind.
Examiners use a system of annotations as a shorthand for communicating their marking decisions to one another. Examiners are trained during the
standardisation process on how and when to use annotations. The purpose of annotations is to inform the standard isation and monitoring
processes and guide the supervising examiners when they are checking the work of examiners within their team. The meaning of annotations and
how they are used is specific to each component and is understood by all examiners who mark the component.
We publish annotations in our mark schemes to help centres understand the annotations they may see on copies of scripts. Note that there may
not be a direct correlation between the number of annotations on a script and the mark awarded. Similarly, the use of an annotation may not be an
indication of the quality of the response.
The annotations listed below were available to examiners marking this component in this series.
Annotations
Annotation Meaning
Correct point
Incorrect point
Follow through
Repetition
Ignore
Omission
Section incorrect
AO2 mark
AO3 mark
Not enough
Note: No marks are awarded for using brand names of software packages or hardware.
1 C 1
2 B 1
Stage Description
Example:
REPEAT
INPUT Number
IF MOD(Number, 1) <> 0
THEN
Or
INPUT Number
WHILE MOD(Number, 1) <> 0 (DO)
OUTPUT "Please try again"
INPUT Number
ENDWHILE
Example:
OUTPUT ROUND(Total / 1000, 2)
Continue?
Y 7 S 9 −2
Continue?
Y 5 M 12 60
Continue?
Y 25 D 5 5
Continue?
7(b) It is a calculator. 1
OR
Correct output
Valencia Venezuela 1,983,445
Lima Peru 11,206,000
Buenos Aires Argentina 15,490,415
Correct code:
SELECT Code, City, Country, Continent
FROM MajorCity
WHERE Capital = TRUE;
9(a) One mark for each correct gate, with the correct input(s) as shown. 5
B Z
A B C Z
0 0 0 1
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 0
Requirements (techniques)
R1 displays menu and allows choice, then proceeds based on valid choice, (nested iteration, input, output, selection,
validation).
R2 checks length of string, checks contents of array for matches, stores approved data
(validation, string handling (length), selection, input, storage).
R3 outputs contents of arrays. Program continues until user chooses stop.
(output, iteration).
10 THEN
// If code already used, flag changed and re-entry required
Used TRUE
OUTPUT "This code has already been used,
please try again "
ELSE
IndexCheck IndexCheck + 1
ENDIF
ENDWHILE
// If code correct length and not previously used
// it is stored, along with first and last name
IF NOT Used
THEN
MemberID[IndexCheck] Code
OUTPUT "Enter your first name "
INPUT Name[IndexCheck, 1]
OUTPUT "Enter your last name "
INPUT Name[IndexCheck, 2]
ENDIF
ENDIF
UNTIL LENGTH(Code) = 6 AND NOT Used
ENDIF
// User chooses to output all member details
IF Answer = 2
THEN
IndexOut 1
// All array contents output using iteration
WHILE MemberID[IndexOut] <> ""
OUTPUT "Membership code: ", MemberID[IndexOut]
OUTPUT "First name: ", Name[IndexOut, 1]
OUTPUT "Last name: ", Name[IndexOut, 2]
IndexOut IndexOut + 1
ENDWHILE
ENDIF
UNTIL Answer = 3
AO2: Apply knowledge and understanding of the principles and concepts of computer science to a given context, including the
analysis and design of computational or programming problems
At least one programming technique Some programming techniques used The range of programming techniques
has been used. are appropriate to the problem. used is appropriate to the problem.
Any use of selection, iteration, counting, More than one technique seen applied All criteria stated for the scenario have
totalling, input and output. to the scenario, check the list of been covered by the use of appropriate
techniques needed. programming techniques, check the list
No creditable of techniques needed.
response.
Some data has been stored but not Some of the data structures chosen are The data structures chosen are
appropriately. appropriate and store some of the data appropriate and store all the data
required. required.
Any use of variables or arrays or other
language dependent data structures More than one data structure used to The data structures used store all the
e.g. Python lists. store data required by the scenario. data required by the scenario.
Program seen without relevant Program seen with some relevant The program has been fully commented
comments. comment(s).
Some identifier names used are The majority of identifiers used are Suitable identifiers with names
appropriate. appropriately named. meaningful to their purpose have been
used throughout.
Some of the data structures used have Most of the data structures used have
meaningful names. meaningful names. All of the data structures used have
meaningful names.
The solution is illogical. The solution contains parts that may be The program is in a logical order.
illogical.
No creditable The solution is inaccurate in many The solution contains parts that are The solution is accurate.
response. places. inaccurate.
Solution logically performs all the tasks
Solution contains few lines of code with Solution contains lines of code with given in the scenario. Ignore minor
errors that attempt to perform a task some errors that logically perform tasks syntax errors.
given in the scenario. given in the scenario. Ignore minor
syntax errors.
The solution attempts at least one of the The solution attempts to meet most of The solution meets all the requirements
requirements. the requirements. given in the question.
Solution contains lines of code that Solution contains lines of code that Solution performs all the tasks given in
attempt at least one task given in the attempt most tasks given in the the scenario.
scenario. scenario.
Published
This mark scheme is published as an aid to teachers and candidates, to indicate the requirements of the
examination. It shows the basis on which Examiners were instructed to award marks. It does not indicate the
details of the discussions that took place at an Examiners’ meeting before marking began, which would have
considered the acceptability of alternative answers.
Mark schemes should be read in conjunction with the question paper and the Principal Examiner Report f or
Teachers.
Cambridge International will not enter into discussions about these mark schemes.
Cambridge International is publishing the mark schemes f or the May/June 2025 series f or most
Cambridge IGCSE, Cambridge International A and AS Level components, and some Cambridge O Level
components.
These general marking principles must be applied by all examiners when marking candidate answers. They should be applied alon gside the
specific content of the mark scheme or generic level descriptions for a question. Each question paper and mark scheme will also comply with these
marking principles.
• the specific content of the mark scheme or the generic level descriptors for the question
• the specific skills defined in the mark scheme or in the generic level descriptors for the question
• the standard of response required by a candidate as exemplified by the standardisation scripts.
Marks awarded are always whole marks (not half marks, or other fractions).
• marks are awarded for correct/valid answers, as defined in the mark scheme. However, credit is given for valid answers which go beyond
the scope of the syllabus and mark scheme, referring to your Team Leader as appropriate
• marks are awarded when candidates clearly demonstrate what they know and can do
• marks are not deducted for errors
• marks are not deducted for omissions
• answers should only be judged on the quality of spelling, punctuation and grammar when these features are specifically assess ed by the
question as indicated by the mark scheme. The meaning, however, should be unambiguous.
Rules must be applied consistently, e.g. in situations where candidates have not followed instructions or in the application of generic level
descriptors.
Marks should be awarded using the full range of marks defined in the mark scheme for the question (however; the use of the fu ll mark range may
be limited according to the quality of the candidate responses seen).
Marks awarded are based solely on the requirements as defined in the mark scheme. Marks should not be awarded with grade thre sholds or
grade descriptors in mind.
Examiners use a system of annotations as a shorthand for communicating their marking decisions to one another. Examiners are trained during the
standardisation process on how and when to use annotations. The purpose of annotations is to inform the standard isation and monitoring
processes and guide the supervising examiners when they are checking the work of examiners within their team. The meaning of annotations and
how they are used is specific to each component and is understood by all examiners who mark the component.
We publish annotations in our mark schemes to help centres understand the annotations they may see on copies of scripts. Note that there may
not be a direct correlation between the number of annotations on a script and the mark awarded. Similarly, the use of an annotation may not be an
indication of the quality of the response.
The annotations listed below were available to examiners marking this component in this series.
Annotations
Annotation Meaning
Correct point
Incorrect point
Follow through
Repetition
Ignore
Omission
Section incorrect
AO2 mark
AO3 mark
Not enough
Note: No marks are awarded for using brand names of software packages or hardware.
1 C 1
format check
Name has been entered.
range check
Password has exactly 12
characters.
check digit
check.
Student ID must contain 2 letters presence check
followed by 4-digit number.
Examples
Count ← 1
REPEAT
OUTPUT "Please enter a name"
INPUT Name
Names[Count] ← Name
Count ← Count + 1
UNTIL Count > 10
Or
Count ← 1
WHILE Count <= 10 DO
OUTPUT "Please enter a name"
INPUT Name
Names[Count] ← Name
Count ← Count + 1
ENDWHILE
Example
6(b) One mark for method, one mark for example – max 2. 2
7(a) One mark for each correct gate, with the correct input(s) as shown. 4
B X
7(b) 4
A B C X 4 marks for 8 correct outputs
3 marks for 6/7 correct outputs
0 0 0 1 2 marks for 4/5 correct outputs
1 mark for 2/3 correct outputs
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 0
8(a)(i) Boolean 1
8(a)(ii) There are only 2 responses / Only Yes and No / True and False 1
SELECT Destination
FROM BUS
WHERE Return = Yes;
DECLARE A: INTEGER
DECLARE B: STRING
9(b) One mark for using FUNCTION and ENDFUNCTION and RETURNS STRING 6
One mark for naming the function Odds.
One mark for defining the parameter correctly.
One mark for determining if odd/even using MOD/DIV/ROUND using parameter.
One mark for correctly returning ‘Odd’ and ‘Even’.
One mark for correct function call
Example:
B ← Odds(A)
21 D You achieved a D
46 C You achieved a C
63 C You achieved a C
91 C You achieved a C
12 D You achieved a D
Candidates can be awarded all three marks if they have provided only the correct first row.
Data Structures required names shown underlined must be used as given in the scenario Arrays or lists
CompetitorName, CompetitorScore, Points
Requirements (techniques)
R1 inputs and validates the points for each event for each competitor (nested iteration, iteration, input, output)
R2 finds and outputs the name of the competitors with the highest score for each event (nested iteration, output and
selection)
R3 totals the score for each competitor, finds and outputs the names with the highest score for all five events(iteration,
totalling, output and selection)
// meaningful identifier names and appropriate data structures (variables, constants and the given arrays) to store all the
data required. Note that candidates did not need to declare any arrays or variables as stated in the question paper.
Winner 0
Max 0
Requirement 1
FOR Event 1 TO 5
For X 1 TO 25 // loops through each entrant
REPEAT
OUTPUT "Please enter a score between 0 and 100 for ", Competitor[X], " for
event ", Event
INPUT Score
UNTIL Score >= 0 AND Score <= 100 //validates score
CompetitorScore[X, Event] Score //stores score for each Event
Points[X] Points[X] + Score //can total score here
NEXT X
NEXT Event
11 Requirement 2 15
FOR Event 1 TO 5
For X 1 TO 25
IF CompetitorScore[X, Event] > Highest[Event] //calculates the highest score
THEN
Highest[Event] = CompetitorScore[X, Event]
ENDIF
NEXT X
NEXT Event
FOR Event 1 TO 5 //outputs the names of competitors with the highest score
For X 1 TO 25
OUTPUT "The winner of a medal for the highest score in event ", Event
IF CompetitorScore[X, Event] = Highest[Event]
THEN
OUTPUT CompetitorName[X]
ENDIF
NEXT X
NEXT Event
Requirement 3
AO2: Apply knowledge and understanding of the principles and concepts of computer science to a given
context, including the analysis and design of computational or programming problems
No creditable At least one programming Some programming techniques The range of programming
response. technique has been used. used are appropriate to the techniques used is appropriate
Any use of selection, iteration, problem. to the problem.
counting, totalling, input and More than one technique seen All criteria stated for the
output. applied to the scenario, check scenario have been covered by
the list of techniques needed. the use of appropriate
programming techniques,
check the list of techniques
needed.
Some data has been stored but Some of the data structures The data structures chosen are
not appropriately. chosen are appropriate and appropriate and store all the
Any use of variables or arrays store some of the data data required.
or other language dependent required. The data structures used store
data structures e.g. Python More than one data structure all the data required by the
lists. used to store data required by scenario.
the scenario.
11 15
Marking Instructions in italics
No creditable Program seen without relevant Program seen with some The program has been fully
response. comments. relevant comment(s). commented.
Some identifier names used The majority of identifiers used Suitable identifiers with names
are appropriate. are appropriately named. meaningful to their purpose
Some of the data structures Most of the data structures have been used throughout.
used have meaningful names. used have meaningful names. All the data structures used
have meaningful names.
The solution is illogical. The solution contains parts that The program is in a logical
may be illogical. order.
The solution is inaccurate in The solution contains parts that The solution is accurate.
many places. are inaccurate. Solution logically performs all
Solution contains few lines of Solution contains lines of code the tasks given in the scenario.
code with errors that attempt to with some errors that logically Ignore minor syntax errors.
perform a task given in the perform tasks given in the
scenario. scenario. Ignore minor syntax
errors.
The solution attempts at least The solution meets most of the The solution meets all the
one of the requirements. requirements. requirements given in the
Solution contains lines of code Solution contains lines of code question.
that attempt at least one task that perform most tasks given Solution performs all the tasks
given in the scenario. in the scenario. given in the scenario.
Published
This mark scheme is published as an aid to teachers and candidates, to indicate the requirements of the
examination. It shows the basis on which Examiners were instructed to award marks. It does not indicate the
details of the discussions that took place at an Examiners’ meeting before marking began, which would have
considered the acceptability of alternative answers.
Mark schemes should be read in conjunction with the question paper and the Principal Examiner Report f or
Teachers.
Cambridge International will not enter into discussions about these mark schemes.
Cambridge International is publishing the mark schemes f or the May/June 2025 series f or most
Cambridge IGCSE, Cambridge International A and AS Level components, and some Cambridge O Level
components.
These general marking principles must be applied by all examiners when marking candidate answers.
They should be applied alongside the specific content of the mark scheme or generic level
descriptions for a question. Each question paper and mark scheme will also comply with these
marking principles.
• the specific content of the mark scheme or the generic level descriptors for the question
• the specific skills defined in the mark scheme or in the generic level descriptors for the question
• the standard of response required by a candidate as exemplified by the standardisation scripts.
Marks awarded are always whole marks (not half marks, or other fractions).
• marks are awarded for correct/valid answers, as defined in the mark scheme. However, credit
is given for valid answers which go beyond the scope of the syllabus and mark scheme,
referring to your Team Leader as appropriate
• marks are awarded when candidates clearly demonstrate what they know and can do
• marks are not deducted for errors
• marks are not deducted for omissions
• answers should only be judged on the quality of spelling, punctuation and grammar when these
features are specifically assessed by the question as indicated by the mark scheme. The
meaning, however, should be unambiguous.
Rules must be applied consistently, e.g. in situations where candidates have not followed
instructions or in the application of generic level descriptors.
Marks should be awarded using the full range of marks defined in the mark scheme for the question
(however; the use of the full mark range may be limited according to the quality of the candidate
responses seen).
Marks awarded are based solely on the requirements as defined in the mark scheme. Marks should
not be awarded with grade thresholds or grade descriptors in mind.
Examiners use a system of annotations as a shorthand for communicating their marking decisions to
one another. Examiners are trained during the standardisation process on how and when to use
annotations. The purpose of annotations is to inform the standard isation and monitoring processes
and guide the supervising examiners when they are checking the work of examiners within their team.
The meaning of annotations and how they are used is specific to each component and is understood
by all examiners who mark the component.
We publish annotations in our mark schemes to help centres understand the annotations they may
see on copies of scripts. Note that there may not be a direct correlation between the number of
annotations on a script and the mark awarded. Similarly, the use of an annotation may not be an
indication of the quality of the response.
The annotations listed below were available to examiners marking this component in this series.
Annotations
Annotation Meaning
Correct point
Incorrect point
Follow through
Repetition
Ignore
Omission
Section incorrect
AO2 mark
AO3 mark
Not enough
Annotation Meaning
Note: No marks are awarded for using brand names of software packages or hardware.
1 D 1
output
input
The area of fence is calculated as
40 square metres.
Normal test data: −50 (any integer value between 0 and −100, inclusive)
Abnormal test data: 50 (any value outside the range 0 and −100, inclusive, or
any non-numeric input and non-integers
Extreme test data: 0 // −100
Boundary test data: 1 // 0 // −100 // −101
4(a) To check that the value entered has not changed on input. 1
For example,
For example,
MP1 Declaration of new variable for tallest person / largest value at start of
algorithm
MP2 Initialisation of largest variable to a low number e.g. 0
MP3 New selection statement after input of height to compare it with current
largest value
MP4 If input of height is larger than current largest variable, it should become
the new largest value
MP5 Outside the loop, output the current value of the largest variable.
2 1 RACECAR TRUE 1 7 R R
2 6 A A
3 5 C C
4 4
Successful
2 TREAT TRUE 1 5 T T
2 4 R A
FALSE NOT
successful
6(b) Finds words that read the same forwards and backwards. 1
MP1 Uses an index to mark the start and end of each word // uses V1 to
mark the start of the word and V2 to mark the end
MP2 After each check, these are moved to the next character in the word at
each end of the word // V1 is incremented by 1 and V2 is decremented
by 1 after each check.
MP3 When the two indexes match or cross, the whole word has been
checked // When V1 = V2 or V1 > V2, the whole word has been
checked
MP4 The algorithm will exit if it is found that two compared letters are not the
same.
START
Count 0
Total 0
INPUT Value
IS Count = 50 No
Count Count + 1 ?
Yes
OUTPUT Total
OUTPUT Total/50
STOP
8(a) One mark for the logic gate and one mark for the truth table 2
Truth table:
A B X
0 0 0
0 1 1
1 0 1
1 1 0
MP1 A AND
MP2 (NOT B OR NOT C) // NOT(B AND C) // (B NAND C)
Or
Example answers
A B C X
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 1
1 1 0 1
1 1 1 0
Boolean Subway
real AverageIncome
Correct code:
10 Due to an issue with this question, the question has been removed from the 15
question paper.
Published
This mark scheme is published as an aid to teachers and candidates, to indicate the requirements of the
examination. It shows the basis on which Examiners were instructed to award marks. It does not indicate the
details of the discussions that took place at an Examiners’ meeting before marking began, which would have
considered the acceptability of alternative answers.
Mark schemes should be read in conjunction with the question paper and the Principal Examiner Report f or
Teachers.
Cambridge International will not enter into discussions about these mark schemes.
Cambridge International is publishing the mark schemes f or the May/June 2025 series f or most
Cambridge IGCSE, Cambridge International A and AS Level components, and some Cambridge O Level
components.
These general marking principles must be applied by all examiners when marking candidate answers. They should be applied alon gside the
specific content of the mark scheme or generic level descriptions for a question. Each question paper and mark scheme will also comply with these
marking principles.
• the specific content of the mark scheme or the generic level descriptors for the question
• the specific skills defined in the mark scheme or in the generic level descriptors for the question
• the standard of response required by a candidate as exemplified by the standardisation scripts.
Marks awarded are always whole marks (not half marks, or other fractions).
• marks are awarded for correct/valid answers, as defined in the mark scheme. However, credit is given for valid answers which go beyond
the scope of the syllabus and mark scheme, referring to your Team Leader as appropriate
• marks are awarded when candidates clearly demonstrate what they know and can do
• marks are not deducted for errors
• marks are not deducted for omissions
• answers should only be judged on the quality of spelling, punctuation and grammar when these features are specifically assess ed by the
question as indicated by the mark scheme. The meaning, however, should be unambiguous.
Rules must be applied consistently, e.g. in situations where candidates have not followed instructions or in the application of generic level
descriptors.
Marks should be awarded using the full range of marks defined in the mark scheme for the question (however; the use of the fu ll mark range may
be limited according to the quality of the candidate responses seen).
Marks awarded are based solely on the requirements as defined in the mark scheme. Marks should not be awarded with grade thre sholds or
grade descriptors in mind.
Examiners use a system of annotations as a shorthand for communicating their marking decisions to one another. Examiners are trained during the
standardisation process on how and when to use annotations. The purpose of annotations is to inform the standard isation and monitoring
processes and guide the supervising examiners when they are checking the work of examiners within their team. The meaning of annotations and
how they are used is specific to each component and is understood by all examiners who mark the component.
We publish annotations in our mark schemes to help centres understand the annotations they may see on copies of scripts. Note that there may
not be a direct correlation between the number of annotations on a script and the mark awarded. Similarly, the use of an annotation may not be an
indication of the quality of the response.
The annotations listed below were available to examiners marking this component in this series.
Annotations
Annotation Meaning
Correct point
Incorrect point
Follow through
Repetition
Ignore
Omission
Section incorrect
AO2 mark
AO3 mark
Not enough
Note: No marks are awarded for using brand names of software packages or hardware.
PassCount 0
RejectCount 0
INPUT
Weight
Yes
IS Weight = –1
No ?
OUTPUT
IS Weight >= 16.2 No PassCount
AND Weight <= 17.2
?
Yes OUTPUT
RejectCount
PassCount PassCount + 1
RejectCount RejectCount + 1
STOP
MP1 Initialise a new variable at the start of the flowchart to total the biscuit weights.
MP2 Near the point where PassCount is incremented/after the yes for the weight decision box, add a new process
(box)
MP3 … to add the weight of the current biscuit to the running total weight.
MP4 Outside the loop, calculate the average weight as total weight divided by number of biscuits that passed
(PassCount)
MP5 Output the average weight, outside the loop.
355
355 / 10
35
355 MOD 10
35.5
For example,
MP1 Correct call command and use of Swap for procedure name
MP2 Two parameters referring to the correct indices of array elements to be swapped, as shown in the original
algorithm. Index + 1 and Index.
For example,
MP1 Global variables can be used throughout the program and its procedures // The memory used by the variables is
not recovered until the program terminates.
MP2 The variable declared in part 3(b)(i) is a local variable and can only be used in that procedure // The memory
used by a local variable is recovered at the end of the procedure.
4(a)(ii) One mark per correct piece of test data, max two 4
One mark per correct reason, max two
Abnormal test data: 150 (any non-integer or any value outside the range 10 and 95)
Reason: This data is out of range so should be rejected
For example,
Correct code:
Store[]
Word Index Letter [1] [2] [3] [4] [5] [6] [7] [8] OUTPUT
COMPUTER 1 C C
2 O
3 M M
4 P P
5 U
6 T T
7 E
8 R R
1 C
2
3 M
4 P
5
6(a)
6 T
7
8 R
7(a) One mark for the logic gate and one mark for the truth table 2
Truth table:
A B Z
0 0 1
0 1 0
1 0 0
1 1 0
7(b)(i) One mark per mark point, max two directly from the problem 2
Or
One mark per mark point, max two with some simplification from the problem
Or
One mark per mark point, max two with more simplification from the problem
Example answers:
L M S A
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 0
Requirements (techniques)
R1 initialises arrays, displays menu and allows choice, then proceeds based on valid choice, (nested iteration, input,
output, selection, validation).
R2 enters data and stores into array at first available location. The code allows for additional data to be input, as required.
(counting, selection, input, storage, iteration if selected).
R3 finds specific data based on user input and outputs results. Appropriate output messages, including if video not found.
Program continues until stopped by user.
(input, output, linear search, iteration).
AO2: Apply knowledge and understanding of the principles and concepts of computer science to a given context, including the
analysis and design of computational or programming problems
No creditable At least one programming technique Some programming techniques used The range of programming techniques
response. has been used. are appropriate to the problem. used is appropriate to the problem.
Any use of selection, iteration, More than one technique seen applied All criteria stated for the scenario have
counting, totalling, input and output. to the scenario, check the list of been covered by the use of appropriate
techniques needed. programming techniques, check the list of
techniques needed.
Some data has been stored but not Some of the data structures chosen The data structures chosen are
appropriately. are appropriate and store some of the appropriate and store all the data
Any use of variables or arrays or other data required. required.
language dependent data structures More than one data structure used to The data structures used store all the
e.g. Python lists. store data required by the scenario. data required by the scenario.
No creditable Program seen without relevant Program seen with some relevant The program has been fully commented
response. comments. comment(s).
Some identifier names used are The majority of identifiers used are Suitable identifiers with names
appropriate. appropriately named. meaningful to their purpose have been
Some of the data structures used Most of the data structures used have used throughout.
have meaningful names. meaningful names. All of the data structures used have
meaningful names.
The solution is illogical. The solution contains parts that may The program is in a logical order.
be illogical.
The solution is inaccurate in many The solution contains parts that are The solution is accurate.
places. inaccurate. Solution logically performs all the tasks
Solution contains few lines of code Solution contains lines of code with given in the scenario. Ignore minor
with errors that attempt to perform a some errors that logically perform syntax errors.
task given in the scenario. tasks given in the scenario. Ignore
minor syntax errors.
The solution attempts at least one of The solution attempts to meet most of The solution meets all the requirements
the requirements. the requirements. given in the question.
Solution contains lines of code that Solution contains lines of code that Solution performs all the tasks given in
attempt at least one task given in the attempts most tasks given in the the scenario.
scenario. scenario.
Published
This mark scheme is published as an aid to teachers and candidates, to indicate the requirements of the
examination. It shows the basis on which Examiners were instructed to award marks. It does not indicate the
details of the discussions that took place at an Examiners’ meeting before marking began, which would have
considered the acceptability of alternative answers.
Mark schemes should be read in conjunction with the question paper and the Principal Examiner Report f or
Teachers.
Cambridge International will not enter into discussions about these mark schemes.
Cambridge International is publishing the mark schemes f or the February/March 2024 series f or most
Cambridge IGCSE, Cambridge International A and AS Level components, and some Cambridge O Level
components.
These general marking principles must be applied by all examiners when marking candidate answers. They should be applied alon gside the
specific content of the mark scheme or generic level descriptions for a question. Each question paper and mark scheme will also comply with these
marking principles.
• the specific content of the mark scheme or the generic level descriptors for the question
• the specific skills defined in the mark scheme or in the generic level descriptors for the question
• the standard of response required by a candidate as exemplified by the standardisation scripts.
Marks awarded are always whole marks (not half marks, or other fractions).
• marks are awarded for correct/valid answers, as defined in the mark scheme. However, credit is given for valid answers which go beyond
the scope of the syllabus and mark scheme, referring to your Team Leader as appropriate
• marks are awarded when candidates clearly demonstrate what they know and can do
• marks are not deducted for errors
• marks are not deducted for omissions
• answers should only be judged on the quality of spelling, punctuation and grammar when these features are specifically assess ed by the
question as indicated by the mark scheme. The meaning, however, should be unambiguous.
Rules must be applied consistently, e.g. in situations where candidates have not followed instructions or in the application of generic level
descriptors.
Marks should be awarded using the full range of marks defined in the mark scheme for the question (however; the use of the fu ll mark range may
be limited according to the quality of the candidate responses seen).
Marks awarded are based solely on the requirements as defined in the mark scheme. Marks should not be awarded with grade thre sholds or
grade descriptors in mind.
Note: No marks are awarded for using brand names of software packages or hardware.
1 B 1
2(a) One mark for each correct line from the test data type the description 4
extreme
a value that is rejected
normal
a value that is the highest or lowest value to be accepted
Example:
INPUT MyNumber
Location 0
FOR Index 1 TO 50
IF Values[Index] = MyNumber
THEN
Location Index
ENDIF
NEXT Index
IF Location = 0
THEN
OUTPUT "Not found"
ELSE
OUTPUT Location
ENDIF
Last 50
Repeat
Swap FALSE
FOR Index 1 TO Last - 1
IF Values[Index] > Values[Index + 1]
THEN
Temp Values[Index]
Values[Index] Values[Index + 1]
Values[Index + 1] Temp
Swap TRUE
ENDIF
NEXT
Last Last - 1
UNTIL NOT Swap or Last = 1
Example:
REPEAT
OUTPUT "Enter cost price "
INPUT Cost
UNTIL Cost >= 0
REPEAT
OUTPUT "Enter selling price "
INPUT Sell
UNTIL Sell >= 0
or
5(b)(ii) One mark for identifying validation check and one mark for accompanying description max four 4
• presence check (1) to check that values have been input (1)
• type check (1) to check for numerical values (1)
6 One mark for identifying a type of iteration, one mark for accompanying description max four 4
• count controlled (1) number of iterations is pre-determined (1)
• pre-condition (1) checks condition at start of loop // loop may not iterate (1)
• post-condition (1) checks condition at end of loop // loop always iterates at least once (1)
7(a) One mark for each correct gate, with the correct input(s) as shown. 4
7(b) 4
A B C X
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 0
0 0
1 7 7
2 17 10
3 19 2
4 27 8
5 30 3
6 39 9
9(a)(i) StorageID 1
SizeMetres Real/Integer
Position Char/Integer/Text/Alphanumeric
Hoist Boolean/Text/Alphanumeric
StorageID Text/Alphanumeric
11 Check if each requirement listed below has been met. Requirements may be met using a suitable built-in function from the 15
programming language used (Python, [Link] or Java).
On the script, add seen if the requirement has been met, NE if a partial attempt, or a cross if no attempt .
Use the tables for AO2 and AO3 below to award a mark in a suitable band using a best fit approach, then add up the total.
Marks are available for:
• AO2 (maximum 9 marks)
• AO3 (maximum 6 marks)
Requirements (techniques)
R1 allows a student to enter their weekly screen time and calculates the total number of minutes of screen time for each
student in the week (input, iteration and totalling)
R2 counts the number of days with more than 300 minutes screen time each day and calculates the average week’s
screen time for the whole class (selection, counting, iteration, calculating average)
R3 finds the student with the lowest weekly minutes. Outputs for each student: name, total week’s screen time in hours
and minutes, number of days with more than 300 minutes screen time, outputs the average weeks screen time for the
whole class and the name of the student with the lowest number of minutes (finding minimum value, output)
WeekLength 5
LowestMinutes 1000
ClassTotal 0
FOR StudentCounter 1 to ClassSize // loop for each student
Total 0
DaysOver300 0
FOR DayCounter 1 to WeekLength // loop for each day
REPEAT
OUTPUT "Please enter number of minutes for day ", DayCounter
INPUT Minutes
UNTIL Minutes >= 0
ScreenTime[StudentCounter, DayCounter] Minutes
Total Total + Minutes
IF Minutes > 300
THEN
DaysOver300 DaysOver300 + 1
ENDIF
IF Minutes < LowestMinutes
THEN
LowestMinutes Minutes
LowestIndex StudentCounter
ENDIF
NEXT DayCounter
OUTPUT StudentName[StudentCounter]
OUTPUT "Screen time ", DIV(Total, 60), " hours ", MOD(Total, 60), " minutes "
OUTPUT "Days with more than 300 minutes screen time ", DaysOver300
ClassTotal ClassTotal + Total
NEXT StudentCounter
OUTPUT "Average weekly screen time for class ", ClassTotal / ClassSize, " minutes "
OUTPUT "Lowest weekly time ", StudentNames[LowestIndex]
AO2: Apply knowledge and understanding of the principles and concepts of computer science to a given context, including the
analysis and design of computational or programming problems
No creditable At least one programming Some programming techniques used are The range of programming techniques
response. technique has been used. appropriate to the problem. used is appropriate to the problem.
Any use of selection, iteration, More than one technique seen applied to All criteria stated for the scenario have
counting, totalling, input and output. the scenario, check the list of techniques been covered by the use of appropriate
needed. programming techniques, check the list of
techniques needed.
Some data has been stored but not Some of the data structures chosen are The data structures chosen are
appropriately. appropriate and store some of the data appropriate and store all the data
Any use of variables or arrays or required. required.
other language dependent data More than one data structure used to The data structures used store all the
structures e.g. Python lists. store data required by the scenario. data required by the scenario.
No creditable Program seen without relevant Program seen with some relevant The program has been fully commented
response. comments. comment(s).
Some identifier names used are The majority of identifiers used are Suitable identifiers with names
appropriate. appropriately named. meaningful to their purpose have been
Some of the data structures used Most of the data structures used have used throughout.
have meaningful names. meaningful names. All of the data structures used have
meaningful names.
The solution is illogical. The solution contains parts that may be The program is in a logical order.
illogical.
The solution is inaccurate in many The solution contains parts that are The solution is accurate.
places. inaccurate. Solution logically performs all the tasks
Solution contains few lines of code Solution contains lines of code with some given in the scenario. Ignore minor syntax
with errors that attempt to perform errors that logically perform tasks given errors.
a task given in the scenario. in the scenario. Ignore minor syntax
errors.
The solution attempts at least one The solution attempts to meet most of The solution meets all the requirements
of the requirements. the requirements. given in the question.
Solution contains lines of code that Solution contains lines of code that Solution performs all the tasks given in
attempt at least one task given in attempt most tasks given in the scenario. the scenario.
the scenario.
Published
This mark scheme is published as an aid to teachers and candidates, to indicate the requirements of the
examination. It shows the basis on which Examiners were instructed to award marks. It does not indicate the
details of the discussions that took place at an Examiners’ meeting before marking began, which would have
considered the acceptability of alternative answers.
Mark schemes should be read in conjunction with the question paper and the Principal Examiner Report for
Teachers.
Cambridge International will not enter into discussions about these mark schemes.
Cambridge International is publishing the mark schemes for the May/June 2024 series for most
Cambridge IGCSE, Cambridge International A and AS Level and Cambridge Pre-U components, and some
Cambridge O Level components.
These general marking principles must be applied by all examiners when marking candidate answers. They should be applied alongside the
specific content of the mark scheme or generic level descriptions for a question. Each question paper and mark scheme will also comply with these
marking principles.
the specific content of the mark scheme or the generic level descriptors for the question
the specific skills defined in the mark scheme or in the generic level descriptors for the question
the standard of response required by a candidate as exemplified by the standardisation scripts.
Marks awarded are always whole marks (not half marks, or other fractions).
marks are awarded for correct/valid answers, as defined in the mark scheme. However, credit is given for valid answers which go beyond
the scope of the syllabus and mark scheme, referring to your Team Leader as appropriate
marks are awarded when candidates clearly demonstrate what they know and can do
marks are not deducted for errors
marks are not deducted for omissions
answers should only be judged on the quality of spelling, punctuation and grammar when these features are specifically assessed by the
question as indicated by the mark scheme. The meaning, however, should be unambiguous.
Rules must be applied consistently, e.g. in situations where candidates have not followed instructions or in the application of generic level
descriptors.
Marks should be awarded using the full range of marks defined in the mark scheme for the question (however; the use of the full mark range may
be limited according to the quality of the candidate responses seen).
Marks awarded are based solely on the requirements as defined in the mark scheme. Marks should not be awarded with grade thresholds or
grade descriptors in mind.
Note: No marks are awarded for using brand names of software packages or hardware.
1 D 1
procedure
a value that is declared and used within
a specific procedure
parameter
a value that a procedure expects you to
supply when it is called global variable
Example answer
Correct algorithm:
For example:
Or
For example:
INPUT Number
CASE OF Number
1 : OUTPUT Number
2 : OUTPUT Number
3 : OUTPUT Number
4 : OUTPUT Number
OTHERWISE OUTPUT "ERROR"
ENDCASE
Or
INPUT Number
CASE OF Number
1 : OUTPUT 1
2 : OUTPUT 2
3 : OUTPUT 3
4 : OUTPUT 4
OTHERWISE OUTPUT "ERROR"
ENDCASE
Numbers
Limit Count [1] [2] [3] [4] [5] [6] [7] Flag Swap Result OUTPUT
7 1 47
2 50
3 52
4 60
5 80
6 63
7 70
8 TRUE
1 FALSE
2
3
4
6(a) Numbers
Limit Count [1] [2] [3] [4] [5] [6] [7] Flag Swap Result OUTPUT
5 80
63 80 TRUE
6 80
70 80 TRUE
1 FALSE
4 60
Example:
8(a) One mark for each correct gate, with the correct input(s) as shown. 5
S Z
R S T Z
0 0 0 1
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 1
9(a) One mark for an appropriate reason if no has been stated, for example: 1
None of the fields are likely to contain unique data.
SUM
NumberInStock
SoftDrinks
Container
'Can'
Correct code:
Variables Matches, Won, Drawn, Lost, Counter, Maximum, TieCheck, OutLoop, Max, Count
Requirements (techniques):
R1 Input and store number of matches, cricket club names, number of matches won, drawn and lost. Validation of number
of matches played and matches won, lost and drawn against number of matches played (with prompts, iteration,
storing data in variables, validation, 1D and 2D arrays).
R2 Calculate and store the number of points for each cricket club. Finding the index of the array with the highest score /
highest score (calculation, finding the maximum, iteration).
R3 Identifying cricket clubs with highest number of points and whether there is a tie for the top position. Output with
appropriate messages (iteration, selection and output).
AO2: Apply knowledge and understanding of the principles and concepts of computer science to a given context, including the
analysis and design of computational or programming problems
No creditable At least one programming technique Some programming techniques used The range of programming
response. has been used. are appropriate to the problem. techniques used is appropriate to the
Any use of selection, iteration, More than one technique seen problem.
counting, totalling, input and output. applied to the scenario, check the list All criteria stated for the scenario
of techniques needed. have been covered by the use of
appropriate programming techniques,
check the list of techniques needed.
Some data has been stored but not Some of the data structures chosen The data structures chosen are
appropriately. are appropriate and store some of the appropriate and store all the data
Any use of variables or arrays or data required. required.
other language dependent data More than one data structure used to The data structures used store all the
structures e.g. Python lists. store data required by the scenario. data required by the scenario.
No creditable Program seen without relevant Program seen with some relevant The program has been fully
response. comments. comment(s). commented.
Some identifier names used are The majority of identifiers used are Suitable identifiers with names
appropriate. appropriately named. meaningful to their purpose have
Some of the data structures used Most of the data structures used have been used throughout.
have meaningful names. meaningful names. All of the data structures used have
meaningful names.
The solution is illogical. The solution contains parts that may The program is in a logical order.
be illogical.
The solution is inaccurate in many The solution contains parts that are The solution is accurate.
places. inaccurate. Solution logically performs all the
Solution contains few lines of code Solution contains lines of code with tasks given in the scenario. Ignore
with errors that attempt to perform a some errors that logically perform minor syntax errors.
task given in the scenario. tasks given in the scenario. Ignore
minor syntax errors.
The solution attempts at least one of The solution meets most of the The solution meets all the
the requirements. requirements. requirements given in the question.
Solution contains lines of code that Solution contains lines of code that Solution performs all the tasks given
attempt at least one task given in the perform most tasks given in the in the scenario.
scenario. scenario.
Published
This mark scheme is published as an aid to teachers and candidates, to indicate the requirements of the
examination. It shows the basis on which Examiners were instructed to award marks. It does not indicate the
details of the discussions that took place at an Examiners’ meeting before marking began, which would have
considered the acceptability of alternative answers.
Mark schemes should be read in conjunction with the question paper and the Principal Examiner Report for
Teachers.
Cambridge International will not enter into discussions about these mark schemes.
Cambridge International is publishing the mark schemes for the May/June 2024 series for most
Cambridge IGCSE, Cambridge International A and AS Level and Cambridge Pre-U components, and some
Cambridge O Level components.
These general marking principles must be applied by all examiners when marking candidate answers. They should be applied alongside the
specific content of the mark scheme or generic level descriptions for a question. Each question paper and mark scheme will also comply with these
marking principles.
the specific content of the mark scheme or the generic level descriptors for the question
the specific skills defined in the mark scheme or in the generic level descriptors for the question
the standard of response required by a candidate as exemplified by the standardisation scripts.
Marks awarded are always whole marks (not half marks, or other fractions).
marks are awarded for correct/valid answers, as defined in the mark scheme. However, credit is given for valid answers which go beyond
the scope of the syllabus and mark scheme, referring to your Team Leader as appropriate
marks are awarded when candidates clearly demonstrate what they know and can do
marks are not deducted for errors
marks are not deducted for omissions
answers should only be judged on the quality of spelling, punctuation and grammar when these features are specifically assessed by the
question as indicated by the mark scheme. The meaning, however, should be unambiguous.
Rules must be applied consistently, e.g. in situations where candidates have not followed instructions or in the application of generic level
descriptors.
Marks should be awarded using the full range of marks defined in the mark scheme for the question (however; the use of the full mark range may
be limited according to the quality of the candidate responses seen).
Marks awarded are based solely on the requirements as defined in the mark scheme. Marks should not be awarded with grade thresholds or
grade descriptors in mind.
Note: No marks are awarded for using brand names of software packages or hardware.
1 C 1
AND
XOR
NAND
OR
4(b)(i) One mark for correct use of LENGTH operation, one mark for appropriate test 2
Example:
REPEAT
INPUT Product
UNTIL LENGTH(Product) = 6
4(b)(ii) One mark for correct use of SUBSTRING operation, one mark for appropriate test 2
Example:
REPEAT
INPUT Product
UNTIL SUBSTRING(Product, 1, 2) = "PD"
5 One mark for each description, one mark for each example 6
arithmetic – used in calculations (1) A B + C (1)
Boolean – used for operations with true or false values (1) IF B AND C (1)
logical – used in comparisons/conditional statements/selection statements (1) IF B > C (1)
Example:
Total 0
INPUT Value
WHILE Value <> 9999.9
Total Total + Value
INPUT Value
ENDWHILE
OUTPUT Total
Value 0
Total 0
REPEAT
Total Total + Value
INPUT Value
UNTIL Value = 9999.9
OUTPUT Total
Example:
Counter 0
INPUT Value
WHILE Value <> 9999.9
IF Value > 100
THEN
Counter Counter + 1
ENDIF
INPUT Value
ENDWHILE
OUTPUT Counter
7(a) 01//02//06//10 3
04(07) and/or 08
03(12)
01 Max List[1]
02 Min List[1]
03 FOR Counter 2 TO 1000
04 IF List[Counter] > Max
05 THEN
06 Max List[Counter]
07 ENDIF
08 IF List[Counter] < Min
09 THEN
10 Min List[Counter]
11 ENDIF
12 NEXT Counter
13 OUTPUT "Maximum value is ", Max
14 OUTPUT "Minimum value is ", Min
8(a) X= 1 mark 3
(A AND B) // A AND B 1 mark
AND NOT C 1 mark
A B C X
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 0
10(a) ContractNumber 1
ContractNumber text/alphanumeric
Months integer
EndDate date/time
Sport Boolean
10(d) ContractNumber 2
News AND Sport // Sport AND News
Example answer:
SELECT ContractNumber
FROM Contract
WHERE News // News = TRUE AND Sport // Sport = TRUE ;
Requirements (techniques)
R1 Set up game – generate random cell, clear all other cells in array, set player start position and start player moves
counter (iteration, use of arrays and library routines (round and random))
R2 Input and check move – is it valid? (input, output, iteration and selection)
R3 Decide outcome – has move found the X? If so, give appropriate output. If not increment counter and continue. If 10
moves exceeded, give appropriate output (use of arrays, iteration, selection and output).
// during game
WHILE NumberMoves < MaxMove AND NOT Win
MoveError FALSE
OUTPUT "Please enter your move, L – Left, R – Right, U – Up or D - Down"
INPUT UPPER(PlayerMove)
REPEAT
CASE OF PlayerMove
'L' : TempColumn PlayerColumn – 1
'R' : TempColumn PlayerColumn + 1
'U' : TempRow PlayerRow – 1
'D' : TempRow PlayerRow + 1
OTHERWISE MoveError TRUE
ENDCASE
IF NOT Win
THEN
OUTPUT "You Lose"
ENDIF
AO2: Apply knowledge and understanding of the principles and concepts of computer science to a given context, including the
analysis and design of computational or programming problems
No creditable At least one programming Some programming techniques used are The range of programming techniques
response. technique has been used. appropriate to the problem. used is appropriate to the problem.
Any use of selection, iteration, More than one technique seen applied to All criteria stated for the scenario have
counting, totalling, input and the scenario, check the list of techniques been covered by the use of appropriate
output. needed. programming techniques, check the list of
techniques needed.
Some data has been stored but not Some of the data structures chosen are The data structures chosen are
appropriately. appropriate and store some of the data appropriate and store all the data
required. required.
Any use of variables or arrays or
other language dependent data More than one data structure used to The data structures used store all the
structures e.g. Python lists. store data required by the scenario. data required by the scenario.
No creditable Program seen without relevant Program seen with some relevant The program has been fully commented
response comments. comment(s).
Some identifier names used are The majority of identifiers used are Suitable identifiers with names
appropriate. appropriately named. meaningful to their purpose have been
used throughout.
Some of the data structures used Most of the data structures used have
have meaningful names. meaningful names. All of the data structures used have
meaningful names.
The solution is illogical. The solution contains parts that may be The program is in a logical order.
illogical
The solution is inaccurate in many The solution contains parts that are The solution is accurate.
places. inaccurate.
Solution logically performs all the tasks
Solution contains few lines of code Solution contains lines of code with given in the scenario. Ignore minor syntax
with errors that attempt to perform some errors that logically perform tasks errors.
a task given in the scenario given in the scenario. Ignore minor
syntax errors.
The solution attempts at least one The solution attempts to meet most of The solution meets all the requirements
of the requirements. the requirements. given in the question.
Solution contains lines of code that Solution contains lines of code that Solution performs all the tasks given in
attempt at least one task given in attempt most tasks given in the scenario. the scenario.
the scenario.
Published
This mark scheme is published as an aid to teachers and candidates, to indicate the requirements of the
examination. It shows the basis on which Examiners were instructed to award marks. It does not indicate the
details of the discussions that took place at an Examiners’ meeting before marking began, which would have
considered the acceptability of alternative answers.
Mark schemes should be read in conjunction with the question paper and the Principal Examiner Report for
Teachers.
Cambridge International will not enter into discussions about these mark schemes.
Cambridge International is publishing the mark schemes for the May/June 2024 series for most
Cambridge IGCSE, Cambridge International A and AS Level and Cambridge Pre-U components, and some
Cambridge O Level components.
These general marking principles must be applied by all examiners when marking candidate answers. They should be applied alongside the
specific content of the mark scheme or generic level descriptions for a question. Each question paper and mark scheme will also comply with these
marking principles.
the specific content of the mark scheme or the generic level descriptors for the question
the specific skills defined in the mark scheme or in the generic level descriptors for the question
the standard of response required by a candidate as exemplified by the standardisation scripts.
Marks awarded are always whole marks (not half marks, or other fractions).
marks are awarded for correct/valid answers, as defined in the mark scheme. However, credit is given for valid answers which go beyond
the scope of the syllabus and mark scheme, referring to your Team Leader as appropriate
marks are awarded when candidates clearly demonstrate what they know and can do
marks are not deducted for errors
marks are not deducted for omissions
answers should only be judged on the quality of spelling, punctuation and grammar when these features are specifically assessed by the
question as indicated by the mark scheme. The meaning, however, should be unambiguous.
Rules must be applied consistently, e.g. in situations where candidates have not followed instructions or in the application of generic level
descriptors.
Marks should be awarded using the full range of marks defined in the mark scheme for the question (however; the use of the full mark range may
be limited according to the quality of the candidate responses seen).
Marks awarded are based solely on the requirements as defined in the mark scheme. Marks should not be awarded with grade thresholds or
grade descriptors in mind.
Note: No marks are awarded for using brand names of software packages or hardware.
1 A 1
AND
XOR
NOT
NAND
OR
2(b) 4
A B C Z
0 0 0 0
0 0 1 1
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 0
3 One mark for a correct statement about each data type and one mark for a correct example of data for each data type. 4
For example:
String A group of characters consisting of letters, numbers and special characters [1], Cambridge2024 [1]
Correct algorithm:
Example algorithm:
Count 1
WHILE Count <= 50 AND People[Count, 1] <> "" DO
OUTPUT People[Count, 1]
OUTPUT People[Count, 2]
OUTPUT People[Count, 3]
Count Count + 1
ENDWHILE
MP1 Declare/use a variable that is set to the maximum size of the array
MP2 … at the start of the program
MP3 After line 18
MP4 … check that the value of the counting variable is not greater than the array maximum variable
MP5 … and if it is do not allow any more entries / set the value of Response to 'N' / add additional condition to UNTIL
statement that checks if the counting variable is at maximum
0 10000 0 0 10 1 30
30 30 2 18
18 48 3 8
8 56 4 25
81 5 12
93 6 17
110 7 2
2 112 8 50
50 162 9 15
177 10 5
182 18.2 11 L = 50 S = 2
T = 182 A = 18.2
5(d) One mark for every two appropriate identifiers, max two 2
L Largest / Maximum
S Smallest / Minimum
T Total / Sum
A Average / Mean
6(a) One mark for each appropriate piece of test data for a range of 1 to 80 inclusive 3
Example:
Normal 75
Abnormal 101
Extreme 80
Example:
Example:
8(a) Fields – 6 2
Records – 11
Correct output:
Correct code:
Requirements (techniques):
R1 Input and store number of games played, teams, number of games won, drawn and lost, with validation for input of
numbers (iteration, range check, input, output).
R2 Calculate and store the number of points. Sort the arrays by number of points (calculation, sort, (nested) iteration).
R3 Finding and outputting top team(s) (finding max, counting and output).
AO2: Apply knowledge and understanding of the principles and concepts of computer science to a given context, including the
analysis and design of computational or programming problems
No creditable response. At least one programming technique Some programming techniques used The range of programming techniques
has been used. are appropriate to the problem. used is appropriate to the problem.
Any use of selection, iteration, More than one technique seen applied All criteria stated for the scenario have
counting, totalling, input and output. to the scenario, check list of been covered by the use of
techniques needed. appropriate programming techniques,
check list of techniques needed.
Some data has been stored but not Some of the data structures chosen The data structures chosen are
appropriately. are appropriate and store some of the appropriate and store all the data
Any use of variables or arrays or data required. required.
other language dependent data More than one data structure used to The data structures used store all the
structures e.g. Python lists. store data required by the scenario. data required by the scenario.
No creditable response. Program seen without relevant Program seen with some relevant The program has been fully
comments. comment(s). commented.
Some identifier names used are The majority of identifiers used are Suitable identifiers with names
appropriate. appropriately named. meaningful to their purpose have
Some of the data structures used Most of the data structures used have been used throughout.
have meaningful names. meaningful names. All of the data structures used have
meaningful names.
The solution is illogical. The solution contains parts that may The program is in a logical order.
be illogical.
The solution is inaccurate in many The solution contains parts that are The solution is accurate.
places. inaccurate. Solution logically performs all the
Solution contains few lines of code Solution contains lines of code with tasks given in the scenario. Ignore
with errors that attempt to perform a some errors that logically perform minor syntax errors.
task given in the scenario. tasks given in the scenario. Ignore
minor syntax errors.
The solution attempts at least one of The solution attempts to meet most of The solution meets all the
the requirements. the requirements. requirements given in the question.
Solution contains lines of code that Solution contains lines of code that Solution performs all the tasks given
attempt at least one task given in the attempt most tasks given in the in the scenario.
scenario. scenario.
Published
This mark scheme is published as an aid to teachers and candidates, to indicate the requirements of the
examination. It shows the basis on which Examiners were instructed to award marks. It does not indicate the
details of the discussions that took place at an Examiners’ meeting before marking began, which would have
considered the acceptability of alternative answers.
Mark schemes should be read in conjunction with the question paper and the Principal Examiner Report for
Teachers.
Cambridge International will not enter into discussions about these mark schemes.
Cambridge International is publishing the mark schemes for the October/November 2024 series for most
Cambridge IGCSE, Cambridge International A and AS Level components, and some Cambridge O Level
components.
These general marking principles must be applied by all examiners when marking candidate answers. They should be applied alongside the
specific content of the mark scheme or generic level descriptions for a question. Each question paper and mark scheme will also comply with these
marking principles.
• the specific content of the mark scheme or the generic level descriptors for the question
• the specific skills defined in the mark scheme or in the generic level descriptors for the question
• the standard of response required by a candidate as exemplified by the standardisation scripts.
Marks awarded are always whole marks (not half marks, or other fractions).
• marks are awarded for correct/valid answers, as defined in the mark scheme. However, credit is given for valid answers which go beyond
the scope of the syllabus and mark scheme, referring to your Team Leader as appropriate
• marks are awarded when candidates clearly demonstrate what they know and can do
• marks are not deducted for errors
• marks are not deducted for omissions
• answers should only be judged on the quality of spelling, punctuation and grammar when these features are specifically assessed by the
question as indicated by the mark scheme. The meaning, however, should be unambiguous.
Rules must be applied consistently, e.g. in situations where candidates have not followed instructions or in the application of generic level
descriptors.
Marks should be awarded using the full range of marks defined in the mark scheme for the question (however; the use of the full mark range may
be limited according to the quality of the candidate responses seen).
Marks awarded are based solely on the requirements as defined in the mark scheme. Marks should not be awarded with grade thresholds or
grade descriptors in mind.
1 D 1
2 C 1
=
Boolean
AND
Arithmetic
DIV
Logical
+
5 One mark for each method identified, one mark for a further description (max six) 6
• structure diagram (1) a hierarchical diagram showing the breakdown of a computer program into sub-programs (1)
• flowchart (1) a diagram showing the ordered steps to complete a computer program (1)
• pseudocode (1) shows what a program does in plain language (1)
Example:
15 OUTPUT "Number of zeros in the array is ", T
16 OUTPUT "Total of non-zero elements in the array is ", I
One mark for 2 meaningful identifiers, Two marks for 3 meaningful identifiers:
T Counter
C Index
I Total
X Y Z W
0 0 0 1
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 0
1 0 1 1
1 1 0 1
1 1 1 0
8(a) 6
One mark for:
START
START
• correct use of flowchart symbols
• working flowlines
INPUT Password
• input correct
• working length check
• working comparison
• correct output messages
No
IS Length
Password >= 8 ?
Yes
IS Password <> No
OldPass?
Yes
OUTPUT OUTPUT
"accepted" "rejected"
STOP
01 REPEAT
02 OUTPUT "Please enter temperature "
03 INPUT Temperature
04 IF Temperature <> 999
05 THEN
06 IF Temperature > 38.0
07 THEN
08 OUTPUT "Temperature too high"
09 ENDIF
10 IF Temperature < 35.0
11 THEN
12 OUTPUT "Temperature too low"
13 ENDIF
14 IF Temperature >= 35.0 AND Temperature <= 38.0
15 THEN
16 OUTPUT "Temperature normal"
17 ENDIF
18 ENDIF
19 UNTIL Temperature = 999
999
10(a) 19 1
10(b)(i) ChNo 1
Data Structures required names shown underlined must be used as given in the scenario.
1D Array or list MemberName[], MemberTime[], MemberCertificate[], Position[]
Variables Index, Last, ClubSize, TempTime, TempName, Swap, Count
Requirements (techniques)
R1 Input and verify the members times (input and iteration)
R2 sort the MemberName[] and MemberTime[] arrays in ascending order of time and outputs the top three members and
their times (nested iteration, sorting, selection and output)
R3 Storing the members names who will receive a certificate and outputting the number of certificates (iteration, selection,
counting and output)
Position[1] "First"
Position[2] "Second"
Position[3] "Third"
Last ClubSize
REPEAT
Swap FALSE
FOR Index 1 TO ClubSize - 1
IF MemberTime[Index] > MemberTime[Index + 1]
THEN
TempTime MemberTime[Index]
MemberTime[Index] MemberTime[Index + 1]
MemberTime[Index + 1] TempTime
TempName MemberName[Index]
MemberName[Index] MemberName[Index + 1]
MemberName[Index + 1] TempName
11 Swap TRUE
ENDIF
NEXT Index
Last Last - 1
UNTIL NOT Swap or Last = 1
FOR Index 1 TO 3
OUTPUT Position[Index], MemberName[Index], " with a time of ", MemberTime[Index]
NEXT Index
Count 0
AO2: Apply knowledge and understanding of the principles and concepts of computer science to a given context, including the
analysis and design of computational or programming problems
No creditable response. At least one programming technique Some programming techniques used The range of programming
has been used. are appropriate to the problem. techniques used is appropriate to the
Any use of selection, iteration, More than one technique seen problem.
counting, totalling, input and output. applied to the scenario, check list of All criteria stated for the scenario
techniques needed. have been covered by the use of
appropriate programming
techniques, check list of techniques
needed.
Some data has been stored but not Some of the data structures chosen The data structures chosen are
appropriately. are appropriate and store some of appropriate and store all the data
Any use of variables or arrays or the data required. required.
other language dependent data More than one data structure used The data structures used store all
structures e.g. Python lists. to store data required by the the data required by the scenario.
scenario.
No creditable response. Program seen without relevant Program seen with some relevant The program has been fully
comments. comment(s). commented
Some identifier names used are The majority of identifiers used are Suitable identifiers with names
appropriate appropriately named. meaningful to their purpose have
Some of the data structures used Most of the data structures used been used throughout.
have meaningful names. have meaningful names. All of the data structures used have
meaningful names.
The solution is illogical. The solution contains parts that may The program is in a logical order.
be illogical.
The solution is inaccurate in many The solution contains parts that are The solution is accurate.
places. inaccurate. Solution logically performs all the
Solution contains few lines of code Solution contains lines of code with tasks given in the scenario. Ignore
with errors that attempt to perform a some errors that logically perform minor syntax errors.
task given in the scenario. tasks given in the scenario. Ignore
minor syntax errors.
The solution attempts at least one of The solution meets most of the The solution meets all the
the requirements. requirements. requirements given in the question.
Solution contains lines of code that Solution contains lines of code that Solution performs all the tasks given
attempt at least one task given in the perform most tasks given in the in the scenario.
scenario. scenario.
Published
This mark scheme is published as an aid to teachers and candidates, to indicate the requirements of the
examination. It shows the basis on which Examiners were instructed to award marks. It does not indicate the
details of the discussions that took place at an Examiners’ meeting before marking began, which would have
considered the acceptability of alternative answers.
Mark schemes should be read in conjunction with the question paper and the Principal Examiner Report for
Teachers.
Cambridge International will not enter into discussions about these mark schemes.
Cambridge International is publishing the mark schemes for the October/November 2024 series for most
Cambridge IGCSE, Cambridge International A and AS Level components, and some Cambridge O Level
components.
These general marking principles must be applied by all examiners when marking candidate answers.
They should be applied alongside the specific content of the mark scheme or generic level
descriptions for a question. Each question paper and mark scheme will also comply with these
marking principles.
• the specific content of the mark scheme or the generic level descriptors for the question
• the specific skills defined in the mark scheme or in the generic level descriptors for the question
• the standard of response required by a candidate as exemplified by the standardisation scripts.
Marks awarded are always whole marks (not half marks, or other fractions).
• marks are awarded for correct/valid answers, as defined in the mark scheme. However, credit
is given for valid answers which go beyond the scope of the syllabus and mark scheme,
referring to your Team Leader as appropriate
• marks are awarded when candidates clearly demonstrate what they know and can do
• marks are not deducted for errors
• marks are not deducted for omissions
• answers should only be judged on the quality of spelling, punctuation and grammar when these
features are specifically assessed by the question as indicated by the mark scheme. The
meaning, however, should be unambiguous.
Rules must be applied consistently, e.g. in situations where candidates have not followed
instructions or in the application of generic level descriptors.
Marks should be awarded using the full range of marks defined in the mark scheme for the question
(however; the use of the full mark range may be limited according to the quality of the candidate
responses seen).
Marks awarded are based solely on the requirements as defined in the mark scheme. Marks should
not be awarded with grade thresholds or grade descriptors in mind.
1 C 1
2 C 1
subroutine
process
flow
decision
terminator
START
Total 0
Count 1
OUTPUT "Enter a
value between 1
and 100"
INPUT Number
IS Count
Count Count + 1 > 50 ?
Yes
STOP
• Line 19 / ENDCASE
should be ENDIF
Correct algorithm:
• The use of a flag (set initially to FALSE) to show if a swap has been
made (during the current iteration)
• … to stop the loop if it has been sorted
• The reduction in the limit of the (inner) loop after each iteration (of the loop)
• … to reduce the number of comparisons / iterations required
• Design
• Coding
• Testing
• Abstraction
• Discard/remove irrelevant information / hiding complexities /
keeping the key elements of the problem
• Decomposition of the problem
• Breaking the problem into inputs, processes and outputs
• Identification of the problem
• Identification of the requirements of the solution to the problem
• Research into the problem by data collection
• Example of data collection
6 One mark for naming the type of check and one mark for an expansion (max 2
two)
• Visual check
• … looking at the data that has been entered and either confirming it is
correct or showing / correcting errors.
OR
5 5
4 20
3 60
2 120
1 120 120
6 6
5 30
4 120
3 360
2 720
1 720 720
−1
• The program would accept the value and enter the FOR loop
• Count would keep reducing by 1 and would never reach 1, as it would
already be less than 1
• There would be an endless loop
• 80
• The largest whole number that would be accepted / at the very limit
/ Boundary/Extreme data that would be accepted / at the very limit
• 81
• The smallest whole number that would be rejected / is greater than
the limit / Boundary/Abnormal/Erroneous data that would be
rejected / is greater than the limit
9(a) One mark for each correct gate, with the correct input(s) as shown. 4
Q X
P Q R X
0 0 0 1
0 0 1 0
0 1 0 0
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 1
For example:
• Fields – 11
• Records – 15
11(b) The Type field contains data that repeats / Data is not unique 1
Rate$ real
Guests integer
• Data from 4 correct columns printed – any number of rows, any order
• Data in rows ordered as shown (row and column) at least two rows
and two columns required
• All data correct with no extra content
Correct output
Variables Number
Requirements (techniques):
R1 Input and store number of rooms, the names of the rooms and their
dimensions, including validation of number of rooms (input with prompts,
(nested) iteration, use of variables, 1D and 2D arrays, validation).
R2 Calculate and store the area of each room, the total area of the house
and the average room area rounded to two decimal places. Find the
smallest and largest rooms (calculation, totalling, rounding, finding
maximum and minimum values, iteration).
R3 Output the results, including contents of the arrays and the calculated
data (iteration, output).
AO2: Apply knowledge and understanding of the principles and concepts of computer
science to a given context, including the analysis and design of computational or
programming problems
Some data has been Some of the data The data structures
stored but not structures chosen are chosen are appropriate
appropriately. appropriate and store and store all the data
Any use of variables or some of the data required.
arrays or other required. The data structures
language dependent More than one data used store all the data
data structures e.g. structure used to store required by the
Python lists. data required by the scenario.
scenario.
No creditable Program seen without Program seen with The program has been
response. relevant comments. some relevant fully commented.
comment(s).
The solution attempts The solution attempts The solution meets all
at least one of the to meet most of the the requirements given
requirements. requirements. in the question.
Solution contains lines Solution contains lines Solution performs all
of code that attempt at of code that attempts the tasks given in the
least one task given in most tasks given in the scenario.
the scenario. scenario.
Published
This mark scheme is published as an aid to teachers and candidates, to indicate the requirements of the
examination. It shows the basis on which Examiners were instructed to award marks. It does not indicate the
details of the discussions that took place at an Examiners’ meeting before marking began, which would have
considered the acceptability of alternative answers.
Mark schemes should be read in conjunction with the question paper and the Principal Examiner Report for
Teachers.
Cambridge International will not enter into discussions about these mark schemes.
Cambridge International is publishing the mark schemes for the October/November 2024 series for most
Cambridge IGCSE, Cambridge International A and AS Level components, and some Cambridge O Level
components.
These general marking principles must be applied by all examiners when marking candidate answers. They should be applied alongside the
specific content of the mark scheme or generic level descriptions for a question. Each question paper and mark scheme will also comply with these
marking principles.
• the specific content of the mark scheme or the generic level descriptors for the question
• the specific skills defined in the mark scheme or in the generic level descriptors for the question
• the standard of response required by a candidate as exemplified by the standardisation scripts.
Marks awarded are always whole marks (not half marks, or other fractions).
• marks are awarded for correct/valid answers, as defined in the mark scheme. However, credit is given for valid answers which go beyond
the scope of the syllabus and mark scheme, referring to your Team Leader as appropriate
• marks are awarded when candidates clearly demonstrate what they know and can do
• marks are not deducted for errors
• marks are not deducted for omissions
• answers should only be judged on the quality of spelling, punctuation and grammar when these features are specifically assessed by the
question as indicated by the mark scheme. The meaning, however, should be unambiguous.
Rules must be applied consistently, e.g. in situations where candidates have not followed instructions or in the application of generic level
descriptors.
Marks should be awarded using the full range of marks defined in the mark scheme for the question (however; the use of the full mark range may
be limited according to the quality of the candidate responses seen).
Marks awarded are based solely on the requirements as defined in the mark scheme. Marks should not be awarded with grade thresholds or
grade descriptors in mind.
1 C 1
2 B 1
AND
NAND
NOR
XOR
5 One mark for stage, one mark for matching description and one mark for matching expansion (max six) 6
For example:
• design (1) construction of a solution (1) using standard methods e.g. flowcharts (1)
• coding (1) program is written (1) iterative testing takes place (1)
• testing (1) program is tested for errors (1) program is tested that it meets its requirements (1)
Example:
C Index
X Average
W Total
7 One mark for test data type, one mark for matching example and one mark for matching outcome (Max nine) 9
• normal (1) e.g. 25 (1) accepted (1)
• extreme (1) 1/100 (1) accepted (1)
• abnormal (1) e.g. 125 (1) rejected (1)
• boundary (1) 1 and 0 // 100 and 101 (1) first value is accepted, and second value rejected (1)
A T H W
0 0 0 0
0 0 1 0
0 1 0 1
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 0
1 1 1 0
• first decision box flow line labels Yes should be No and vice versa
• second decision box OR should be AND
• Flow line from A to B should be should A B
• Flowchart symbol for A C should be a process box / rectangle
10(a) MYWORD 6
FALSE
FALSE
1 FALSE
FALSE Rejected
M!word
FALSE
1 FALSE
FALSE Rejected
10(a) My!Hidden
1 FALSE
2 FALSE
3 TRUE
Accepted
For each trace table, one mark Password and output, one mark Accept, Index and Found columns
11(b)(i) One mark for correct SELECT and FROM clauses, one mark for correct WHERE clause 2
SELECT Name
FROM BuildStock
WHERE NOT InStock // InStock = FALSE / No /"No" // WHERE NumberBags = 0;
• WHERE clause can check the InStock field (1) for FALSE / No (1)
or
• WHERE clause can check the NumberBags field (1) for 0 (1)
Data Structures required names shown underlined must match those given in the scenario
2D Array or list PickerName[], PickedWeight[], PickerCertificate[]
Variables
Requirements (techniques)
R1 Input and validate the weights (input and iteration)
R2 sort the PickerName[], and PickedWeight[]arrays in descending order of weight (nested iteration and sorting)
R3 Output top two members and the weights. Storing the members names who will receive a certificate and outputting the
number of certificates (iteration, selection, assignment, counting and output with appropriate messages)
AO2: Apply knowledge and understanding of the principles and concepts of computer science to a given context, including the
analysis and design of computational or programming problems
No creditable response. At least one programming technique Some programming techniques used The range of programming
has been used. are appropriate to the problem. techniques used is appropriate to the
Any use of selection, iteration, More than one technique seen problem.
counting, totalling, input and output. applied to the scenario, check list of All criteria stated for the scenario
techniques needed. have been covered by the use of
appropriate programming
techniques, check list of techniques
needed.
Some data has been stored but not Some of the data structures chosen The data structures chosen are
appropriately. are appropriate and store some of appropriate and store all the data
Any use of variables or arrays or the data required. required.
other language dependent data More than one data structure used The data structures used store all
structures e.g. Python lists. to store data required by the the data required by the scenario.
scenario.
No creditable response. Program seen without relevant Program seen with some relevant The program has been fully
comments. comment(s). commented
Some identifier names used are The majority of identifiers used are Suitable identifiers with names
appropriate appropriately named. meaningful to their purpose have
Some of the data structures used Most of the data structures used been used throughout.
have meaningful names. have meaningful names. All of the data structures used have
meaningful names.
The solution is illogical. The solution contains parts that may The program is in a logical order.
be illogical.
The solution is inaccurate in many The solution contains parts that are The solution is accurate.
places. inaccurate. Solution logically performs all the
Solution contains few lines of code Solution contains lines of code with tasks given in the scenario. Ignore
with errors that attempt to perform a some errors that logically perform minor syntax errors.
task given in the scenario tasks given in the scenario. Ignore
minor syntax errors.
The solution attempts at least one of The solution meets most of the The solution meets all the
the requirements. requirements. requirements given in the question.
Solution contains lines of code that Solution contains lines of code that Solution performs all the tasks given
attempt at least one task given in the perform most tasks given in the in the scenario.
scenario. scenario.
Published
This mark scheme is published as an aid to teachers and candidates, to indicate the requirements of the
examination. It shows the basis on which Examiners were instructed to award marks. It does not indicate the
details of the discussions that took place at an Examiners’ meeting before marking began, which would have
considered the acceptability of alternative answers.
Mark schemes should be read in conjunction with the question paper and the Principal Examiner Report for
Teachers.
Cambridge International will not enter into discussions about these mark schemes.
Cambridge International is publishing the mark schemes for the February/March 2023 series for most
Cambridge IGCSE™, Cambridge International A and AS Level components and some Cambridge O Level
components.
These general marking principles must be applied by all examiners when marking candidate answers. They should be applied alongside the
specific content of the mark scheme or generic level descriptors for a question. Each question paper and mark scheme will also comply with these
marking principles.
• the specific content of the mark scheme or the generic level descriptors for the question
• the specific skills defined in the mark scheme or in the generic level descriptors for the question
• the standard of response required by a candidate as exemplified by the standardisation scripts.
Marks awarded are always whole marks (not half marks, or other fractions).
• marks are awarded for correct/valid answers, as defined in the mark scheme. However, credit is given for valid answers which go beyond the
scope of the syllabus and mark scheme, referring to your Team Leader as appropriate
• marks are awarded when candidates clearly demonstrate what they know and can do
• marks are not deducted for errors
• marks are not deducted for omissions
• answers should only be judged on the quality of spelling, punctuation and grammar when these features are specifically assessed by the
question as indicated by the mark scheme. The meaning, however, should be unambiguous.
Rules must be applied consistently, e.g. in situations where candidates have not followed instructions or in the application of generic level
descriptors.
Marks should be awarded using the full range of marks defined in the mark scheme for the question (however; the use of the full mark range may
be limited according to the quality of the candidate responses seen).
Marks awarded are based solely on the requirements as defined in the mark scheme. Marks should not be awarded with grade thresholds or
grade descriptors in mind.
Note: No marks are awarded for using brand names of software packages or hardware.
1 C 1
2(a) One mark for each single correct line from a description to statement 4
a statement to start a
post-condition loop REPEAT
Example: Total 0
FOR Count 1 TO 50
Total Total + Number[Count]
NEXT Count
Average Total / 50
OUTPUT "The average is ", Average
7(a) One mark for each correct gate, with the correct inputs as shown. 5
7(b) 4
A B C X
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 0
8(a) 4
NumberSales Total SaleValue Average OUTPUT
0 0
1 5.50 5.50
2 8.90 3.40
3 15.15 6.25
4 19.00 3.85
5 8.00 -11.00
9(a) 20 1
9(b)(i) CatNo 1
9(c) Two marks for 4 correct data types or one mark for 2 or 3 correct data types 2
Field Data type
CatNo Text/Alphanumeric
Title Text/alphanumeric
Fiction Boolean
Price Real
10(b) One mark for using FUNCTION and ENDFUNCTION and RETURNS BOOLEAN 6
One mark for naming the function Same
One mark for defining the two parameters correctly
One mark for comparing the two parameters using ROUND
One mark for correctly returning TRUE and FALSE
One mark for correct function call
Example definition:
FUNCTION Same(A : INTEGER, B : REAL) RETURNS BOOLEAN
IF A = ROUND(B,0)
THEN
RETURN TRUE
ELSE
RETURN FALSE
ENDIF
ENDFUNCTION
Example call:
Z Same(X,Y)
11 Read and understand the question before starting to mark any scripts. Read the whole answer before marking a script: 15
Check if each requirement listed below has been met.
Requirements may be met using a suitable built-in function from the programming language used (Python, [Link] or
Java)
On script if requirement met add seen, NE if partial attempt, cross if no attempt (see marked scripts).
Use the tables for A02 and A03 below to award a mark in a suitable band using a best fit approach, then add up the total.
Marks are available for: to
• AO2 (maximum 9 marks)
• AO3 (maximum 6 marks)
Requirements (techniques)
R1 calculates total points for all matches played by each team (nested iteration, totalling)
R2 counts and outputs, with the team’s name, for each team
the total number of away wins, home wins, drawn matches and lost matches
(nested iteration, counting, output)
R3 finds and outputs
the name of the team with the highest number of points and the name of the team with the lowest number of points.
(output, selection)
NEXT TeamCounter
// output names of the teams with the highest and lowest number of points
OUTPUT "Top Team ", TeamName[TopTeam]
OUTPUT "Bottom Team ", TeamName[BottomTeam]
AO2: Apply knowledge and understanding of the principles and concepts of computer science to a given context, including the
analysis and design of computational or programming problems
No creditable response. At least one programming Some programming techniques The range of programming
technique has been used. used are appropriate to the techniques used is appropriate to
Any use of selection, iteration, problem. the problem.
counting, totalling, input and More than one technique seen All criteria stated for the scenario
output. applied to the scenario, check list have been covered by the use of
of techniques needed. appropriate programming
techniques, check list of
techniques needed.
Some data has been stored but Some of the data structures The data structures chosen are
not appropriately. chosen are appropriate and store appropriate and store all the data
Any use of variables or arrays or some of the data required. required.
other language dependent data More than one data structure used The data structures used store all
structures e.g. Python lists. to store data required by the the data required by the scenario.
scenario.
No creditable response. Program seen without relevant Program seen with some relevant The program has been fully
comments. comment(s). commented
Some identifier names used are The majority of identifiers used are Suitable identifiers with names
appropriate. appropriately named. meaningful to their purpose have
Some of the data structures used Most of the data structures used been used throughout.
have meaningful names. have meaningful names. All of the data structures used
have meaningful names.
The solution is illogical. The solution contains parts that The program is in a logical order.
may be illogical.
The solution is inaccurate in many The solution contains parts that The solution is accurate.
places. are inaccurate. Solution logically performs all the
Solution contains few lines of code Solution contains lines of code tasks given in the scenario. Ignore
with errors that attempt to perform with some errors that logically minor syntax errors.
a task given in the scenario. perform tasks given in the
scenario. Ignore minor syntax
errors.
The solution attempts at least one The solution meets most of the The solution meets all the
of the requirements. requirements. requirements given in the
Solution contains lines of code that Solution contains lines of code that question.
attempt at least one task given in perform most tasks given in the Solution performs all the tasks
the scenario. scenario. given in the scenario.
Published
This mark scheme is published as an aid to teachers and candidates, to indicate the requirements of the
examination. It shows the basis on which Examiners were instructed to award marks. It does not indicate the
details of the discussions that took place at an Examiners’ meeting before marking began, which would have
considered the acceptability of alternative answers.
Mark schemes should be read in conjunction with the question paper and the Principal Examiner Report for
Teachers.
Cambridge International will not enter into discussions about these mark schemes.
Cambridge International is publishing the mark schemes for the May/June 2023 series for most
Cambridge IGCSE, Cambridge International A and AS Level and Cambridge Pre-U components, and some
Cambridge O Level components.
These general marking principles must be applied by all examiners when marking candidate answers. They should be applied alongside the
specific content of the mark scheme or generic level descriptors for a question. Each question paper and mark scheme will also comply with these
marking principles.
the specific content of the mark scheme or the generic level descriptors for the question
the specific skills defined in the mark scheme or in the generic level descriptors for the question
the standard of response required by a candidate as exemplified by the standardisation scripts.
Marks awarded are always whole marks (not half marks, or other fractions).
marks are awarded for correct/valid answers, as defined in the mark scheme. However, credit is given for valid answers which go beyond
the scope of the syllabus and mark scheme, referring to your Team Leader as appropriate
marks are awarded when candidates clearly demonstrate what they know and can do
marks are not deducted for errors
marks are not deducted for omissions
answers should only be judged on the quality of spelling, punctuation and grammar when these features are specifically assessed by the
question as indicated by the mark scheme. The meaning, however, should be unambiguous.
Rules must be applied consistently, e.g. in situations where candidates have not followed instructions or in the application of generic level
descriptors.
Marks should be awarded using the full range of marks defined in the mark scheme for the question (however; the use of the full mark range may
be limited according to the quality of the candidate responses seen).
Marks awarded are based solely on the requirements as defined in the mark scheme. Marks should not be awarded with grade thresholds or
grade descriptors in mind.
Program development life cycle description Program development life cycle stage
coding
detect and fix the errors in the
program
design
1(b) One mark for naming or describing each component part, max three 3
For example:
2 A 1
3(b) One mark for each appropriate test data, max three 6
One mark for each correct accompanying reason, max three
For example:
Normal – 75
Reason – the data lies within the required range and should be accepted
Abnormal – Sixty
Reason – this is the wrong data type and should be rejected
Extreme – 200
Reason – the highest value in the required range that should be accepted
Line 10 / Exit 1 // Line 01/ Exit 1 and Line 02 / WHILE Exit <> 0
should be Exit 0 // should be Exit 0 and WHILE Exit = 0
Line 13 / ENDIF
should be ENDWHILE
Correct algorithm:
01 Exit 1
02 WHILE Exit <> 0 DO
03 INPUT Number
04 IF Number > 0
05 THEN
06 Total Total + Number
07 ELSE
08 IF Number = 0
09 THEN
10 Exit 0
11 ENDIF
12 ENDIF
13 ENDWHILE
14 OUTPUT "The total value of your numbers is ", Total
For example:
Meaningful identifiers – to enable the programmer (or future programmers) to easily recognize the purpose of a variable /
array / constant // to enable easy tracking of a variable / constant / array through the program
Use of comments – to annotate each section of a program so that a programmer can find specific sections / so that the
programmer knows the purpose of that section of code
Procedures and functions – to make programs modular and easier to update / add functionality
1 F
Another Letter? (Y or N)
1 D
Another Letter? (Y or N)
Or
The array would run out of values after the pointer reached 13
the algorithm will crash
For example:
40
THE BEGINNING IS THE MOST IMPORTANT PART
9(a) One mark for each correct gate, with the correct input(s) as shown. 4
A B C Z
0 0 0 0
0 0 1 1
0 1 0 1
0 1 1 0
1 0 0 0
1 0 1 0
1 1 0 1
1 1 1 0
For example:
TVCode
Each entry in this field is a unique identifier
TVCode Text
ScreenSize Integer
SmartTV Boolean
Price$ Real
ScreenSize
Price$
FROM
YES
Correct code:
Use the tables for AO2 and AO3 below to award a mark in a suitable band using a best fit approach, then add up the total:
AO2 (maximum 9 marks)
AO3 (maximum 6 marks)
Requirements (techniques):
R1 Input and store hourly temperatures and validation of input temperatures for each day (with prompts, range check and
(nested)iteration)
R2 Calculate, round to one decimal place and store daily average temperatures and calculate the weekly average
temperature rounded to one decimal place (iteration, totalling and rounding)
R3 Convert all average temperatures to Fahrenheit (to one decimal place) and output the average temperatures in both
Celsius and Fahrenheit. Output with appropriate messages. (output and rounding)
11 INPUT InTemp
// validation of input for between -20 and +50 inclusive
WHILE InTemp < -20.0 OR InTemp > 50.0 DO
OUTPUT "Your temperature must be between -20.0 and +50.0 inclusive. Please try
again"
INPUT InTemp
ENDWHILE
Readings[WeekLoop, DayLoop] InTemp
// totalling of temperatures during the day
TotalDayTemp TotalDayTemp + ROUND(InTemp, 1)
NEXT DayLoop
AO2: Apply knowledge and understanding of the principles and concepts of computer science to a given context, including the
analysis and design of computational or programming problems
At least one programming technique has Some programming techniques used are The range of programming techniques
been used. appropriate to the problem. used is appropriate to the problem.
Any use of selection, iteration, counting, More than one technique seen applied All criteria stated for the scenario have
totalling, input and output. to the scenario, check the list of been covered by the use of appropriate
techniques needed. programming techniques, check the list
No creditable of techniques needed.
response.
Some data has been stored but not Some of the data structures chosen are The data structures chosen are
appropriately. appropriate and store some of the data appropriate and store all the data
required. required.
Any use of variables or arrays or other
language dependent data structures e.g. More than one data structure used to The data structures used store all the
Python lists. store data required by the scenario. data required by the scenario.
Program seen without relevant Program seen with some relevant The program has been fully commented.
comments. comment(s).
Some identifier names used are The majority of identifiers used are Suitable identifiers with names
appropriate. appropriately named. meaningful to their purpose have been
used throughout.
Some of the data structures used have Most of the data structures used have
meaningful names. meaningful names. All of the data structures used have
meaningful names.
The solution is illogical. The solution contains parts that may be The program is in a logical order.
illogical.
No creditable The solution is inaccurate in many The solution contains parts that are The solution is accurate.
response. places. inaccurate.
Solution logically performs all the tasks
Solution contains few lines of code with Solution contains lines of code with given in the scenario. Ignore minor
errors that attempt to perform a task some errors that logically perform tasks syntax errors.
given in the scenario. given in the scenario. Ignore minor
syntax errors.
The solution attempts at least one of the The solution meets most of the The solution meets all the requirements
requirements. requirements. given in the question.
Solution contains lines of code that Solution contains lines of code that Solution performs all the tasks given in
attempt at least one task given in the perform most tasks given in the the scenario.
scenario. scenario.
Published
This mark scheme is published as an aid to teachers and candidates, to indicate the requirements of the
examination. It shows the basis on which Examiners were instructed to award marks. It does not indicate the
details of the discussions that took place at an Examiners’ meeting before marking began, which would have
considered the acceptability of alternative answers.
Mark schemes should be read in conjunction with the question paper and the Principal Examiner Report for
Teachers.
Cambridge International will not enter into discussions about these mark schemes.
Cambridge International is publishing the mark schemes for the May/June 2023 series for most
Cambridge IGCSE, Cambridge International A and AS Level and Cambridge Pre-U components, and some
Cambridge O Level components.
These general marking principles must be applied by all examiners when marking candidate answers. They should be applied alongside the
specific content of the mark scheme or generic level descriptors for a question. Each question paper and mark scheme will also comply with these
marking principles.
the specific content of the mark scheme or the generic level descriptors for the question
the specific skills defined in the mark scheme or in the generic level descriptors for the question
the standard of response required by a candidate as exemplified by the standardisation scripts.
Marks awarded are always whole marks (not half marks, or other fractions).
marks are awarded for correct/valid answers, as defined in the mark scheme. However, credit is given for valid answers which go beyond
the scope of the syllabus and mark scheme, referring to your Team Leader as appropriate
marks are awarded when candidates clearly demonstrate what they know and can do
marks are not deducted for errors
marks are not deducted for omissions
answers should only be judged on the quality of spelling, punctuation and grammar when these features are specifically assessed by the
question as indicated by the mark scheme. The meaning, however, should be unambiguous.
Rules must be applied consistently, e.g. in situations where candidates have not followed instructions or in the application of generic level
descriptors.
Marks should be awarded using the full range of marks defined in the mark scheme for the question (however; the use of the full mark range may
be limited according to the quality of the candidate responses seen).
Marks awarded are based solely on the requirements as defined in the mark scheme. Marks should not be awarded with grade thresholds or
grade descriptors in mind.
The words in bold in the mark scheme are important text that needs to be present, or some notion of it needs to be present. It does not have to
be the exact word, but something close to the meaning.
A single forward slash means this is an alternative word. A double forward slash means that this is an alternative mark point.
Ellipsis (…) on the end of one-mark point and the start of the next means that the candidate cannot get the second mark point without being
awarded the first one. If a mark point has an ellipsis at the beginning, but there is no ellipsis on the mark point before it, then this is just a follow-on
sentence and can be awarded without the previous mark point.
1 A 1
AND
OR
NAND
NOT
4(b)(i) To verify the data / for verification / as a verification check // to make sure that no changes are made to the data on entry 1
For example
REPEAT
OUTPUT "Please enter measurement "
INPUT Measurement
OUTPUT "Please re-enter measurement "
INPUT MeasurementCheck
UNTIL Measurement = MeasurementCheck
5 Due to an issue with Question 5, the question has been removed from the question paper.
6 One mark for each feature and one mark for corresponding example (max six) 6
ensuring that all identifiers have meaningful names …
… example using Total to store a running total
using comments to explain how the program works …
… example // all values are zeroed before the next calculation
using procedures and functions for the tasks within a program …
… example CalculateInterest(Deposit, Rate)
7(a) 07 3
04/12 or 16/18
02/20
Example
REPEAT
OUTPUT "Enter a digit "
INPUT Number[Counter]
UNTIL Number[Counter] = Round(Number[Counter],0) AND ((Number[Counter] = -1) OR
(Number[Counter] > 0 AND Number[Counter] < 10))
A B C X
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 0
1 0 1 1
1 1 0 0
1 1 1 0
10 1 5 7 11
0 1 10
1 2 1 10 10
1 3 5 10 10
1 4 7 10
0 1
10(a) SongNumber 1
SongNumber Text/Alphanumeric
Title Text/Alphanumeric
Recorded Date/time
Minutes Real
DECLARE P : STRING
P "The world"
DECLARE Q : CHAR
Q 'W'
For example:
P UCASE(P)
Counter 1
Position 0
REPEAT
IF SUBSTRING(P, Counter, 1) = Q
THEN
Position Counter
ENDIF
Counter Counter + 1
UNTIL Position <> 0 OR Counter = LENGTH(P)
11(c) 5 1
Data Structures required names shown underlined must be used as given in the scenario
Arrays or lists Account, AccDetails
Variable Size, AccountNumber
Requirements (techniques)
R1 Check account number and password (iteration and validation, selection, input, output)
R2 Display menu and make a selection (output, input and selection)
R3 Perform actions selected (use of arrays and procedures with parameters)
12 Valid True
ENDIF
ENDIF
ENDPROCEDURE
12 ENDPROCEDURE
IF Valid
THEN
REPEAT
OUTPUT "Menu"
OUTPUT "1. display balance"
OUTPUT "2. withdraw money"
OUTPUT "3. deposit money"
OUTPUT "4. exit"
OUTPUT "please choose 1, 2, 3 or 4"
INPUT Choice
CASE OF Choice
1 : Balance(AccountNumber)
2 : Withdrawal(AccountNumber)
3 : Deposit(AccountNumber)
4 : Exit TRUE
OTHERWISE OUTPUT "Invalid choice"
ENDCASE
UNTIL Choice = 4
ELSE
OUTPUT "Invalid account number "
ENDIF
AO2: Apply knowledge and understanding of the principles and concepts of computer science to a given context, including the
analysis and design of computational or programming problems
At least one programming technique Some programming techniques used The range of programming techniques
has been used. are appropriate to the problem. used is appropriate to the problem.
Any use of selection, iteration, More than one technique seen applied All criteria stated for the scenario have
counting, totalling, input and output. to the scenario, check the list of been covered by the use of
techniques needed. appropriate programming techniques,
No creditable check the list of techniques needed.
response.
Some data has been stored but not Some of the data structures chosen The data structures chosen are
appropriately. are appropriate and store some of the appropriate and store all the data
data required. required.
Any use of variables or arrays or other
language dependent data structures More than one data structure used to The data structures used store all the
e.g. Python lists. store data required by the scenario. data required by the scenario.
Program seen without relevant Program seen with some relevant The program has been fully
comments. comment(s). commented.
Some identifier names used are The majority of identifiers used are Suitable identifiers with names
appropriate. appropriately named. meaningful to their purpose have been
used throughout.
Some of the data structures used have Most of the data structures used have
meaningful names. meaningful names. All of the data structures used have
meaningful names.
The solution is illogical. The solution contains parts that may The program is in a logical order.
be illogical.
No creditable The solution is inaccurate in many The solution contains parts that are The solution is accurate.
response. places. inaccurate.
Solution logically performs all the tasks
Solution contains few lines of code Solution contains lines of code with given in the scenario. Ignore minor
with errors that attempt to perform a some errors that logically perform syntax errors.
task given in the scenario. tasks given in the scenario. Ignore
minor syntax errors.
The solution attempts at least one of The solution meets most of the The solution meets all the
the requirements. requirements. requirements given in the question.
Solution contains lines of code that Solution contains lines of code that Solution performs all the tasks given in
attempt at least one task given in the perform most tasks given in the the scenario.
scenario. scenario.
Published
This mark scheme is published as an aid to teachers and candidates, to indicate the requirements of the
examination. It shows the basis on which Examiners were instructed to award marks. It does not indicate the
details of the discussions that took place at an Examiners’ meeting before marking began, which would have
considered the acceptability of alternative answers.
Mark schemes should be read in conjunction with the question paper and the Principal Examiner Report for
Teachers.
Cambridge International will not enter into discussions about these mark schemes.
Cambridge International is publishing the mark schemes for the May/June 2023 series for most
Cambridge IGCSE, Cambridge International A and AS Level and Cambridge Pre-U components, and some
Cambridge O Level components.
These general marking principles must be applied by all examiners when marking candidate answers. They should be applied alongside the
specific content of the mark scheme or generic level descriptors for a question. Each question paper and mark scheme will also comply with these
marking principles.
the specific content of the mark scheme or the generic level descriptors for the question
the specific skills defined in the mark scheme or in the generic level descriptors for the question
the standard of response required by a candidate as exemplified by the standardisation scripts.
Marks awarded are always whole marks (not half marks, or other fractions).
marks are awarded for correct/valid answers, as defined in the mark scheme. However, credit is given for valid answers which go beyond
the scope of the syllabus and mark scheme, referring to your Team Leader as appropriate
marks are awarded when candidates clearly demonstrate what they know and can do
marks are not deducted for errors
marks are not deducted for omissions
answers should only be judged on the quality of spelling, punctuation and grammar when these features are specifically assessed by the
question as indicated by the mark scheme. The meaning, however, should be unambiguous.
Rules must be applied consistently, e.g. in situations where candidates have not followed instructions or in the application of generic level
descriptors.
Marks should be awarded using the full range of marks defined in the mark scheme for the question (however; the use of the full mark range may
be limited according to the quality of the candidate responses seen).
Marks awarded are based solely on the requirements as defined in the mark scheme. Marks should not be awarded with grade thresholds or
grade descriptors in mind.
The words in bold in the mark scheme are important text that needs to be present, or some notion of it needs to be present. It does not have to
be the exact word, but something close to the meaning.
A single forward slash means this is an alternative word. A double forward slash means that this is an alternative mark point.
Ellipsis (…) on the end of one-mark point and the start of the next means that the candidate cannot get the second mark point without being
awarded the first one. If a mark point has an ellipsis at the beginning, but there is no ellipsis on the mark point before it, then this is just a follow-on
sentence and can be awarded without the previous mark point.
1 B 1
4(b) One mark for each appropriate verification check, max two 4
One mark for each correct accompanying use, max two
For example:
Description Check
format check
to check that some data has been
entered
length check
to check that the data entered has an
appropriate number of characters presence check
Example answers:
WHILE Loop
REPEAT Loop
REPEAT
OUTPUT "Enter a number between 15 and 35 inclusive"
INPUT Length
UNTIL Length >= 15 AND LENGTH <= 35
Line 09 / ENDCASE
should be ENDIF
Correct algorithm
01 Counter 0
02 Total 0
03 WHILE Counter < 100 DO
04 INPUT Number
05 IF Number > 0
06 THEN
07 Total Total + Number
08 Counter Counter + 1
09 ENDIF
10 ENDWHILE
11 OUTPUT "The total value of your numbers is ", Total
12 OUTPUT "The average value of your numbers is ", Total / 100
5 1 1 0 0.5 Rejected
50 10 10 5 5
50 52 10 10.4 Rejected
57 11 11.4 Rejected
550 –1 550
8(a) One mark for each correct gate, with the correct input(s) as shown. 4
A B C Z
0 0 0 0
0 0 1 0
0 1 0 0
0 1 1 0
1 0 0 1
1 0 1 0
1 1 0 0
1 1 1 0
For example:
INPUT Saying
OPENFILE "[Link]" FOR WRITE
WRITEFILE "[Link]", Saying
CLOSEFILE "[Link]"
Fields 5
Records 12
Type Alphanumeric
Private Boolean
Rate$ Integer
NumberGuest Integer
Example answer:
Requirements (techniques):
R1 Output menu and input choice, with validation (range check, output with messages, input with prompts).
R2 Input number of new entries, within limits, update current size of contacts, input new data and sort the array (range
check, totalling, iteration and bubble sort).
R3 Output array whole contents and delete contents of array (iteration, output with labelling/messages, array initialisation).
11 Contacts[Count, 1] Contacts[Count + 1, 1]
Contacts[Count, 2] Contacts[Count + 1, 2]
Contacts[Count + 1, 1] Temp1
Contacts[Count + 1, 2] Temp2
ENDIF
NEXT Count
UNTIL NOT Flag
ENDIF
ENDIF
// display all contacts
IF Choice = 2
THEN
IF CurrentSize > 0
THEN
OUTPUT "Name and Telephone Number"
FOR Count 1 TO CurrentSize
OUTPUT Contacts[Count, 1], " ", Contacts[Count, 2]
NEXT Count
ENDIF
ENDIF
// delete all contacts
IF Choice = 3
THEN
FOR Count 1 TO 100
FOR Count2 1 TO 2
Contacts[Count, Count2] ""
NEXT Count2
NEXT Count
ENDIF
ENDWHILE
AO2: Apply knowledge and understanding of the principles and concepts of computer science to a given context, including the
analysis and design of computational or programming problems
At least one programming technique Some programming techniques used The range of programming techniques
has been used. are appropriate to the problem. used is appropriate to the problem.
Any use of selection, iteration, More than one technique seen applied All criteria stated for the scenario have
counting, totalling, input and output. to the scenario, check the list of been covered by the use of
techniques needed. appropriate programming techniques,
No creditable check the list of techniques needed.
response.
Some data has been stored but not Some of the data structures chosen The data structures chosen are
appropriately. are appropriate and store some of the appropriate and store all the data
data required. required.
Any use of variables or arrays or other
language dependent data structures More than one data structure used to The data structures used store all the
e.g. Python lists. store data required by the scenario. data required by the scenario.
Program seen without relevant Program seen with some relevant The program has been fully
comments. comment(s). commented.
Some identifier names used are The majority of identifiers used are Suitable identifiers with names
appropriate. appropriately named. meaningful to their purpose have been
used throughout.
Some of the data structures used have Most of the data structures used have
meaningful names. meaningful names. All of the data structures used have
meaningful names.
The solution is illogical. The solution contains parts that may The program is in a logical order.
be illogical.
No creditable The solution is inaccurate in many The solution contains parts that are The solution is accurate.
response. places. inaccurate.
Solution logically performs all the tasks
Solution contains few lines of code Solution contains lines of code with given in the scenario. Ignore minor
with errors that attempt to perform a some errors that logically perform syntax errors.
task given in the scenario. tasks given in the scenario. Ignore
minor syntax errors.
The solution attempts at least one of The solution meets most of the The solution meets all the
the requirements. requirements. requirements given in the question.
Solution contains lines of code that Solution contains lines of code that Solution performs all the tasks given in
attempt at least one task given in the perform most tasks given in the the scenario.
scenario. scenario.
Published
This mark scheme is published as an aid to teachers and candidates, to indicate the requirements of the
examination. It shows the basis on which Examiners were instructed to award marks. It does not indicate the
details of the discussions that took place at an Examiners’ meeting before marking began, which would have
considered the acceptability of alternative answers.
Mark schemes should be read in conjunction with the question paper and the Principal Examiner Report for
Teachers.
Cambridge International will not enter into discussions about these mark schemes.
Cambridge International is publishing the mark schemes for the October/November 2023 series for most
Cambridge IGCSE, Cambridge International A and AS Level components, and some Cambridge O Level
components.
These general marking principles must be applied by all examiners when marking candidate answers. They should be applied alongside the
specific content of the mark scheme or generic level descriptors for a question. Each question paper and mark scheme will also comply with these
marking principles.
• the specific content of the mark scheme or the generic level descriptors for the question
• the specific skills defined in the mark scheme or in the generic level descriptors for the question
• the standard of response required by a candidate as exemplified by the standardisation scripts.
Marks awarded are always whole marks (not half marks, or other fractions).
• marks are awarded for correct/valid answers, as defined in the mark scheme. However, credit is given for valid answers which go beyond
the scope of the syllabus and mark scheme, referring to your Team Leader as appropriate
• marks are awarded when candidates clearly demonstrate what they know and can do
• marks are not deducted for errors
• marks are not deducted for omissions
• answers should only be judged on the quality of spelling, punctuation and grammar when these features are specifically assessed by the
question as indicated by the mark scheme. The meaning, however, should be unambiguous.
Rules must be applied consistently, e.g. in situations where candidates have not followed instructions or in the application of generic level
descriptors.
Marks should be awarded using the full range of marks defined in the mark scheme for the question (however; the use of the full mark range may
be limited according to the quality of the candidate responses seen).
Marks awarded are based solely on the requirements as defined in the mark scheme. Marks should not be awarded with grade thresholds or
grade descriptors in mind.
1 C 1
2 B 1
3 One mark for each correct line from description to data type 4
BOOLEAN
a whole number
CHAR
a single letter
INTEGER
5(c) One mark for stage, one mark for matching description (max two) 2
• design (1) details of solution set out (1)
• coding (1) program is developed (1)
• testing (1) program is tested for errors (1)
7(b) 4
A B C X
0 0 0 1
0 0 1 0
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 0
1 1 0 1
1 1 1 0
Yes
INPUT Cost
OUTPUT
"Price ",
ROUND(Price,2)
STOP
8(c) One mark for set of test data, one mark for purpose (max four) 4
Example:
1 and 1 (1) normal data to ensure the algorithm accepts this test data (1)
–1 and 1 (1) abnormal data for length to ensure that it is rejected (1)
9(a) One mark for each appropriate field name and correct data type 5
CatNo text/alphanumeric
Description text/alphanumeric
StockLevel integer
Price real
Painted Boolean
9(b)(i) CatNo 1
Data Structures required names shown underlined must be used as given in the scenario
2D Array or list Evening[1:10, 1:20] / Evening[0:9, 0:19]
Variables Counter, SeatCounter, NumSeats, Row, Column
Requirements (techniques)
R1 Find number of seats available for each performance and output (searching, nested iteration, output)
R2 Inputs and validates number of seats (input, iteration, and selection)
R3 Checking if seats available (selection, assignment, output with appropriate messages)
// meaningful identifier names and appropriate data structures to store the data required
DECLARE Counter, SeatCounter, NumSeats, Row, Column : INTEGER
10 FOR Row 1 TO 10
FOR Column 1 TO 20
IF Evening[Row, Column]
THEN
SeatCounter SeatCounter + 1
ENDIF
NEXT Column
NEXT Row
// validate input
OUTPUT "How many seats do you want to book? 1, 2, 3 or 4 "
INPUT NumSeats
AO2: Apply knowledge and understanding of the principles and concepts of computer science to a given context,
including the analysis and design of computational or programming problems
No creditable At least one programming Some programming techniques used The range of programming techniques
response. technique has been used. are appropriate to the problem. used is appropriate to the problem.
Any use of selection, iteration, More than one technique seen All criteria stated for the scenario have
counting, totalling, input and applied to the scenario, check the list been covered by the use of
output. of techniques needed. appropriate programming techniques,
check list of techniques needed.
Some data has been stored but Some of the data structures chosen The data structures chosen are
not appropriately. are appropriate and store some of the appropriate and store all the data
Any use of variables or arrays or data required. required.
other language dependent data More than one data structure used to The data structures used store all the
structures e.g. Python lists. store data required by the scenario. data required by the scenario.
No creditable Program seen without relevant Program seen with some relevant The program has been fully
response. comments. comment(s). commented
Some identifier names used are The majority of identifiers used are Suitable identifiers with names
appropriate appropriately named. meaningful to their purpose have been
Some of the data structures Most of the data structures used have used throughout.
used have meaningful names. meaningful names. All of the data structures used have
meaningful names.
The solution is illogical. The solution contains parts that may The program is in a logical order.
be illogical.
The solution is inaccurate in The solution contains parts that are The solution is accurate.
many places. inaccurate. Solution logically performs all the
Solution contains few lines of Solution contains lines of code with tasks given in the scenario. Ignore
code with errors that attempt to some errors that logically perform minor syntax errors.
perform a task given in the tasks given in the scenario. Ignore
scenario. minor syntax errors.
The solution attempts at least The solution attempts to meet most of The solution meets all the
one of the requirements. the requirements. requirements given in the question.
Solution contains lines of code Solution contains lines of code that Solution performs all the tasks given in
that attempt at least one task perform most tasks given in the the scenario.
given in the scenario. scenario.
Published
This mark scheme is published as an aid to teachers and candidates, to indicate the requirements of the
examination. It shows the basis on which Examiners were instructed to award marks. It does not indicate the
details of the discussions that took place at an Examiners’ meeting before marking began, which would have
considered the acceptability of alternative answers.
Mark schemes should be read in conjunction with the question paper and the Principal Examiner Report for
Teachers.
Cambridge International will not enter into discussions about these mark schemes.
Cambridge International is publishing the mark schemes for the October/November 2023 series for most
Cambridge IGCSE, Cambridge International A and AS Level components, and some Cambridge O Level
components.
These general marking principles must be applied by all examiners when marking candidate answers.
They should be applied alongside the specific content of the mark scheme or generic level descriptors
for a question. Each question paper and mark scheme will also comply with these marking principles.
• the specific content of the mark scheme or the generic level descriptors for the question
• the specific skills defined in the mark scheme or in the generic level descriptors for the question
• the standard of response required by a candidate as exemplified by the standardisation scripts.
Marks awarded are always whole marks (not half marks, or other fractions).
• marks are awarded for correct/valid answers, as defined in the mark scheme. However, credit
is given for valid answers which go beyond the scope of the syllabus and mark scheme,
referring to your Team Leader as appropriate
• marks are awarded when candidates clearly demonstrate what they know and can do
• marks are not deducted for errors
• marks are not deducted for omissions
• answers should only be judged on the quality of spelling, punctuation and grammar when these
features are specifically assessed by the question as indicated by the mark scheme. The
meaning, however, should be unambiguous.
Rules must be applied consistently, e.g. in situations where candidates have not followed
instructions or in the application of generic level descriptors.
Marks should be awarded using the full range of marks defined in the mark scheme for the question
(however; the use of the full mark range may be limited according to the quality of the candidate
responses seen).
Marks awarded are based solely on the requirements as defined in the mark scheme. Marks should
not be awarded with grade thresholds or grade descriptors in mind.
1 A 1
2(b) One mark for each appropriate test data, max two 4
One mark for each correct accompanying reason, max two
For example:
Normal – 30/12/1960 …
Reason – … (the date is written in the correct format and) should be
accepted.
Abnormal – 30/Dec/1960 …
Reason – … (the month is not written in the correct format and) should be
rejected.
Example answer:
Min 100
FOR Count 1 TO 25
IF Temperatures[Count] < Min
THEN
Min Temperatures[Count]
ENDIF
NEXT Count
OUTPUT "The lowest temperature is ", Min
Correct algorithm:
01 DECLARE City : ARRAY[1:50, 1:2] OF STRING
02 DECLARE Count : INTEGER
03 DECLARE Out : INTEGER
04 Count 1
05 REPEAT
06 OUTPUT "Enter the name of the city"
07 INPUT City[Count, 1]
08 OUTPUT "Enter the name of the country"
09 INPUT City[Count, 2]
10 Count Count + 1
11 UNTIL Count > 50
12 FOR Out 1 TO 50
13 OUTPUT "The city ", City[Out, 1], " is in ",
City[Out, 2]
14 NEXT Out
0 0
25 25 1
35 60 2
3 63 3
0 21 Total is 63
Average is 21
0 0
57 57 1
20 77 2
25 102 3
18 120 4
0 30 Total is 120
Average is 30
0 0
−1
For example:
Quote "Learning Never Exhausts The Mind"
Start 25
Number 8
OUTPUT SUBSTRING(Quote, Start, Number)
OUTPUT LCASE(Quote)
9(a) One mark for each correct gate, with the correct input(s) as shown. 4
A B C Z
0 0 0 1
0 0 1 1
0 1 0 1
0 1 1 1
1 0 0 1
1 0 1 1
1 1 0 0
1 1 1 1
10(a) 18 1
For example:
Code …
…Each entry in this field is a unique identifier
Breed text
Gender Boolean
Age integer
Arrived date/time
SELECT
Horses
BreedOrigin
Correct SQL:
Tables for AO2 and AO3 are used to award a mark in a suitable band using a
best fit approach.
Requirements (techniques)
R1 Input and store customer name, room length and width, with validation of
input for room dimensions, including error message and repeated input
(Input with prompts, range check and iteration).
R2 Initialise wood arrays. Calculate room area, select and store wood
required. Determine cost of wood type and calculate price of wood to
purchase. Round and store all data to relevant array (array initialisation,
rounding, data retrieval from array, calculation and storage of results).
R3 Output full details: name of customer, choice of wood and quotation price
with appropriate messages. Program continues for next customer (Output
with messages, iteration of whole program).
11 Price[Count]
Next Count
// input wood choice
OUTPUT "Input a number from 1 to 3 "
INPUT WoodChoice
// validate wood choice
WHILE WoodChoice < 1 OR WoodChoice > 3
OUTPUT "Your input is out of range, please try
again "
INPUT WoodChoice
ENDWHILE
// to calculate the total cost of the wood
WoodCost RoomArea * Price[WoodChoice]
// to store the relevant data in Quotations[]
Quotations[CurrentCustomer, 1] RoomLength
Quotations[CurrentCustomer, 2] RoomWidth
Quotations[CurrentCustomer, 3] RoomArea
Quotations[CurrentCustomer, 4] WoodChoice
Quotations[CurrentCustomer, 5] WoodCost
AO2: Apply knowledge and understanding of the principles and concepts of computer
science to a given context, including the analysis and design of computational or
programming problems
Some data has been Some of the data The data structures
stored but not structures chosen are chosen are appropriate
appropriately. appropriate and store and store all the data
Any use of variables or some of the data required. required.
arrays or other language More than one data The data structures used
dependent data structures structure used to store store all the data required
e.g. Python lists. data required by the by the scenario.
scenario.
No creditable Program seen without Program seen with some The program has been
response. relevant comments. relevant comment(s). fully commented.
The solution attempts at The solution attempts to The solution meets all the
least one of the meet most of the requirements given in the
requirements. requirements. question.
Solution contains lines of Solution contains lines of Solution performs all the
code that attempt at least code that perform most tasks given in the
one task given in the tasks given in the scenario.
scenario. scenario.
Published
This mark scheme is published as an aid to teachers and candidates, to indicate the requirements of the
examination. It shows the basis on which Examiners were instructed to award marks. It does not indicate the
details of the discussions that took place at an Examiners’ meeting before marking began, which would have
considered the acceptability of alternative answers.
Mark schemes should be read in conjunction with the question paper and the Principal Examiner Report for
Teachers.
Cambridge International will not enter into discussions about these mark schemes.
Cambridge International is publishing the mark schemes for the October/November 2023 series for most
Cambridge IGCSE, Cambridge International A and AS Level components, and some Cambridge O Level
components.
These general marking principles must be applied by all examiners when marking candidate answers. They should be applied alongside the
specific content of the mark scheme or generic level descriptors for a question. Each question paper and mark scheme will also comply with these
marking principles.
• the specific content of the mark scheme or the generic level descriptors for the question
• the specific skills defined in the mark scheme or in the generic level descriptors for the question
• the standard of response required by a candidate as exemplified by the standardisation scripts.
Marks awarded are always whole marks (not half marks, or other fractions).
• marks are awarded for correct/valid answers, as defined in the mark scheme. However, credit is given for valid answers which go beyond
the scope of the syllabus and mark scheme, referring to your Team Leader as appropriate
• marks are awarded when candidates clearly demonstrate what they know and can do
• marks are not deducted for errors
• marks are not deducted for omissions
• answers should only be judged on the quality of spelling, punctuation and grammar when these features are specifically assessed by the
question as indicated by the mark scheme. The meaning, however, should be unambiguous.
Rules must be applied consistently, e.g. in situations where candidates have not followed instructions or in the application of generic level
descriptors.
Marks should be awarded using the full range of marks defined in the mark scheme for the question (however; the use of the full mark range may
be limited according to the quality of the candidate responses seen).
Marks awarded are based solely on the requirements as defined in the mark scheme. Marks should not be awarded with grade thresholds or
grade descriptors in mind.
1 A 1
2 B 1
3(a) One mark for each correct line from description to pseudocode keyword 4
WRITE
retrieves data from a file
READ
displays data on a screen
OPEN
Example:
WHILE Seats < 1 OR Seats > 6 OR Seats <> ROUND(Seats, 0) DO
OUTPUT "Please enter a valid number of seats "
INPUT Seats
ENDWHILE
4(c) One mark for correct test data, one mark for corresponding reason 2
Example:
7, abnormal data to show that this value would be rejected
5(a) One mark for each error identified and correction given 3
• Line 06 Password should be NewPassword
• Line 11 AND should be OR
• Line 16 INPUT should be OUTPUT
Two marks:
one mark for correct use of flow chart symbols
one mark for correct use arrows and labels
6(a) One mark for correct gate and one mark for correct truth table 2
AND
A B X
0 0 0
0 1 0
1 0 0
1 1 1
6(b) One mark for correct gate and one mark for correct truth table 2
XOR // EOR
A B X
0 0 0
0 1 1
1 0 1
1 1 0
6(c) One mark for correct gate and one mark for correct truth table 2
NOR
A B X
0 0 1
0 1 0
1 0 0
1 1 0
6(d) One mark for each correct gate, with the correct input(s) as shown. 5
7 one mark for first description one mark for matching difference max four 4
• local variables - scope is a defined block of code/subroutine/procedure/function
• global variables – scope is the whole program
• local variables - value cannot be changed elsewhere in the program
• global variables – value can be changed anywhere in the program
0 0
1 Y
2 Y
3 Y
1 N
4 Y
5 Y
6 Y
7 Y
2 N
8 Y
9 Y
10 Y 20
9(a) Records: 14 2
Fields: 5
9(b)(i) Species/Description 1
9(b)(ii) Long names that could be easily misspelt // species or description could be duplicated 1
Data Structures required names shown underlined must be used as given in the scenario
2D Array or list Temperatures
Variables MaxDay, MinDay, AvDay, MaxWeek, MinWeek, AvWeek
Requirements (techniques)
R1 Find maximum and minimum temperatures for each day and calculates the average daily temperature (searching,
totalling)
R2 Find maximum and minimum temperatures for week and calculates the average weekly temperature (nested
searching, totalling)
R3 outputs for each day name, the rounded values for maximum temperature, minimum temperatures and average
temperature. Outputs for the week the rounded values for maximum temperature, minimum temperatures and average
temperature (output with appropriate messages and rounded values)
// meaningful identifier names and appropriate data structures to store the data required
DECLARE DayCounter, HourCounter : INTEGER
DECLARE AvDay, AvWeek, MaxDay, MinDay, MaxWeek, MinWeek : REAL
DECLARE DayTotal, WeekTotal : REAL
DECLARE Day : STRING
CONSTANT Hours 24
CONSTANT Days 7
10 MaxWeek -1000// initialise max and min temperatures and total for the week
MinWeek 1000
WeekTotal 0
ENDCASE
NEXT DayCounter
WeekAverage WeekTotal / Days
OUTPUT "Maximum temperature for week ", MaxWeek// output results for week
OUTPUT "Minimum temperature for week ", MinWeek
OUTPUT "Average temperature for Week ", ROUND(WeekAverage,2)
AO2: Apply knowledge and understanding of the principles and concepts of computer science to a given context,
including the analysis and design of computational or programming problems
No creditable At least one programming Some programming techniques used The range of programming techniques
response. technique has been used. are appropriate to the problem. used is appropriate to the problem.
Any use of selection, iteration, More than one technique seen All criteria stated for the scenario have
counting, totalling, input and applied to the scenario, check the list been covered by the use of
output. of techniques needed. appropriate programming techniques,
check list of techniques needed.
Some data has been stored but Some of the data structures chosen The data structures chosen are
not appropriately. are appropriate and store some of the appropriate and store all the data
Any use of variables or arrays or data required. required.
other language dependent data More than one data structure used to The data structures used store all the
structures e.g. Python lists. store data required by the scenario. data required by the scenario.
No creditable Program seen without relevant Program seen with some relevant The program has been fully
response. comments. comment(s). commented.
Some identifier names used are The majority of identifiers used are Suitable identifiers with names
appropriate. appropriately named. meaningful to their purpose have been
Some of the data structures Most of the data structures used have used throughout.
used have meaningful names. meaningful names. All of the data structures used have
meaningful names.
The solution is illogical. The solution contains parts that may The program is in a logical order.
be illogical.
The solution is inaccurate in The solution contains parts that are The solution is accurate.
many places. inaccurate. Solution logically performs all the
Solution contains few lines of Solution contains lines of code with tasks given in the scenario. Ignore
code with errors that attempt to some errors that logically perform minor syntax errors.
perform a task given in the tasks given in the scenario. Ignore
scenario. minor syntax errors.
The solution attempts at least The solution attempts to meet most of The solution meets all the
one of the requirements. the requirements. requirements given in the question.
Solution contains lines of code Solution contains lines of code that Solution performs all the tasks given in
that attempt at least one task perform most tasks given in the the scenario.
given in the scenario. scenario.
Published
This mark scheme is published as an aid to teachers and candidates, to indicate the requirements of the
examination. It shows the basis on which Examiners were instructed to award marks. It does not indicate the
details of the discussions that took place at an Examiners’ meeting before marking began, which would have
considered the acceptability of alternative answers.
Mark schemes should be read in conjunction with the question paper and the Principal Examiner Report for
Teachers.
Cambridge International will not enter into discussions about these mark schemes.
Cambridge International is publishing the mark schemes for the February/March 2022 series for most
Cambridge IGCSE™, Cambridge International A and AS Level components and some Cambridge O Level
components.
These general marking principles must be applied by all examiners when marking candidate answers. They should be applied alongside the
specific content of the mark scheme or generic level descriptors for a question. Each question paper and mark scheme will also comply with these
marking principles.
• the specific content of the mark scheme or the generic level descriptors for the question
• the specific skills defined in the mark scheme or in the generic level descriptors for the question
• the standard of response required by a candidate as exemplified by the standardisation scripts.
Marks awarded are always whole marks (not half marks, or other fractions).
• marks are awarded for correct/valid answers, as defined in the mark scheme. However, credit is given for valid answers which go beyond the
scope of the syllabus and mark scheme, referring to your Team Leader as appropriate
• marks are awarded when candidates clearly demonstrate what they know and can do
• marks are not deducted for errors
• marks are not deducted for omissions
• answers should only be judged on the quality of spelling, punctuation and grammar when these features are specifically assessed by the
question as indicated by the mark scheme. The meaning, however, should be unambiguous.
Rules must be applied consistently, e.g. in situations where candidates have not followed instructions or in the application of generic level
descriptors.
Marks should be awarded using the full range of marks defined in the mark scheme for the question (however; the use of the full mark range may
be limited according to the quality of the candidate responses seen).
Marks awarded are based solely on the requirements as defined in the mark scheme. Marks should not be awarded with grade thresholds or
grade descriptors in mind.
Section A
1(a) Many correct answers, the names used must be meaningful. The names given are examples only. 6
One mark per mark point, max three
Constant name MaxNumberPlayers
Value 4
Why constant used This number will not change whilst the program is running
Example Answer
FOR Hole ← 1 TO NumberOfHoles
FOR Player ← 1 TO NumberOfPlayers
REPEAT
OUTPUT PlayerName[Player], "Please enter the number of strokes played for hole ",
Hole
INPUT NumberStrokes
OUTPUT PlayerName[Player], " please re-enter the number"
INPUT NumberStrokesAgain
UNTIL NumberStrokes = NumberStrokesAgain
IF Player = 1
THEN
Player1[Hole] ← NumberStrokes
Player1Total ← Player1Total + NumberStrokes
OUTPUT "Do you want to see number total of strokes played so far Y/N? "
INPUT SeeTotal
IF SeeTotal = "Y"
THEN
OUTPUT "Total number of strokes so far ", Player1Total
ENDIF
ENDIF
IF Player = 2
1(c) THEN
Player2[Hole] ← NumberStrokes
Player2Total ← Player2Total + NumberStrokes
OUTPUT "Do you want to see number total of strokes played so far Y/N? "
INPUT SeeTotal
IF SeeTotal = "Y"
THEN
OUTPUT "Total number of strokes so far ", Player2Total
ENDIF
ENDIF
IF Player = 3
THEN
Player3[Hole] ← NumberStrokes
Player3Total ← Player3Total + NumberStrokes
OUTPUT "Do you want to see number total of strokes played so far Y/N? "
INPUT SeeTotal
IF SeeTotal = "Y"
THEN
OUTPUT "Total number of strokes so far ", Player3Total
ENDIF
ENDIF
IF Player = 4
THEN
Player4[Hole] ← NumberStrokes
Player4Total ← Player4Total + NumberStrokes
OUTPUT "Do you want to see number total of strokes played so far Y/N? "
INPUT SeeTotal
IF SeeTotal = "Y"
THEN
OUTPUT "Total number of strokes so far ", Player4Total
ENDIF
ENDIF
NEXT Player
NEXT Hole
1(d) Explanation 4
One mark per mark point, max four
Section B
2(b) One mark suitable IF construct, one mark correct assignment statement, for example 4
IF Age < 7
THEN
CountUnder7 ← CountUnder7 + 1
ENDIF
One mark suitable message, one mark correct use of countUnder7 variable, for example
OUTPUT "There are ", CountUnder7, " students aged under 7."
3 One mark for each correct single line from the validation check, max four 4
length check
check digit
range check
type check
Number C D OUTPUT
7 0 3
6 0 3
1 2
2 1 2
5 0 2
4 0 2
1 1 1
-1
5 Explanation 6
One mark per mark point, max three
• field, FlowerID, not required / should not be displayed
• Type field not included and displayed
• Fragrance field should not be displayed
• Fragrance criteria should not be Y / should be N
Field: Type Fragrance Style Colour
Table: FLOWER FLOWER FLOWER FLOWER
Sort:
Show:
Criteria: =N
or:
query-by-example grid
One mark per mark point, max three
Published
This mark scheme is published as an aid to teachers and candidates, to indicate the requirements of the
examination. It shows the basis on which Examiners were instructed to award marks. It does not indicate the
details of the discussions that took place at an Examiners’ meeting before marking began, which would have
considered the acceptability of alternative answers.
Mark schemes should be read in conjunction with the question paper and the Principal Examiner Report for
Teachers.
Cambridge International will not enter into discussions about these mark schemes.
Cambridge International is publishing the mark schemes for the May/June 2022 series for most
Cambridge IGCSE, Cambridge International A and AS Level and Cambridge Pre-U components, and some
Cambridge O Level components.
These general marking principles must be applied by all examiners when marking candidate answers. They should be applied alongside the
specific content of the mark scheme or generic level descriptors for a question. Each question paper and mark scheme will also comply with these
marking principles.
the specific content of the mark scheme or the generic level descriptors for the question
the specific skills defined in the mark scheme or in the generic level descriptors for the question
the standard of response required by a candidate as exemplified by the standardisation scripts.
Marks awarded are always whole marks (not half marks, or other fractions).
marks are awarded for correct/valid answers, as defined in the mark scheme. However, credit is given for valid answers which go beyond the
scope of the syllabus and mark scheme, referring to your Team Leader as appropriate
marks are awarded when candidates clearly demonstrate what they know and can do
marks are not deducted for errors
marks are not deducted for omissions
answers should only be judged on the quality of spelling, punctuation and grammar when these features are specifically assessed by the
question as indicated by the mark scheme. The meaning, however, should be unambiguous.
Rules must be applied consistently, e.g. in situations where candidates have not followed instructions or in the application of generic level
descriptors.
Marks should be awarded using the full range of marks defined in the mark scheme for the question (however; the use of the full mark range may
be limited according to the quality of the candidate responses seen).
Marks awarded are based solely on the requirements as defined in the mark scheme. Marks should not be awarded with grade thresholds or
grade descriptors in mind.
The words in bold in the mark scheme are important text that needs to be present, or some notion of it needs to be present. It does not have to
be the exact word, but something close to the meaning.
A single forward slash means this is an alternative word. A double forward slash means that this is an alternative mark point.
Ellipsis (…) on the end of one-mark point and the start of the next means that the candidate cannot get the second mark point without being
awarded the first one. If a mark point has an ellipsis at the beginning, but there is no ellipsis on the mark point before it, then this is just a follow-on
sentence and can be awarded without the previous mark point.
Section A
For example:
An array (1) named FirstName (1) to store the first names of the members (1) such as James (1). A variable (1) could also
be used to enter whether or not they wish to volunteer. (5 marks)
A variable (1) named FirstName (1) to input the first names of the members (1) such as James (1). A variable could also be
used to enter whether or not they wish to volunteer, with sample data of ‘yes’ (1). (5 marks)
1(b) Explanation of how each was done. Code is allowed, but must be fully explained. 3
MP1 add/use a (new) variable/array to total the membership fee money // total number of members who have paid
MP2 initialise the totalling variable to 0 at the start of the program
MP3 check whether the new member has paid the $75 fee using a conditional statement
MP4 …if they have paid, and the amount paid is being totalled, add 75 to the current running total of the membership
fee total
MP5 …if they have paid, and the number of paid members is being totalled, add 1 to the total number of members who
have paid
MP6 …if they have paid, and the number of paid members is being totalled, multiply total by 75, to give total paid.
MP1 apply a presence check // to ensure that data has been entered (to the question do you want to work as a
volunteer?)
MP2 apply a type check // to ensure that data has been entered of the correct data type e.g. integer if the response
required is 1 or 0
MP3 checking the valid inputs would be either yes or no // apply a check to ensure that the data matches the expected
input
MP4 the valid inputs would be to choose in which area the new member wishes to volunteer e.g. a list of areas
MP5 if input is not valid, an error message is output (and a new input is requested)
MP6 if input is valid, the program continues
Example answer
ArrayIndex 0 //initial array's index
Check "N"
WHILE Check <> "Y"
OUTPUT "Enter your name"
INPUT Name
OUTPUT "Enter the message you would like on your brass plaque"
INPUT Message
OUTPUT "The data you have entered is, name: ", Name, " and your
message for the plaque is: ", Message
OUTPUT "Is this correct (Y or N)"
INPUT Check
IF Check <> "Y"
THEN
OUTPUT "The data entered is incorrect, please re-enter"
ENDIF
ENDWHILE
1(e) Explanation of how each was done. Code is allowed, but must be fully explained. 4
MP1 a menu is provided/options are displayed so that the user can choose which of the lists they wish to see
MP2 the user inputs a number/code as shown on the menu corresponding to their menu choice
MP3 attempt to validate input
MP4 … if it does not match an option, give an error message and ask for re-input
MP5 … if it matches an option, a range of IF statements/conditional statements/CASE statement are/is used to
compare the input with the available options
MP6 … output the chosen list e.g. using a loop to output the contents of the appropriate first and second name arrays
corresponding to the user input
MP7 identification of empty list and appropriate action
Section B
Data type
Description
Boolean Char Integer Real String
any number
START
PassCount 0
FailCount 0
Count 0
INPUT
Score
Count Count + 1
No IS Count =
60?
Yes
END
Or:
REPEAT
IF Score < 0 OR Score > 100
THEN
OUTPUT "Your entry must be between 0 and 100, inclusive, please try again "
INPUT Score
ENDIF
UNTIL Score >= 0 AND Score <= 100
0 0 8
1 66
2 606 6 6 606
3 6226
4 8448
5 642 6 2
6 747 7 7 747
7 77
8 121 1 1 121
6(a) 8 1
6(b) The primary key field must be unique/different for each record in the table 1
Sort: Ascending
Show:
Criteria: =0 ="Y"
or:
Published
This mark scheme is published as an aid to teachers and candidates, to indicate the requirements of the
examination. It shows the basis on which Examiners were instructed to award marks. It does not indicate the
details of the discussions that took place at an Examiners’ meeting before marking began, which would have
considered the acceptability of alternative answers.
Mark schemes should be read in conjunction with the question paper and the Principal Examiner Report for
Teachers.
Cambridge International will not enter into discussions about these mark schemes.
Cambridge International is publishing the mark schemes for the May/June 2022 series for most
Cambridge IGCSE, Cambridge International A and AS Level and Cambridge Pre-U components, and some
Cambridge O Level components.
These general marking principles must be applied by all examiners when marking candidate answers. They should be applied alongside the
specific content of the mark scheme or generic level descriptors for a question. Each question paper and mark scheme will also comply with these
marking principles.
the specific content of the mark scheme or the generic level descriptors for the question
the specific skills defined in the mark scheme or in the generic level descriptors for the question
the standard of response required by a candidate as exemplified by the standardisation scripts.
Marks awarded are always whole marks (not half marks, or other fractions).
marks are awarded for correct/valid answers, as defined in the mark scheme. However, credit is given for valid answers which go beyond the
scope of the syllabus and mark scheme, referring to your Team Leader as appropriate
marks are awarded when candidates clearly demonstrate what they know and can do
marks are not deducted for errors
marks are not deducted for omissions
answers should only be judged on the quality of spelling, punctuation and grammar when these features are specifically assessed by the
question as indicated by the mark scheme. The meaning, however, should be unambiguous.
Rules must be applied consistently, e.g. in situations where candidates have not followed instructions or in the application of generic level
descriptors.
Marks should be awarded using the full range of marks defined in the mark scheme for the question (however; the use of the full mark range may
be limited according to the quality of the candidate responses seen).
Marks awarded are based solely on the requirements as defined in the mark scheme. Marks should not be awarded with grade thresholds or
grade descriptors in mind.
The words in bold in the mark scheme are important text that needs to be present, or some notion of it needs to be present. It does not have to
be the exact word, but something close to the meaning.
A single forward slash means this is an alternative word. A double forward slash means that this is an alternative mark point.
Ellipsis (…) on the end of one-mark point and the start of the next means that the candidate cannot get the second mark point without being
awarded the first one. If a mark point has an ellipsis at the beginning, but there is no ellipsis on the mark point before it, then this is just a follow-on
sentence and can be awarded without the previous mark point.
Section A
1(a)(i) Many correct answers, the name used must be meaningful. The name given is an example only. 3
One mark per mark point, max three
Constant AdultCostOneDay
Value 20.00
Use Storing the cost of an adult ticket for one day
1(a)(ii) Many correct answers, the name used must be meaningful. The name given is an example only. 3
One mark per mark point, max three
Variable NumberOfTickets // NumberOfAdultTickets
Data type Integer
Use Inputting the number of tickets purchased // Inputting the number of adult tickets purchased
or
Example answer
TotalCost 0
TotalPeople 0
OUTPUT "Do you want single tickets? Y/N"
INPUT Single
IF Single = "Y"
THEN
FOR Type 1 TO 3 // adults, children and seniors
REPEAT
Flag True
OUTPUT "How many ",TicketDecription[Type], " tickets"
INPUT NumberOfTickets[Type]
IF Type = 2
THEN
IF NumberOfTickets[2] > 2 * NumberOfTickets[1]
THEN
Flag FALSE
OUTPUT "Too many children"
ENDIF
ENDIF
UNTIL NumberOfTickets[Type] >= 0 AND Flag
TotalCost TotalCost + TicketPrice[Type] * NumberOfTickets[Type]
REPEAT
OUTPUT "How many people would like to see the lion feeding?"
INPUT LionFeedingNumber
IF TotalPeople >= LionFeedingNumber
THEN TotalCost TotalCost + LionFeedingNumber * LionfeedingPrice
ENDIF
OUTUT "How many people would like to see the penguin feeding?"
INPUT PenguinFeedingNumber
IF TotalPeople >= PenguinFeedingNumber
THEN TotalCost TotalCost + PenguinFeedingNumber * PenguinfeedingPrice
ENDIF
UNTIL TotalPeople >= PenguinFeedingNumber AND TotalPeople >= LionFeedingNumber
1(e) Explanation 3
One mark per mark point, max three
MP1 use of selection (or any other method) to identify bookings with 2 or more adults and/or seniors and 2 (allow 3) or
more children
MP2 calculating new price including family ticket(s) for booking / tickets sold
MP3 … use of condition to compare price of family ticket(s) to price of ordinary tickets / group ticket(s) …
MP4 … identifying best value / lowest cost
Section B
2(b) One mark check, one mark matching description, max four 4
Check: validation // length check
Description length check // checks number of characters in password
Check: verification // double entry
Description double entry // comparison that two inputs are the same
2(c) One mark per set, one mark matching reason, max four 4
Set 1 – any appropriate example e.g. “small”
Reason must follow through from the password given e.g. abnormal data will be rejected
Set 2 – any different appropriate example e.g. “password” and “password”
Reason must be different and follow through from the password given e.g. normal data will be accepted
0 0 0 0
1 1 75
2 2 78
3 3 84
4 1 87 Too Hot
5 2 91 Too Hot
6 4 80
7 5 75
8 6 70
9 7 65
10 1 62 Too Cold
-1 30 30
4(b) include a message to explain the value output / e. g. “The percentage of meals not served” // 1
outputting Hot, Cold and Serve
Sort:
Show:
or:
Or
Field: ItemNumber Description Uses StockLevel
Sort:
Show:
Criteria: =1 <[ReorderLevel]
or:
5(b) the field Uses already shows this information // duplication of data // redundant data 1
Published
This mark scheme is published as an aid to teachers and candidates, to indicate the requirements of the
examination. It shows the basis on which Examiners were instructed to award marks. It does not indicate the
details of the discussions that took place at an Examiners’ meeting before marking began, which would have
considered the acceptability of alternative answers.
Mark schemes should be read in conjunction with the question paper and the Principal Examiner Report for
Teachers.
Cambridge International will not enter into discussions about these mark schemes.
Cambridge International is publishing the mark schemes for the May/June 2022 series for most
Cambridge IGCSE, Cambridge International A and AS Level and Cambridge Pre-U components, and some
Cambridge O Level components.
These general marking principles must be applied by all examiners when marking candidate answers. They should be applied alongside the
specific content of the mark scheme or generic level descriptors for a question. Each question paper and mark scheme will also comply with these
marking principles.
the specific content of the mark scheme or the generic level descriptors for the question
the specific skills defined in the mark scheme or in the generic level descriptors for the question
the standard of response required by a candidate as exemplified by the standardisation scripts.
Marks awarded are always whole marks (not half marks, or other fractions).
marks are awarded for correct/valid answers, as defined in the mark scheme. However, credit is given for valid answers which go beyond the
scope of the syllabus and mark scheme, referring to your Team Leader as appropriate
marks are awarded when candidates clearly demonstrate what they know and can do
marks are not deducted for errors
marks are not deducted for omissions
answers should only be judged on the quality of spelling, punctuation and grammar when these features are specifically assessed by the
question as indicated by the mark scheme. The meaning, however, should be unambiguous.
Rules must be applied consistently, e.g. in situations where candidates have not followed instructions or in the application of generic level
descriptors.
Marks should be awarded using the full range of marks defined in the mark scheme for the question (however; the use of the full mark range may
be limited according to the quality of the candidate responses seen).
Marks awarded are based solely on the requirements as defined in the mark scheme. Marks should not be awarded with grade thresholds or
grade descriptors in mind.
The words in bold in the mark scheme are important text that needs to be present, or some notion of it needs to be present. It does not have to
be the exact word, but something close to the meaning.
A single forward slash means this is an alternative word. A double forward slash means that this is an alternative mark point.
Ellipsis (…) on the end of one-mark point and the start of the next means that the candidate cannot get the second mark point without being
awarded the first one. If a mark point has an ellipsis at the beginning, but there is no ellipsis on the mark point before it, then this is just a follow-on
sentence and can be awarded without the previous mark point.
Section A
1(a) Many correct answers, the names used must be meaningful. The names given are examples only. 4
One mark per mark point, max four
Variable ClientName
Use Storing the name of the person making the booking
Array BookingsLarge[ ]
Use Storing the bookings for the large meeting room
If the requested day is available, the booking details and cost of the booking should be output for the client to confirm.
Once confirmed, a unique booking code should be generated and stored in both the appropriate meeting room data
structure and the unique booking code data structure. The client’s name and cost of the booking should be stored in the
appropriate data structures set up in Task 1.
Bookings of more than one day must be entered as separate single day bookings.
MP1 input a piece of normal test data that should be accepted // use Large, Small1 or Small2 to check that these data
are accepted // use a menu and check the input matches the available options
MP2 Input a piece of erroneous test data that should be rejected // entry of anything that is not Large, Small1 or Small2
should be rejected // anything not on the menu should be rejected
Explanation Task 2
MP1 introduce a (new) variable/array for the number of days for the booking // introduce a (new) variable/array for the
number of days for booking the same room // identify the number of days the same room has been booked by the
same client
MP2 use a conditional/IF statement to check if the length of the booking is 2 to 6 inclusive / 2, 3, 4, 5, or 6 //Use a
CASE statement
MP3 … if it is, get the daily rate for the room booking
MP4 … multiply the number of days for the booking by the room rate
MP5 … multiply the total cost of the booking by 70%/.7// reduce the total cost by 30%
Explanation Task 2
MP1 output all relevant input data using suitable variables for client name, meeting room choice, the booking day and
the booking cost
MP2 attempt to provide appropriate messages to accompany given output
MP3 input with messages to confirm booking
MP4 conditional statement or WHILE to check for a positive confirmation input
MP5 attempt at generation of booking code
MP6 fully unique booking code generated
MP7 identification of meeting room using CASE or IF statements
MP8 storage of booking code in both meeting room and booking code arrays/lists
MP9 storage of client name and booking cost in appropriate arrays/lists
Assume the booking is for a single day and the requested booking day is available.
Example answer
//Assume variables representing the current index position for the client //related
arrays, ClientIndex, and index for date related arrays, //DateIndex, have been used
OUTPUT "Your name is ", ClientName, Meeting Room ", MeetingRoom,
" starting on ", StartDay, " cost of booking ", BookingCost
OUTPUT "Is this correct (Y or N)"
INPUT Confirm
IF Confirm = "Y"
THEN
BookingCode BookingCode + 1
CASE OF MeetingRoom
'Lg': MeetingLarge[DayIndex] BookingCode
'S1': MeetingSmall1[DayIndex] BookingCode
'S2': MeetingSmall2[DayIndex] BookingCode
1(d) ENDCASE
BookingCode[ClientIndex] BookingCode
ClientName[ClientIndex] ClientName
BookingCost[ClientIndex] BookingCost
//No ELSE clause is specified in the task or the question
//so, ignore it if one is given
ENDIF
MP1 select the room whose records are to be searched // input the room whose records are to be searched
MP2 use a suitable loop (to search through the array that stores the bookings data for that room)
MP3 use an IF statement/conditional statement to check if the current array element has a booking
MP4 … if not, use the array index to output the day represented
MP5 check each element in the array until all array elements have been checked
Section B
variables are used to represent values that can change during the execution of a program // variables can be used to
store the results of calculations / counting / totalling // can store values entered by the user
variable example – any data that is input into a program such as a date
constants represent values that must stay the same throughout the execution of a program
constant example – any value that does not change, such as Pi in mathematical formulae
Store
In Logic Test Number Count Limit Out OUTPUT
[Count]
0 5
1 TRUE 2 9
3
FALSE
2 TRUE 2 5
3 5 1
3 TRUE 2 8
FALSE
4 TRUE 2 10
FALSE
5 TRUE 2 7
3 7 2 0 5
1 7
OR
Total 0
Counter 0
INPUT Number
Counter Counter + 1
No IS Counter =
100?
Yes
Average Total / Counter
OUTPUT Total
OUTPUT Average
END
6(a) Larger 1
Sort: Ascending
Show:
or:
Published
This mark scheme is published as an aid to teachers and candidates, to indicate the requirements of the
examination. It shows the basis on which Examiners were instructed to award marks. It does not indicate the
details of the discussions that took place at an Examiners’ meeting before marking began, which would have
considered the acceptability of alternative answers.
Mark schemes should be read in conjunction with the question paper and the Principal Examiner Report for
Teachers.
Cambridge International will not enter into discussions about these mark schemes.
Cambridge International is publishing the mark schemes for the October/November 2022 series for most
Cambridge IGCSE™, Cambridge International A and AS Level components and some Cambridge O Level
components.
These general marking principles must be applied by all examiners when marking candidate answers. They should be applied alongside the
specific content of the mark scheme or generic level descriptors for a question. Each question paper and mark scheme will also comply with these
marking principles.
• the specific content of the mark scheme or the generic level descriptors for the question
• the specific skills defined in the mark scheme or in the generic level descriptors for the question
• the standard of response required by a candidate as exemplified by the standardisation scripts.
Marks awarded are always whole marks (not half marks, or other fractions).
• marks are awarded for correct/valid answers, as defined in the mark scheme. However, credit is given for valid answers which go beyond the
scope of the syllabus and mark scheme, referring to your Team Leader as appropriate
• marks are awarded when candidates clearly demonstrate what they know and can do
• marks are not deducted for errors
• marks are not deducted for omissions
• answers should only be judged on the quality of spelling, punctuation and grammar when these features are specifically assessed by the
question as indicated by the mark scheme. The meaning, however, should be unambiguous.
Rules must be applied consistently, e.g. in situations where candidates have not followed instructions or in the application of generic level
descriptors.
Marks should be awarded using the full range of marks defined in the mark scheme for the question (however; the use of the full mark range may
be limited according to the quality of the candidate responses seen).
Marks awarded are based solely on the requirements as defined in the mark scheme. Marks should not be awarded with grade thresholds or
grade descriptors in mind.
The words in bold in the mark scheme are important text that needs to be present, or some notion of it needs to be present. It does not have to
be the exact word, but something close to the meaning.
A single forward slash means this is an alternative word. A double forward slash means that this is an alternative mark point.
Ellipsis (…) on the end of one-mark point and the start of the next means that the candidate cannot get the second mark point without being
awarded the first one. If a mark point has an ellipsis at the beginning, but there is no ellipsis on the mark point before it, then this is just a follow-on
sentence and can be awarded without the previous mark point.
Section A
1(a)(i) Many correct answers, the names used must be meaningful. The names given are examples only. 5
MP1 name one e.g. Name, Age, Gender, Type, TeamMember, AnnualFee, Paid
MP2 one appropriate data type must match name e.g. string, integer, char, string, Boolean, real, Boolean
MP3 sample data for one appropriate array
MP4 all arrays mentioned have appropriate names
MP5 all arrays mentioned have appropriate data types
MP6 sample data for all arrays e.g. Sue, 9, F, Junior, True, 9.00, False
Example
FOR Member 1 TO Total
CASE Age[Member] OF
18 : Type[Member] "Adult"
50 : Type[Member] "Senior"
80 : Type[Member] "Golden"
ENDCASE
IF Team[Member]
THEN
CASE Type[Member] OF
"Junior" : Fee[Member] JuniorFee * 0.9
"Adult" : Fee[Member] AdultFee * 0.9
"Senior" : Fee[Member] SeniorFee * 0.9
ENDCASE
ELSE
CASE Type[Member] OF
"Junior" : Fee[Member] JuniorFee
"Adult" : Fee[Member] AdultFee
"Senior" : Fee[Member] SeniorFee
"Golden" : Fee[Member] GoldenFee
ENDCASE
ENDIF
NEXT Member
© UCLES 2022 Page 5 of 9
0478/21 Cambridge IGCSE – Mark Scheme October/November 2022
PUBLISHED
Question Answer Marks
1(d) Explanation 5
MP1 how the program checked all the members // use of loop
MP2 how the program identified a member who has not paid their (annual) fee // use of condition
MP3 how the program kept a running total of members who have not paid their (annual) fees
MP4 for each of the three types of membership that require a fee // excluding golden members
MP5 how the program calculated a percentage for members who had not paid…
MP6 for each of the three types of membership that require a fee
MP7 how the program displayed a percentage for members who had not paid
MP8 all three percentages displayed with suitable messages
Section B
• Line 1 100
• Line 7 Value > 100 // Value >= 101
• Line 11 Reading[Value] + 1
• Line 14 INPUT Value
• Line 18 Reading[Count]
• Line 19 Count – 1
IF Reading[Count] <> 0
THEN
OUTPUT
ENDIF
3(a) Two marks per check, description must match name of check if given, max six 6
50 0
24 26 24
64 36
6 58 42
30 28 72
66 84
18 48 102
-1 102
• ItemCode
• uniquely identifies each item
Sort:
Show:
Criteria: <10
or:
Published
This mark scheme is published as an aid to teachers and candidates, to indicate the requirements of the
examination. It shows the basis on which Examiners were instructed to award marks. It does not indicate the
details of the discussions that took place at an Examiners’ meeting before marking began, which would have
considered the acceptability of alternative answers.
Mark schemes should be read in conjunction with the question paper and the Principal Examiner Report for
Teachers.
Cambridge International will not enter into discussions about these mark schemes.
Cambridge International is publishing the mark schemes for the October/November 2022 series for most
Cambridge IGCSE™, Cambridge International A and AS Level components and some Cambridge O Level
components.
These general marking principles must be applied by all examiners when marking candidate answers. They should be applied alongside the
specific content of the mark scheme or generic level descriptors for a question. Each question paper and mark scheme will also comply with these
marking principles.
• the specific content of the mark scheme or the generic level descriptors for the question
• the specific skills defined in the mark scheme or in the generic level descriptors for the question
• the standard of response required by a candidate as exemplified by the standardisation scripts.
Marks awarded are always whole marks (not half marks, or other fractions).
• marks are awarded for correct/valid answers, as defined in the mark scheme. However, credit is given for valid answers which go beyond the
scope of the syllabus and mark scheme, referring to your Team Leader as appropriate
• marks are awarded when candidates clearly demonstrate what they know and can do
• marks are not deducted for errors
• marks are not deducted for omissions
• answers should only be judged on the quality of spelling, punctuation and grammar when these features are specifically assessed by the
question as indicated by the mark scheme. The meaning, however, should be unambiguous.
Rules must be applied consistently, e.g. in situations where candidates have not followed instructions or in the application of generic level
descriptors.
Marks should be awarded using the full range of marks defined in the mark scheme for the question (however; the use of the full mark range may
be limited according to the quality of the candidate responses seen).
Marks awarded are based solely on the requirements as defined in the mark scheme. Marks should not be awarded with grade thresholds or
grade descriptors in mind.
The words in bold in the mark scheme are important text that needs to be present, or some notion of it needs to be present. It does not have to
be the exact word, but something close to the meaning.
A single forward slash means this is an alternative word. A double forward slash means that this is an alternative mark point.
Ellipsis (…) on the end of one-mark point and the start of the next means that the candidate cannot get the second mark point without being
awarded the first one. If a mark point has an ellipsis at the beginning, but there is no ellipsis on the mark point before it, then this is just a follow-on
sentence and can be awarded without the previous mark point.
Section A
1(a)(i) Many correct answers, the name used must be meaningful. The name given is an example only. 2
One mark per mark point, max two
• Constant NumberDays …
• Value … 14
At the end of the two-week period, allow all of the data to be deleted ready for the next two-week period.
1(a)(ii) Many correct answers, the name used must be meaningful. The name given is an example only. 2
• Array LicenceNumbers …
• Use … storing the licence numbers of the cars to be parked
One mark
MP6 appropriate line of code / construct to answer the question
Example code
INPUT Day
WHILE Day < 1 OR Day > 14 DO
OUTPUT "You must enter a number between 1 and 14 inclusive"
INPUT Day
ENDWHILE
//Assume LicenceNumber array has been initialised with the null string
OUTPUT "Enter the number of the day in which you require parking "
INPUT Day
OUTPUT "Do you require an accessible space? (Y or N)"
INPUT Accessible
IF Accessible = "Y"
THEN
SpaceAllocated FALSE
Space (Day - 1) * 20
REPEAT
IF LicenceNumbers[Space] = ""
THEN
OUTPUT "Enter your car licence number "
INPUT LicenceNumbers[Space]
SpaceAllocated TRUE
ENDIF
Space Space + 1
UNTIL SpaceAllocated OR Space = (Day - 1) * 20 + 20
IF NOT SpaceAllocated
THEN
OUTPUT "No space available"
ELSE
OUTPUT "You are allocated space: ", Space – (Day – 1) * 20
ENDIF
ENDIF
Section B
totalling
a set of statements to be executed in order
MP1 verification is used to make sure the items in stock do not change from the original when they are input //
verification is used to make sure the items in stock do not change from what was intended to be input //
verification is used to make sure the items are accurately copied
MP2 enter each item in stock twice / double entry // visual check
MP3 matching description of the type of check stated in MP2
Example answers
Double entry [1] enter data twice and only accept identical values [1]
Visual check [1] look at the data that has been entered and confirm it matches [1]
Example answers
Normal data (1) data that would be accepted by the program (1)
Boundary / extreme data (1) data that is on the acceptable limits (1)
Corrected algorithm
01 HighList 0
02 MidList 0
03 LowList 0
04 MarksEntry 0
05 REPEAT
06 INPUT Mark
07 IF Mark >= 80
08 THEN
09 Higher[HighList] Mark
10 HighList HighList + 1
11 ELSE
12 IF Mark >= 50
13 THEN
14 Middle[MidList] Mark
15 MidList MidList + 1
5(a) 16 ELSE
17 Lower[LowList] Mark
18 LowList LowList + 1
19 ENDIF
20 ENDIF
21 MarksEntry MarksEntry + 1
22 UNTIL MarksEntry = 500
23 OUTPUT "You entered ", HighList, " higher marks"
24 OUTPUT "You entered ", MidList, " middle marks"
25 OUTPUT "You entered ", LowList, " lower marks"
Example answers
Terminal condition
OUTPUT "Enter -1 to end the program"
should be placed before the loop and / or before the input in 06
IF MARK <> -1 THEN
should be placed between lines 06 and 07
The MarksEntry counter can be removed // Lines 4 and 21 are not required / can be removed
UNTIL Mark = -1 should be placed at line 22
1 97
3 4320
5 9875
6 42
7(a)(ii) The Boolean data type can only have one of two values // the Candidates field has more than two possible values. 1
Expected answer
Geography 200
Geology 80
History 250
Mathematics 350
Sort: Descending
Show:
Criteria: <150
or:
Published
This mark scheme is published as an aid to teachers and candidates, to indicate the requirements of the
examination. It shows the basis on which Examiners were instructed to award marks. It does not indicate the
details of the discussions that took place at an Examiners’ meeting before marking began, which would have
considered the acceptability of alternative answers.
Mark schemes should be read in conjunction with the question paper and the Principal Examiner Report for
Teachers.
Cambridge International will not enter into discussions about these mark schemes.
Cambridge International is publishing the mark schemes for the October/November 2022 series for most
Cambridge IGCSE™, Cambridge International A and AS Level components and some Cambridge O Level
components.
These general marking principles must be applied by all examiners when marking candidate answers. They should be applied alongside the
specific content of the mark scheme or generic level descriptors for a question. Each question paper and mark scheme will also comply with these
marking principles.
• the specific content of the mark scheme or the generic level descriptors for the question
• the specific skills defined in the mark scheme or in the generic level descriptors for the question
• the standard of response required by a candidate as exemplified by the standardisation scripts.
Marks awarded are always whole marks (not half marks, or other fractions).
• marks are awarded for correct/valid answers, as defined in the mark scheme. However, credit is given for valid answers which go beyond the
scope of the syllabus and mark scheme, referring to your Team Leader as appropriate
• marks are awarded when candidates clearly demonstrate what they know and can do
• marks are not deducted for errors
• marks are not deducted for omissions
• answers should only be judged on the quality of spelling, punctuation and grammar when these features are specifically assessed by the
question as indicated by the mark scheme. The meaning, however, should be unambiguous.
Rules must be applied consistently, e.g. in situations where candidates have not followed instructions or in the application of generic level
descriptors.
Marks should be awarded using the full range of marks defined in the mark scheme for the question (however; the use of the full mark range may
be limited according to the quality of the candidate responses seen).
Marks awarded are based solely on the requirements as defined in the mark scheme. Marks should not be awarded with grade thresholds or
grade descriptors in mind.
The words in bold in the mark scheme are important text that needs to be present, or some notion of it needs to be present. It does not have to
be the exact word, but something close to the meaning.
A single forward slash means this is an alternative word. A double forward slash means that this is an alternative mark point.
Ellipsis (…) on the end of one-mark point and the start of the next means that the candidate cannot get the second mark point without being
awarded the first one. If a mark point has an ellipsis at the beginning, but there is no ellipsis on the mark point before it, then this is just a follow-on
sentence and can be awarded without the previous mark point.
Section A
1(a)(i) Many correct answers, the name used must be meaningful. The name given is an example only. 3
1(a)(ii) Description 3
Many correct answers, the name used must be meaningful. The name is an example only.
Sample
Total 10.00
ExtraWindowsCost INT((NumberExtraWindows[Bill] –1) / 5) * 5.00
Total Total + ExtraWindowsCost
CASE NumberOfFloors[Bill] OF // check number of floors
2 : Total Total * 1.1
3 : Total Total * 1.15
ENDCASE
IF Inside[Bill] // check for cleaning inside windows
THEN
Total Total * 1.25
ENDIF
IF Polish[Bill] // check for polishing windows
THEN
Total Total * 1.05
ENDIF
IF Solar[Bill] // check for cleaning solar panels
THEN
Total Total + 20.00
ENDIF
1(d) Explanation 5
MP1 how the program counted the number of customers using a service
MP1 … how the program counted this for all services
MP2 … excluding basic windows and additional windows
MP3 how the program identified the service with the largest number of customers
MP4 how the program identified the service with the smallest number of customers
MP5 how the program calculated a percentage of the total number of bills stored…
MP6 … for largest and smallest
MP7 how the program displayed these percentages with suitable messages
Section B
2(a) One mark per mark point in the correct position, max six 6
• line 01 50
• line 08 Value > 50
• line 12 Reading[Value] + 1
• line 18 INPUT Value
• line 23 Reading[Count]
• line 24 Count + 1
2(b) One mark per place in code and action, max three 3
• line 21 set up FOR loop stating at 50 and finishing at 35 / FOR Count 50 TO 35 STEP –1
• Remove lines 22 and 24
• line 25 End FOR loop / NEXT Count
Examples
21 Count 50
22 REPEAT
23 OUTPUT "There are ", Reading[Count], " readings, " of ", Count
24 Count Count –1
25 UNTIL Count = 34
3(a)(i) • 1 1
3(a)(ii) One mark for each correct letter seen, max two 2
• C
• D
• length check
• type check
• presence check
• format check
10 0
9 1 Y
8 2 Y
7 3 Y
6 4 Y
5 5 Y
4 6 Y
14
• ItemCode
• uniquely identifies each item
Sort:
Show:
Criteria: N
or: