Cambridge IGCSE™: Computer Science 0478/23
Cambridge IGCSE™: Computer Science 0478/23
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.