Cambridge IGCSE Computer Science (9-1) 0984 — 2023 Oct/Nov Paper 2 · Variant 2
0984/22/O/N/23 · 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 scheme14 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) * 0 6 7 1 3 2 2 4 0 8 * COMPUTER SCIENCE 0984/22 Paper 2 Algorithms, Programming and Logic October/November 2023 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. DC (LK) 333544 © UCLES 2023
Question paper, page 2
2 0984/22/O/N/23 © UCLES 2023 1 Tick (✓) one box to complete the sentence. Verification is used to make sure that a value entered A has not changed during input. B is an integer. C is correct. D is not a string. [1] 2 A type of validation check is a length check. Another type of validation check is used to make sure that any date entered is in the dd/mm/yyyy style: dd means day, mm means month and yyyy means year. (a) State the type of validation check used. … [1] (b) Give one example of normal test data and one example of abnormal test data you should use to make sure the check in part (a) is working properly. State a reason for each of your choices of test data. Normal … Reason … … Abnormal … Reason … … [4] (c) Describe how a length check could be used with the date entered. … … … … [2]
Question paper, page 3
3 0984/22/O/N/23 © UCLES 2023 [Turn over 3 Four pseudocode statements and five pseudocode uses are shown. (a) Draw one line to link each pseudocode statement to the most appropriate pseudocode use. Not all pseudocode uses will be required. Pseudocode statement CALL Colour(NewColour) Value (A1 + A2 + A3) / 3 Loop1 Loop1 + 1 IF Count > 7 THEN X1 0 Pseudocode use counting finding an average totalling using a conditional statement using a procedure [4] (b) A one‑dimensional (1D) array called Temperatures[] has 25 elements beginning at index 1. It holds values that range between –20 and 100 inclusive. Write a pseudocode algorithm using a single loop to find the lowest value in this array and output the result only once. You do not need to declare or populate this array. … … … … … … … … … … … … [4]
Question paper, page 4
4 0984/22/O/N/23 © UCLES 2023 4 An algorithm has been written in pseudocode to allow the names of 50 cities and their countries to be entered and stored in a two‑dimensional (2D) array. The contents of the array are then output. 01 DECLARE City ARRAY[1:50, 1:2] OF BOOLEAN 02 DECLARE Count : INTEGER 03 DECLARE Out : INTEGER 04 Count 1 05 IF 06 OUTPUT "Enter the name of the city" 07 INPUT City[Count, 2] 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 1 13 OUTPUT "The city ", City[Out, 1], " is in ", City[Out, 2] 14 NEXT Out (a) Identify the four errors in the pseudocode and suggest corrections. Error 1 … Correction … … Error 2 … Correction … … Error 3 … Correction … … Error 4 … Correction … … [4]
Question paper, page 5
5 0984/22/O/N/23 © UCLES 2023 [Turn over (b) Describe the changes you should make to the corrected algorithm to allow the name of a country to be input and to display only the stored cities from that country. You do not need to rewrite the algorithm. … … … … … … … … … … … … [5] 5 Explain how variables and constants should be used when creating and running a program. … … … … … … [3]
Question paper, page 6
6 0984/22/O/N/23 © UCLES 2023 6 The flowchart represents an algorithm that performs a process on groups of values that are input. The algorithm will fail if the first value of any group is 0. An input of –1 will terminate the algorithm. START STOP Total 0 Count 0 INPUT Value IS Value = 0 ? IS Value = –1 ? No No Yes Yes Total Total + Value Count Count + 1 Average Total / Count OUTPUT "Total is ", Total OUTPUT "Average is ", Average
Question paper, page 7
7 0984/22/O/N/23 © UCLES 2023 [Turn over (a) Complete the trace table for the input data: 25, 35, 3, 0, 57, 20, 25, 18, 0, –1, 307, 40, 0 Value Average Total Count OUTPUT [5] (b) Describe the purpose of the algorithm. … … … … [2]
Question paper, page 8
8 0984/22/O/N/23 © UCLES 2023 7 The string operation SUBSTRING(Quote, Start, Number) returns a string from Quote beginning at position Start that is Number characters long. The first character in Quote is in position 1. Write pseudocode statements to: • store the string "Learning Never Exhausts The Mind" in Quote • extract and display the words "The Mind" from the string • output the original string in lower case. … … … … … … … … … … … … [5] 8 Explain why a programmer would use procedures and parameters when writing a program. … … … … … … … … [4]
Question paper, page 9
9 0984/22/O/N/23 © UCLES 2023 [Turn over 9 Consider the logic expression: Z = (A NAND B) OR NOT (B XOR C) (a) Draw a logic circuit for this logic expression. Each logic gate must have a maximum of two inputs. Do not simplify this logic expression. A B Z C [4] (b) Complete the truth table from the given logic expression. A B C Working space Z 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]
Question paper, page 10
10 0984/22/O/N/23 © UCLES 2023 10 A database table called Horses stores details about the horses kept at a horse sanctuary. Code Breed BreedOrigin Gender Age Arrived H002 Arabian Saudi Arabia M 5 28/09/2022 H004 Percheron France M 5 30/10/2022 H010 Friesian Netherlands M 6 15/11/2022 H011 Fjord Norway F 4 17/11/2022 H012 Clydesdale Scotland M 10 18/11/2022 H015 Arabian Saudi Arabia F 5 15/12/2022 H016 Arabian Saudi Arabia F 5 15/12/2022 H017 Clydesdale Scotland F 4 16/01/2023 H019 Percheron France M 3 16/01/2023 H025 Percheron France M 7 16/01/2023 H026 Clydesdale Scotland F 9 20/01/2023 H030 Clydesdale Scotland M 12 20/01/2023 H032 Fjord Norway M 3 24/03/2023 H033 Arabian Saudi Arabia F 15 27/04/2023 H034 Clydesdale Scotland F 4 14/06/2023 H035 Fjord Norway M 7 15/06/2023 H036 Friesian Netherlands F 15 20/07/2023 H037 Friesian Netherlands M 12 20/07/2023 (a) State the number of records in this database table. … [1] (b) Give the name of the field that is most suitable to be the primary key. State the reason for this choice. Field … Reason … … [2]
Question paper, page 11
11 0984/22/O/N/23 © UCLES 2023 [Turn over (c) The database only allows the data types: • Boolean • character • date/time • integer • real • text. Complete the table to show the most appropriate data type for each field. Each data type must be different. Field Data type Breed Gender Age Arrived [2] (d) Complete the structured query language (SQL) to return the code and breed of all the horses whose breed originated in Scotland. … Code, Breed, FROM … WHERE … = "Scotland"; [3]
Question paper, page 12
12 0984/22/O/N/23 © UCLES 2023 11 A wood flooring company stores the names of up to 100 customers in a one‑dimensional (1D) array Customers[]. A two‑dimensional (2D) array Quotations[] stores details of each customer’s quotation: • length of room (one decimal place) • width of room (one decimal place) • area of wood required (rounded up to next whole number) • choice of wood index (whole number) • price of wood required in dollars (two decimal places). The floor measurements (room length and room width) are taken in metres. All floors are rectangles and room measurements must be between 1.5 and 10.0 inclusive. The index of any customer’s data is the same in both arrays. For example, a customer named in index 4 of Customers[] corresponds to the data in index 4 of Quotations[] The wood choices available are: Index Wood type Price per square metre ($) 1 Laminate 29.99 2 Pine 39.99 3 Oak 54.99 The data are stored in two 1D arrays named WoodType[] and Price[]. The index of the wood type and price in their arrays share the same index number. Write a program that meets the following requirements: • input a new customer’s name, room length and room width • check that each measurement is valid • output an error message and require the measurement to be re‑entered until it is valid • calculate the area of the room by multiplying together the length of the room and the width of the room • input the choice of wood and find its price per square metre • calculate the price of the wood needed • store all data in the relevant array • output the customer’s quotation to include: the name of the customer, the choice of wood and the calculated price of the wood required • continue to accept the next customer. 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; you may assume that this has already been done. You will need to initialise WoodType[] and Price[] All inputs and outputs must contain suitable messages. … … … … …
Question paper, page 13
13 0984/22/O/N/23 © UCLES 2023 [Turn over … … … … … … … … … … … … … … … … … … … … … … … … … … … …
Question paper, page 14
14 0984/22/O/N/23 © UCLES 2023 … … … … … … … … … … … … … … … … … … … … … … … … … … … [15]
Question paper, page 15
15 0984/22/O/N/23 © UCLES 2023 BLANK PAGE
Question paper, page 16
16 0984/22/O/N/23 © UCLES 2023 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
Mark scheme, page 1
This document consists of 14 printed pages. © UCLES 2023 [Turn over Cambridge IGCSE™ (9–1) COMPUTER SCIENCE 0984/22 Paper 2 Algorithms, Programming and Logic October/November 2023 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 October/November 2023 series for most Cambridge IGCSE, Cambridge International A and AS Level components, and some Cambridge O Level components.
Mark scheme, page 2
0984/22 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED October/November 2023 © UCLES 2023 Page 2 of 14 Generic Marking Principles 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. 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. 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 thresholds or grade descriptors in mind.
Mark scheme, page 3
0984/22 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED October/November 2023 © UCLES 2023 Page 3 of 14 Question Answer Marks 1 A 1 Question Answer Marks 2(a) Format check 1 2(b) One mark for each appropriate test data, max two 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. 4 2(c) One mark per mark point, max two MP1 check that there are 10 characters in total MP2 if the date is too long/short it will be rejected 2 Question Answer Marks 3(a) One mark for each correct line. 4
Mark scheme, page 4
0984/22 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED October/November 2023 © UCLES 2023 Page 4 of 14 Question Answer Marks 3(b) One mark per mark point, max four MP1 initialise a variable to store the lowest number set to a high value (at least 100) / first value in the array MP2 loop structure to iterate 25 times MP3 use of IF to check if the array element is less than the current lowest value MP4 …if it is, set this to the lowest value MP5 output the result (with an appropriate message) after the loop 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 4 Question Answer Marks 4(a) One mark per mark point, max four MP1 Line 01 / DECLARE City ARRAY[1:50, 1:2] OF BOOLEAN should be DECLARE City : ARRAY[1:50, 1:2] OF STRING Line 05 / IF should be REPEAT MP2 Line 07 / INPUT City[Count, 2]should be INPUT City[Count, 1] MP3 Line 11 / UNTIL Count = 50 // Line 04 / Count 1 AND Line 10 / Count Count + 1 should be UNTIL Count = 51 / UNTIL Count > 50 // Line 04 / Count 0 AND move Line 10 to beginning of loop / Line 06 MP4 Line 12 / FOR Out 1 TO 1 should be FOR Out 1 TO 50 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 4
Mark scheme, page 5
0984/22 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED October/November 2023 © UCLES 2023 Page 5 of 14 Question Answer Marks 4(b) One mark per mark point, max five MP1 add an input (and prompt to ask) for the country to be searched MP2 …between lines 11 and 12 MP3 …using a new variable for the input MP4 Add an IF statement to check if the current Country array element matches the country being searched MP5 …between lines 12 and 13 MP6 …if it does, allow the output in line 13 // the output in line 13 should be after a THEN MP7 If it does not, check the next element. 5 Question Answer Marks 5 One mark per mark point, max three MP1 variables and constants should have meaningful identifiers MP2 …so that programmers/future programmers are able to understand their purpose MP3 they are both used for data storage MP4 constants store values that never change during the execution of a program // by example MP5 variables contain values that have been calculated within the program / can change during the execution of the program // by example 3
Mark scheme, page 6
0984/22 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED October/November 2023 © UCLES 2023 Page 6 of 14 Question Answer Marks 6(a) One mark per correct column, max five Value Average Total Count OUTPUT 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 5 6(b) One mark per mark point, max two MP1 to add together / find the average of a batch of numbers MP2 the total and average are output (when the batch is complete/when 0 is entered) MP3 when 0 is entered a new batch is started. 2
Mark scheme, page 7
0984/22 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED October/November 2023 © UCLES 2023 Page 7 of 14 Question Answer Marks 7 One mark per mark point, max five MP1 storing string in Quote MP2 correct assignment for Start // sending correct start value MP3 correct assignment for Number // sending correct number of characters MP4 use of SUBSTRING function with first parameter as Quote, or equivalent, plus two other parameters MP5 correct use of LCASE function MP6 two correct outputs For example: Quote "Learning Never Exhausts The Mind" Start 25 Number 8 OUTPUT SUBSTRING(Quote, Start, Number) OUTPUT LCASE(Quote) 5 Question Answer Marks 8 One mark per mark point, max four Procedures, max three MP1 to enable the programmer to write a collection of programming statements under a single identifier MP2 to allow modular programs to be created // to allow procedures to be re-used within the program or in other programs MP3 to make program creation faster because procedures can be re-used // to enable different programmers to work on different procedures in the same project MP4 to make programs shorter (than using the repeated code) / using less duplication of code // to make programs easier to maintain due to being shorter. Parameters, max three MP5 to pass values from the main program to a procedure / function MP6 …so that they can be used in the procedure / function MP7 allow the procedure / function to be re-used with different data. 4
Mark scheme, page 8
0984/22 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED October/November 2023 © UCLES 2023 Page 8 of 14 Question Answer Marks 9(a) One mark for each correct gate, with the correct input(s) as shown. 4 9(b) Four marks for eight correct outputs. Three marks for six or seven correct outputs. Two marks for four or five correct outputs. One mark for two or three correct outputs 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 4
Mark scheme, page 9
0984/22 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED October/November 2023 © UCLES 2023 Page 9 of 14 Question Answer Marks 10(a) 18 1 10(b) One mark for the correct field name One mark for the correct reason For example: Code … …Each entry in this field is a unique identifier 2 10(c) Two marks for four correct answers. One mark for two or three correct answers. Field Data type Breed text Gender Boolean Age integer Arrived date/time 2 10(d) One mark for each correct answer SELECT Horses BreedOrigin Correct SQL: SELECT Code, Breed FROM Horses WHERE BreedOrigin = "Scotland"; 3
Mark scheme, page 10
0984/22 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED October/November 2023 © UCLES 2023 Page 10 of 14 Question Answer Marks 11 Requirements may be met using a suitable built-in function from the programming language used (Python, VB.NET or Java) Tables for AO2 and AO3 are used to award a mark in a suitable band using a best fit approach. Marks are available for: • AO2 (maximum 9 marks) • AO3 (maximum 6 marks) Data Structures required with names as given in the scenario The names underlined must be used as they are provided in the scenario: Arrays or lists WoodType[], Price[], Customers[], Quotations[] 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). 15
Mark scheme, page 11
0984/22 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED October/November 2023 © UCLES 2023 Page 11 of 14 Question Answer Marks 11 Example 15-mark answer in pseudocode // declarations not required in the answer // initial population of WoodType[] and Price[] arrays // input and loops are also acceptable WoodType[1] "Laminate" WoodType[2] "Pine" WoodType[3] "Oak" Price[1] 29.99 Price[2] 39.99 Price[3] 54.99 // initialises starting customer in sales arrays CurrentCustomer 1 // to allow program to continue to next customer Cont TRUE WHILE Cont DO // input customer name OUTPUT "Input the customer’s name " INPUT Customers[CurrentCustomer] // input of room dimensions with validation OUTPUT "What is the length of your room? " INPUT RoomLength // validate RoomLength WHILE RoomLength < 1.5 OR RoomLength > 10.0 OUTPUT "The measurement must be in the range 1.5 to 10.0 inclusive, please try again " INPUT RoomLength ENDWHILE OUTPUT "What is the width of your room? " INPUT RoomWidth // validate RoomWidth WHILE RoomWidth < 1.5 OR RoomWidth > 10.0 OUTPUT "The measurement must be in the range 1.5 to 10.0 inclusive, please try again " INPUT RoomWidth ENDWHILE RoomArea ROUND(RoomLength, 1) * ROUND(RoomWidth, 1) RoomArea ROUND (RoomArea + 0.5, 0) // show the wood available and prices OUTPUT "the wood choices available are:" OUTPUT "Number Wood Type Price($)" FOR Count 1 TO 3 OUTPUT Count, " ", WoodType[Count], " ",
Mark scheme, page 12
0984/22 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED October/November 2023 © UCLES 2023 Page 12 of 14 Question Answer Marks 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 // final output of quotation OUTPUT "Customer name: ", Customers[CurrentCustomer] OUTPUT "The wood you have chosen is: ", WoodType[WoodChoice] OUTPUT "Your total price is: ", Quotations[CurrentCustomer,5] // ready for next customer CurrentCustomer CurrentCustomer + 1 // resets CurrentCustomer to beginning of array when array // limit reached IF CurrentCustomer > 100 THEN CurrentCustomer 1 ENDIF ENDWHILE
Mark scheme, page 13
0984/22 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED October/November 2023 © UCLES 2023 Page 13 of 14 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.
Mark scheme, page 14
0984/22 Cambridge IGCSE (9–1) – Mark Scheme PUBLISHED October/November 2023 © UCLES 2023 Page 14 of 14 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 of 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 attempts to meet 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.
What you needed in this session
Cambridge’s own grade thresholds for 2023 Oct/Nov, Paper 2 · Variant 2. A higher threshold means an easier paper — the bar moves with how the cohort did.