Cambridge IGCSE Computer Science (9-1) 0984 — 2025 May/June Paper 2 · Variant 1
0984/21/M/J/25 · 75 marks · ≈84 min
The question paper and its mark scheme, free to read here and free to download. This is Cambridge’s own paper, exactly as it was sat.
Question paper16 pages
















Mark scheme19 pages
Answers below. Sit the paper first if you are practising.



















Paper as text
Question paper, page 1
This document has 16 pages. Any blank pages are indicated. [Turn over Cambridge IGCSE™(9–1) COMPUTER SCIENCE 0984/21 Paper 2 Algorithms, Programming and Logic May/June 2025 1 hour 45 minutes You must answer on the question paper. No additional materials are needed. INSTRUCTIONS ● Answer all questions. ● Use a black or dark blue pen. You may use an HB pencil for any diagrams or graphs. ● Write your name, centre number and candidate number in the boxes at the top of the page. ● Write your answer to each question in the space provided. ● Do not use an erasable pen or correction fluid. ● Do not write on any bar codes. ● Calculators must not be used in this paper. INFORMATION ● The total mark for this paper is 75. ● The number of marks for each question or part question is shown in brackets [ ]. ● No marks will be awarded for using brand names of software packages or hardware. * 6 1 2 2 0 2 6 9 2 7 * DC (WW) 353318 © UCLES 2025 , , * 0000800000001 * ¬O. 4mHuOªE_{5W ¬kqY¥~amw]« ¥5UE5u e Ue5eU
Question paper, page 2
2 0984/21/M/J/25 © UCLES 2025 1 Tick (ü) one box to identify the type of test to only check for the largest or smallest acceptable value. A normal test data B abnormal test data C extreme test data D boundary test data [1] 2 Four requirements for validating inputs and five types of validation check are given. (a) Draw one line from each requirement to the most appropriate validation check. Not all validation checks will be used. Requirement Validation check Date of birth must be between 01/01/1900 and 01/01/2010. length check format check range check check digit presence check Name has been entered. Password has exactly 12 characters. Student ID must contain 2 letters followed by a 4-digit number. [4] (b) Identify and describe one verification check that could be applied when a new password is input into a system. Verification check … Description … … … … [3] * 0000800000002 * , , ĬÍĊ®Ġ´íÈõÏĪÅĊÞù·þ× ĬĞéòÜġćĬÚøċù¿òčÓčĂ ĥÅąĕõµąÕÅÅõÅąĕÅõąÕ DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN
Question paper, page 3
3 0984/21/M/J/25 © UCLES 2025 [Turn over 3 The following pseudocode algorithm uses a count-controlled loop to read in 10 names and store them in the array Names[] FOR Count 1 TO 10 OUTPUT "Please enter a name" INPUT Name Names[Count] Name NEXT Count Rewrite the algorithm in pseudocode, using a condition-controlled loop instead of a count-controlled loop. … … … … … … … … … [4] * 0000800000003 * , , ĬÏĊ®Ġ´íÈõÏĪÅĊÞû·þ× ĬĞêñÔħċĜßĂö°ěĊÉÓĝĂ ĥÅõÕµÕĥµÕµåÅąõåµĕÕ DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN
Question paper, page 4
4 0984/21/M/J/25 © UCLES 2025 4 A telephone number with 13 characters is input. The first character is a ‘+’, followed by a 2-digit country code, for example: +20xxxxxxxxxx where 20 is the country code and x is a digit between 0 and 9 inclusive. The algorithm includes checks for the country codes: 44 for the UK and 20 for Egypt. (a) Write an algorithm using pseudocode to: • input the telephone number • extract the 2-digit country code • output the matching country • output ‘Unknown’ if there is no matching country. … … … … … … … … … … … … … … … … … … … [5] * 0000800000004 * , , ĬÍĊ®Ġ´íÈõÏĪÅĊàù·Ā× ĬĞêôÔĝùčÜĀí·¹æīÃĕĂ ĥõåÕõÕĥĕµĕÕÅÅõąµąÕ DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN
Question paper, page 5
5 0984/21/M/J/25 © UCLES 2025 [Turn over (b) Explain how you could change the algorithm to repeatedly prompt for the telephone number until the number entered is 13 characters in length. Any code used must be fully explained. … … … … … … … [3] 5 Two library routines used in programming are MOD and DIV. State the purpose of each of the library routines. Give one example pseudocode statement for each of the library routines. MOD purpose … … Example pseudocode … … DIV purpose … … Example pseudocode … … [4] * 0000800000005 * , , ĬÏĊ®Ġ´íÈõÏĪÅĊàû·Ā× ĬĞéóÜīõĝÝúĄòĝίÃĥĂ ĥõÕĕµµąõåĥąÅÅĕĥõĕÕ DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN
Question paper, page 6
6 0984/21/M/J/25 © UCLES 2025 6 An algorithm has been written in pseudocode to generate a random integer between 1 and 100 inclusive and store the value in N. The user enters a guess for the number and the algorithm indicates whether the guess is higher or lower than the random number. The algorithm outputs the number of guesses when the user has correctly guessed the random number. 01 Counter 0 02 N ROUND(RANDOM() * 99, 1) + 1 03 REPEAT 04 OUTPUT "Please enter a guess" 05 INPUT G 06 IF G > N 07 THEN 08 OUTPUT "The number is lower than your guess" 09 ELSE 10 IF G < N 11 THEN 12 OUTPUT "The number is lower than your guess" 13 ENDIF 14 Counter Counter + 1 15 ENDIF 16 UNTIL G = N 17 OUTPUT "Well done, you took ", Guess, " attempts" (a) Identify the line numbers of the four errors in the pseudocode and suggest a correction for each error. Error 1 line number … Correction … … Error 2 line number … Correction … … Error 3 line number … Correction … … Error 4 line number … Correction … … [4] (b) Identify one method to make the algorithm maintainable. Give an example. … … … … [2] * 0000800000006 * , , ĬÑĊ®Ġ´íÈõÏĪÅĊÝû¶þ× ĬĞêó×ġčħåíñċýæÎīĕĂ ĥåõĕµĕąÕĥąåÅąĕŵÅÕ DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN
Question paper, page 7
7 0984/21/M/J/25 © UCLES 2025 [Turn over 7 Consider the logic expression: X = (A AND B) XOR (B OR NOT C) (a) Draw a logic circuit for this logic expression. Each logic gate must have a maximum of two inputs. Do not simplify the logic expression. A B X C [4] (b) Complete the truth table for the given logic expression. A B C Working space X 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 [4] * 0000800000007 * , , ĬÓĊ®Ġ´íÈõÏĪÅĊÝù¶þ× ĬĞéôÏħđėÔċ¾ÙÎĊīĥĂ ĥåąÕõõĥµõõõÅąõåõÕÕ DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN
Question paper, page 8
8 0984/21/M/J/25 © UCLES 2025 8 A bus company has set up a new database table called BUS to store details of the buses leaving the main bus terminal. RouteID Destination Stops Driver Time Return BC01 Town Centre 10 B Smith 9:00 Yes BC02 The Fountain 5 A Patel 9:10 Yes BC03 The Palace 9 B Hayes 9:28 No BC04 City Park 12 W Gao 9:55 Yes BC05 City Mall 9 R Hussein 10:10 No BC06 Swan Lake 14 S Clarke 10:33 No BC07 Guildhall Square 7 J Page 11:34 No BC08 Sunset Quay 6 A Patel 12:01 Yes BC10 Fort Worthington 15 E Carr 12:01 Yes BC12 The Observatory 18 B Smith 13:27 No BC14 East Seaport 11 B Scott 14:07 No BC15 The Football Ground 12 J Page 14:46 Yes BC19 The Cricket Ground 11 B Hayes 15:14 No BC23 Temple Ruins 14 W Gao 16:16 No BC27 The University 9 A Patel 16:45 No (a) (i) Identify one appropriate data type for the field Return … [1] (ii) State the reason for the data type chosen. … … [1] (b) Write the output from the structured query language (SQL) statement: SELECT RouteID, Destination, Time FROM BUS WHERE Driver = "A Patel"; … … … … … [2] * 0000800000008 * , , ĬÑĊ®Ġ´íÈõÏĪÅĊßû¶Ā× ĬĞéñÏĝģĒçąćÅûòìûčĂ ĥĕÕÕµõĥĕĕÕąÅÅõąõÅÕ DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN
Question paper, page 9
9 0984/21/M/J/25 © UCLES 2025 [Turn over (c) Complete the SQL statement to display only the destination of the buses that have a return. SELECT … … … … [3] 9 The variables A and B are used in a program. A holds a whole number and B holds text. (a) Write pseudocode statements to declare the variables A and B … … … [2] (b) The function Odds(X) returns ‘Odd’ if the value of X is an odd number and returns ‘Even’ if the value of X is an even number. Write pseudocode statements to: • define the function • call the function using parameter A and store the return item in variable B Function definition … … … … … … … … … … … Function call … … [6] * 0000800000009 * , , ĬÓĊ®Ġ´íÈõÏĪÅĊßù¶Ā× ĬĞêò×īğĢÒóúĄßĊðûĝĂ ĥĕåĕõĕąõąåÕÅÅĕĥµÕÕ DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN
Question paper, page 10
10 0984/21/M/J/25 © UCLES 2025 10 The flowchart represents an algorithm to calculate grades. START STOP INPUT Score IS Score >= 40 ? IS Score >= 60 ? IS Score >= 80 ? OUTPUT "You achieved a ", Grade Grade "D" Grade "C" Grade "B" Grade "A" Yes No No No Yes Yes * 0000800000010 * , , ĬÑĊ®Ġ´íÈõÏĪÅĊÞû¸þ× ĬĞìñÖğīĈéþĀğėôÀÃĥĂ ĥŵĕµõÅĕµĥąąÅÕąõõÕ DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN
Question paper, page 11
11 0984/21/M/J/25 © UCLES 2025 [Turn over (a) Complete the trace table for the algorithm, using the input data: 21, 46, 63, 91, 12 Score Grade OUTPUT [3] (b) Explain how the flowchart can be changed to produce the correct output. … … … … … … … … [4] * 0000800000011 * , , ĬÓĊ®Ġ´íÈõÏĪÅĊÞù¸þ× ĬĞëòÎĩħøÐüñêÃČĜÃĕĂ ĥÅÅÕõĕåõåĕÕąÅµĥµĥÕ DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN
Question paper, page 12
12 0984/21/M/J/25 © UCLES 2025 11 The one-dimensional (1D) array CompetitorName[] contains the names of 25 competitors in a tournament that includes five events. Another two-dimensional (2D) array CompetitorScore[] contains the points scored by each competitor in the five events. The first dimension of this array contains the index of the competitor from CompetitorName[] and the second dimension contains their scores. Each competitor receives a score out of 100 for each event. These scores are manually entered into CompetitorScore[] Medals are awarded to the competitor or the competitors who have: • the highest points scored in each of the five events • the highest total points scored for all five events. The one-dimensional (1D) array Points[] stores the total number of points scored for each competitor. Write a program that meets the following requirements: • takes as input, valid scores (between 0 and 100), for each competitor in each of the five events • calculates the highest points scored for each event • outputs the names of the competitors who receive a medal for the highest points scored • calculates the highest total points scored for the five events • outputs the names of the competitors with the highest total points scored for the five events. You must use pseudocode or program code and add comments to explain how your code works. You do not need to declare any arrays or variables. All inputs and outputs must contain suitable messages. … … … … … … … … … … … … * 0000800000012 * , , ĬÑĊ®Ġ´íÈõÏĪÅĊàû¸Ā× ĬĞëóÎģĕñëöúáġèºÓĝĂ ĥõĕÕµĕåÕÅµåąąµÅµõÕ DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN
Question paper, page 13
13 0984/21/M/J/25 © UCLES 2025 [Turn over … … … … … … … … … … … … … … … … … … … … … … … … … … … … * 0000800000013 * , , ĬÓĊ®Ġ´íÈõÏĪÅĊàù¸Ā× ĬĞìôÖĥęāÎĄćĨµÐĞÓčĂ ĥõĥĕõõŵÕÅõąąÕåõĥÕ DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN
Question paper, page 14
14 0984/21/M/J/25 © UCLES 2025 … … … … … … … … … … … … … … … … … … … … … … … … … … … … [15] * 0000800000014 * , , ĬÍĊ®Ġ´íÈõÏĪÅĊßúµĂ× ĬĞëò×īĦùàĆĄËęąĪģĕĂ ĥÕĥÕµĕąĕµÕõÅÅĕąµµÕ DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN
Question paper, page 15
15 0984/21/M/J/25 © UCLES 2025 BLANK PAGE * 0000800000015 * , , ĬÏĊ®Ġ´íÈõÏĪÅĊßüµĂ× ĬĞìñÏĝĪĉÙôíþ½í®ģĥĂ ĥÕĕĕõõĥõåååÅÅõĥõåÕ DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN
Question paper, page 16
16 0984/21/M/J/25 © UCLES 2025 Permission to reproduce items where third-party owned material protected by copyright is included has been sought and cleared where possible. Every reasonable effort has been made by the publisher (UCLES) to trace copyright holders, but if any items requiring clearance have unwittingly been included, the publisher will be pleased to make amends at the earliest possible opportunity. To avoid the issue of disclosure of answer-related information to candidates, all copyright acknowledgements are reproduced online in the Cambridge Assessment International Education Copyright Acknowledgements Booklet. This is produced for each series of examinations and is freely available to download at www.cambridgeinternational.org after the live examination series. Cambridge Assessment International Education is part of Cambridge Assessment. Cambridge Assessment is the brand name of the University of Cambridge Local Examinations Syndicate (UCLES), which is a department of the University of Cambridge. BLANK PAGE * 0000800000016 * , , ĬÍĊ®Ġ´íÈõÏĪÅĊÝúµĄ× ĬĞìôÏħĜĀÞîöąğÑĐóčĂ ĥĥÅĕµõĥÕÅąÕÅąõÅõµÕ DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN DO NOT WRITE IN THIS MARGIN
Mark scheme, page 1
This document consists of 19 printed pages. © Cambridge University Press & Assessment 2025 [Turn over Cambridge IGCSE™ (9–1) COMPUTER SCIENCE 0984/21 Paper 2 Algorithms, Programming and Logic May/June 2025 MARK SCHEME Maximum Mark: 75 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 2025 series for most Cambridge IGCSE, Cambridge International A and AS Level components, and some Cambridge O Level components.
Mark scheme, page 2
0984/21 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED May/June 2025 © Cambridge University Press & Assessment 2025 Page 2 of 19 Generic Marking Principles 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. GENERIC MARKING PRINCIPLE 1: Marks must be awarded in line with: • 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. GENERIC MARKING PRINCIPLE 2: Marks awarded are always whole marks (not half marks, or other fractions). GENERIC MARKING PRINCIPLE 3: Marks must be awarded positively: • 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. GENERIC MARKING PRINCIPLE 4: Rules must be applied consistently, e.g. in situations where candidates have not followed instructions or in the application of generic level descriptors.
Mark scheme, page 3
0984/21 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED May/June 2025 © Cambridge University Press & Assessment 2025 Page 3 of 19 GENERIC MARKING PRINCIPLE 5: 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). GENERIC MARKING PRINCIPLE 6: 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.
Mark scheme, page 4
0984/21 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED May/June 2025 © Cambridge University Press & Assessment 2025 Page 4 of 19 Annotations guidance for centres 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 Benefit of doubt given Content of response too vague Not answered question Omission Section not relevant
Mark scheme, page 5
0984/21 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED May/June 2025 © Cambridge University Press & Assessment 2025 Page 5 of 19 Annotation Meaning Section incorrect Highlighter Highlights part of the answer or shows structure of complex answers Page or response seen by examiner AO2 mark AO3 mark Not enough Required item one Required item two Required item three Correct awarding one mark Correct awarding two marks Correct awarding three marks Correct awarding four marks Correct awarding five marks Correct awarding six marks Correct awarding seven marks Correct awarding eight marks Correct awarding nine marks
Mark scheme, page 6
0984/21 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED May/June 2025 © Cambridge University Press & Assessment 2025 Page 6 of 19 Mark scheme abbreviations / separates alternative words / phrases within a marking point // separates alternative answers within a marking point underline actual word given must be used by candidate (grammatical variants accepted) max indicates the maximum number of marks that can be awarded ( ) the word / phrase in brackets is not required, but sets the context Note: No marks are awarded for using brand names of software packages or hardware.
Mark scheme, page 7
0984/21 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED May/June 2025 © Cambridge University Press & Assessment 2025 Page 7 of 19 Question Answer Marks 1 C 1 Question Answer Marks 2(a) One mark for each correct line. Requirement Validation Check 4 2(b) One mark for check, two marks for description. • Visual check [1] … • …look at the data that has been entered [1] and confirm it matches [1] • Double entry check [1] … • …enter data twice [1] and only accept identical values [1] 3 Date of birth must be between 01/01/1900 and 01/01/2010. Name has been entered. Password has exactly 12 characters. Student ID must contain 2 letters followed by 4-digit number. length check format check range check check digit presence check
Mark scheme, page 8
0984/21 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED May/June 2025 © Cambridge University Press & Assessment 2025 Page 8 of 19 Question Answer Marks 3 One mark per bullet point • Initialising a count variable outside of loop • Correct use of loop with condition for 10 times (WHILE (DO)...ENDWHILE, REPEAT...UNTIL) with close • Incrementing the count variable inside the loop • Rest of algorithm correct 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 4
Mark scheme, page 9
0984/21 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED May/June 2025 © Cambridge University Press & Assessment 2025 Page 9 of 19 Question Answer Marks 4(a) One mark per bullet point. Max 5 • Correct input of number • Use of substring ( ) • …to extract the correct number • Correct use of IF statements/Case statement with matching END IF / END CASE • Output of matching locations • Output of unknown Example OUTPUT "Please enter a telephone number " INPUT Telephone Value ← SUBSTRING(Telephone, 2, 2) IF Value = "44" THEN OUTPUT "UK" ELSE IF Value = "20" THEN OUTPUT "Egypt" ELSE OUTPUT "Unknown" ENDIF ENDIF 5 4(b) One mark per bullet point. Max 3 • Find length of input. • Use a suitable loop (repeat/while). • Using the correct condition • Prompt for a 13-digit telephone number and input number inside loop. 3
Mark scheme, page 10
0984/21 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED May/June 2025 © Cambridge University Press & Assessment 2025 Page 10 of 19 Question Answer Marks 5 One mark for each bullet point • MOD – returns the remainder of a division calculation. • Example: X ← MOD(10, 3) • DIV – Integer division/returns the quotient of a division. • Example: Y ← DIV(10, 3) 4 Question Answer Marks 6(a) One mark for each line identified and corrected. Line 02 – should be N ← ROUND(RANDOM() * 99, 0) + 1 Line 12 – should be OUTPUT "The number is higher than your guess" Line 14/15 - Counter ← Counter + 1 should be placed after Line 15/After ENDIF/before UNTIL G = N/before Line 16 Line 17 – should be OUTPUT "Well done, you took ", Counter, " attempts" 4 6(b) One mark for method, one mark for example – max 2. • Meaningful identifiers, N should be Number. • Comments, // loops until the guess equals the number • Procedures/functions, making the algorithm a procedure/function 2
Mark scheme, page 11
0984/21 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED May/June 2025 © Cambridge University Press & Assessment 2025 Page 11 of 19 Question Answer Marks 7(a) One mark for each correct gate, with the correct input(s) as shown. A B X C 4 7(b) 4 marks for 8 correct outputs 3 marks for 6/7 correct outputs 2 marks for 4/5 correct outputs 1 mark for 2/3 correct outputs 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 0 1 1 1 0 4
Mark scheme, page 12
0984/21 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED May/June 2025 © Cambridge University Press & Assessment 2025 Page 12 of 19 Question Answer Marks 8(a)(i) Boolean 1 8(a)(ii) There are only 2 responses / Only Yes and No / True and False 1 8(b) Two marks for all three correct One mark for one/two correct BC02 The Fountain 9:10 BC08 Sunset Quay 12:01 BC27 The University 16:45 2 8(c) One mark per correct statement SELECT Destination FROM BUS WHERE Return = Yes; 3
Mark scheme, page 13
0984/21 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED May/June 2025 © Cambridge University Press & Assessment 2025 Page 13 of 19 Question Answer Marks 9(a) One mark for each correct line DECLARE A: INTEGER DECLARE B: STRING 2 9(b) One mark for using FUNCTION and ENDFUNCTION and RETURNS STRING 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: FUNCTION Odds(X: INTEGER) RETURNS STRING IF MOD(X, 2) = 0 THEN RETURN "Even" ELSE RETURN "Odd" ENDIF ENDFUNCTION B ← Odds(A) 6
Mark scheme, page 14
0984/21 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED May/June 2025 © Cambridge University Press & Assessment 2025 Page 14 of 19 Question Answer Marks 10(a) One mark for each correct column Score Grade OUTPUT 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. 3 10(b) One mark per bullet point. Max four • Change the decision in the first decision box to IS Score >= 80 ? • Change the decision in the last decision box to IS Score >= 40 ? • Change process box from Grade "C" to Grade "A" • Change process box from Grade "A" to Grade "C" • Add output box instructing users to input score or input −1 before the input box // initialising a counter // incrementing counter. • Add decision box for loop with exit condition. • Correct arrows to show looping 4
Mark scheme, page 15
0984/21 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED May/June 2025 © Cambridge University Press & Assessment 2025 Page 15 of 19 Question Answer Marks 11 Marks are available for: • AO2 (maximum 9 marks) • AO3 (maximum 6 marks) 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) 15
Mark scheme, page 16
0984/21 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED May/June 2025 © Cambridge University Press & Assessment 2025 Page 16 of 19 Question Answer Marks 11 Example 15-mark answer in pseudocode. // 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. DECLARE Points : ARRAY [1 : 25] OF REAL DECLARE Highest : ARRAY [1 : 5] OF REAL Winner 0 Max 0 FOR Count 1 TO 25 //initialising array Points[Count] 0 NEXT Count FOR Count 1 TO 5 //initialising array Highest[Count] 0 NEXT Count 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 15
Mark scheme, page 17
0984/21 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED May/June 2025 © Cambridge University Press & Assessment 2025 Page 17 of 19 Question Answer Marks 11 Requirement 2 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 //points may be calculated here For X 1 TO 25 //calculates the highest points scored for the five events IF Points[X] > Max THEN Max Points[X] ENDIF NEXT X 15
Mark scheme, page 18
0984/21 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED May/June 2025 © Cambridge University Press & Assessment 2025 Page 18 of 19 Question Answer Marks 11 //outputs the names of the competitors with the highest score OUTPUT "The competitors with the highest score for the five events" For X 1 TO 25 IF Points[X] = Max THEN OUTPUT CompetitorName[X] ENDIF NEXT X Marking Instructions in italics 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 0 1–3 4–6 7–9 No creditable response. At least one programming technique has been used. Any use of selection, iteration, counting, totalling, input and output. Some programming techniques used are appropriate to the problem. More than one technique seen applied to the scenario, check the list of techniques needed. The range of programming techniques used is appropriate to the problem. All criteria stated for the scenario have been covered by the use of appropriate programming techniques, check the list of techniques needed. Some data has been stored but not appropriately. Any use of variables or arrays or other language dependent data structures e.g. Python lists. Some of the data structures chosen are appropriate and store some of the data required. More than one data structure used to store data required by the scenario. The data structures chosen are appropriate and store all the data required. The data structures used store all the data required by the scenario. 15
Mark scheme, page 19
0984/21 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED May/June 2025 © Cambridge University Press & Assessment 2025 Page 19 of 19 Question Answer Marks 11 Marking Instructions in italics AO3: Provide solutions to problems by: • evaluating computer systems • making reasoned judgements • presenting conclusions 0 1–2 3–4 5–6 No creditable response. Program seen without relevant comments. Program seen with some relevant comment(s). The program has been fully commented. Some identifier names used are appropriate. Some of the data structures used have meaningful names. The majority of identifiers used are appropriately named. Most of the data structures used have meaningful names. Suitable identifiers with names meaningful to their purpose have been used throughout. All the data structures used have meaningful names. The solution is illogical. The solution contains parts that may be illogical. The program is in a logical order. The solution is inaccurate in many places. Solution contains few lines of code with errors that attempt to perform a task given in the scenario. The solution contains parts that are inaccurate. Solution contains lines of code with some errors that logically perform tasks given in the scenario. Ignore minor syntax errors. The solution is accurate. Solution logically performs all the tasks given in the scenario. Ignore minor syntax errors. The solution attempts at least one of the requirements. Solution contains lines of code that attempt at least one task given in the scenario. The solution meets most of the requirements. Solution contains lines of code that perform most tasks given in the scenario. The solution meets all the requirements given in the question. Solution performs all the tasks given in the scenario. 15
What you needed in this session
Cambridge’s own grade thresholds for 2025 May/June, Paper 2 · Variant 1. A higher threshold means an easier paper — the bar moves with how the cohort did.