Free until 14 Nov · 80% off for the first 100 · Pricing

Computer Science 9618/23 May/June 2026: question paper and mark scheme

Cambridge AS & A Level Computer Science (9618), Paper 2 Fundamental Problem-solving and Programming Skills, May/June 2026. Read both free below, or download them. Done the paper? Get it marked by AI against this mark scheme.

9618_s26_qp_239618_s26_ms_239618/23/M/J/26

Paper
Paper 2 Fundamental Problem-solving and Programming Skills
Total marks
75
Time
2 hours
Code on the paper
9618/23/M/J/26
9618_s26_ms_23.pdf

9618/23 mark scheme, question by question

Each question as it's printed, and the mark scheme's points for it, as text. Diagrams, tables and graphs are in the PDFs above.

Question 1

Question

In the question paper above.

Mark scheme

1(a) Post-condition(al) loop // post-condition(al) iteration 1 1(b) 5 1

Question 2

Question

In the question paper above.

Mark scheme

2(a) BOOLEAN 1 2(b) IF MainsOn (=TRUE) THEN 1 DisplayOn ← TRUE ENDIF Accept: DisplayOn ← MainsOn Accept ‘=’ in place of the assignment arrow 2(c) MP1 The robot is only ready to move if… the mains power is on and ….. 2 Reject – MP2 The strength of the (suction) value selected is non-zero Zero for a ‘repeat’ of the pseudocode statement. 2(d)(i) breakpoint 1 2(d)(ii) 38 (minutes) 1

Question 3

Question

In the question paper above.

Mark scheme

3(a) The initial ANALYSIS stage is carried out by studying in detail the current 4 system. A design for the proposed new system is produced. Following the design and coding stages, it is decided to install the completed new software initially in only two of the shops. BETA testing is carried out. The final stage of the project uses ACCEPTANCE testing to test all programs on the company's hardware. After successful testing, the company approves the new system. The company then installs the new software in all shops. In the first week of its use, unexpected bugs are reported. CORRECTIVE maintenance has to be carried out. Trace ID: PC-966C7C0A77 Re-uploading, mirroring or re-hosting this file on any other website or domain is unauthorised and traceable. Licensed for hosting on papacambridge.com only. PapaCambridge Downloaded from PapaCambridge - https://papacambridge.com/ 3(b) Team A 4 MP1 Rapid Application Development /RAD // Iterative MP2 Large project can be broken down into smaller steps MP3 All stakeholders/users are involved (at all stages) MP4 There is constant discussion between the client (and Team A) MP5 Prioritises the client needs and end-user experience MP6 A prototype is available at an early stage Reject ‘early MP7 More readily allows for requirement changes to be made version’. MP8 Minimal planning is required MP9 Programs/modules can be developed in parallel Max 2 Team B MP10 Waterfall (method/model) MP11 Next stage does not start until the current stage is successfully completed MP12 More predictable for budget MP13 More predictable for timeline/completion MP14 All requirements are identified before coding MP15 Late changes cannot be accommodated Max 2 3(c) MP1 Production of flowcharts // structure charts // STDs // Structured 3 English // E-R diagrams MP2 Consider data storage (hardware / database / files) MP3 Design inputs screens // Design screen outputs // reports to be produced MP4 Select (Programming) language to be used MP5 Produce pseudocode algorithms / data structures / Reject procedures/functions/modules are produced / Identifier table ‘program MP6 Produce a testing strategy statement // (detailed) test plan structure’. MP7 Consider – is there relevant code available from program libraries? Max 3 Trace ID: PC-966C7C0A77 Re-uploading, mirroring or re-hosting this file on any other website or domain is unauthorised and traceable. Licensed for hosting on papacambridge.com only. PapaCambridge Downloaded from PapaCambridge - https://papacambridge.com/

Question 4

Question

In the question paper above.

Mark scheme

4 Example solution: 4 • Initialise count to zero • REPEAT • Input next number • If number > 120 then increment the count • Until number = -1 • Output the count Mark as follows: A ‘sum’ MP1 Initialise count and later evidence of use of counter (not ‘sum’) solution will have a Max MP2 Conditional loop and terminated when –1 is input 2. MP3 Test for number > 120 and increment the count (not ‘sum’) inside the loop MP4 Output the count (Accept either ‘sum’ or ‘count’)

Question 5

Question

In the question paper above.

Mark scheme

5(a) FUNCTION InterviewSummary(ThisApplicant : STRING) 4 RETURNS STRING DECLARE Summary : STRING Summary ← MID(ThisApplicant, 8, MP2 LENGTH(ThisApplicant)- 7) MP3 Or: Summary ←RIGHT(ThisApplicant, LENGTH(ThisApplicant) – 7) MP2 MP3 RETURN Summary ENDFUNCTION Mark as follows: MP1 Function identifier and function ending and parameter MP2 Calculation for summary expression (part 1) – using MID or RIGHT Do not accept a MP3 Calculation for summary expression (part 2) – using LENGTH final MP4 Return of the calculated STRING value (earlier declaration optional) missing and RETURNS STRING in the header – close bracket (for the MID or RIGHT function). Trace ID: PC-966C7C0A77 Re-uploading, mirroring or re-hosting this file on any other website or domain is unauthorised and traceable. Licensed for hosting on papacambridge.com only. PapaCambridge Downloaded from PapaCambridge - https://papacambridge.com/ 5(b) PROCEDURE Search(Initial : CHAR, ShortSurname : STRING) 7 DECLARE ThisApplicant, ThisSurname : STRING DECLARE ThisInitial : CHAR DECLARE Found : BOOLEAN OPENFILE "JobApps.txt" (FOR) READ Found ← FALSE REPEAT READFILE "JobApps.txt", ThisApplicant ThisInitial ← LEFT(ThisApplicant, 1) ThisSurname ← MID(ThisApplicant, 2, 5) IF ThisSurname = ShortSurname AND ThisInitial = Initial THEN Found ← TRUE OUTPUT "Name found" ENDIF UNTIL Found = TRUE OR EOF("JobApps.txt") IF Found = FALSE THEN OUTPUT "Name not Found" ENDIF CLOSE(FILE) "JobApps.txt" ENDPROCEDURE Mark as follows: 1 mark per gap Trace ID: PC-966C7C0A77 Re-uploading, mirroring or re-hosting this file on any other website or domain is unauthorised and traceable. Licensed for hosting on papacambridge.com only. PapaCambridge Downloaded from PapaCambridge - https://papacambridge.com/

Question 6

Question

In the question paper above.

Mark scheme

6(a) MP1 5 3 Data Pointer 1 "LEOPARD" 1 4 2 "DOG" 2 1 3 "BISON" 3 2 4 "ZEBRA" 4 0 5 "ANT" 5 3 6 6 3 19 20 20 MP2 Correct Data array values MP3 Correct pointers 6(b) The end of ‘(linked) list’ 1 6(c)(i) 1 Mark as follows: Start is 5 and other pointer values are correct and BISON pointer is changed to 1 and arrows are as shown and DOG is ‘isolated’ 6(c)(ii) MP1 The item is not in the list 2 MP2 The data item is the only item in the list MP3 The item is the first in the list Trace ID: PC-966C7C0A77 Re-uploading, mirroring or re-hosting this file on any other website or domain is unauthorised and traceable. Licensed for hosting on papacambridge.com only. PapaCambridge Downloaded from PapaCambridge - https://papacambridge.com/ 6(d) MP1 Store ‘BAT’ at the next available location /with index 6 / in the Data 6 array MP2 Visit the start pointer node MP3 Compare this data value with ‘BAT’ //compare ‘BAT’ with ‘ANT’ MP4 When ‘BAT’ is less than the current value - ‘position is found’ MP5 IF not, move to next node // move to ‘BISON’ MP6 ….. and store the previous position MP7 Repeat until ‘BAT’ less that current value MP8 Link pointer of the previous node // ’ANT’ points/connects to ‘BAT’ MP9 Link pointer of ‘BAT’ points to the current node / 3 // ’BAT’ points/connects to ‘BISON’ Max 6

Question 7

Question

In the question paper above.

Mark scheme

7(a)(i) 4 Data Num1 Index i 1 2 3 4 5 6 1 2 12 2 2 3 3 3 4 4 4 5 5 6 6 4 Mark by column(s) 7(a)(ii) Factors / the divisors of Num1/12 // all the numbers which divide exactly into 1 Num1 Trace ID: PC-966C7C0A77 Re-uploading, mirroring or re-hosting this file on any other website or domain is unauthorised and traceable. Licensed for hosting on papacambridge.com only. PapaCambridge Downloaded from PapaCambridge - https://papacambridge.com/ 7(b)(i) 3 Num Num2 Index Match 1 2 3 4 5 6 1 4 FALSE 20 8 2 4 5 10 3 FALSE 2 TRUE Max 2 for any additional incorrect entries 7(b)(ii) Highest common factor // Greatest common divisor of Num1 and Num2 1 // by good explanation i.e. 4 is the highest number that divides exactly into both 8 and 20

Question 8

Question

In the question paper above.

Mark scheme

8(a)(i) DECLARE Bins : ARRAY [0:2, 1:120] OF BOOLEAN 2 Do not accept MP1 MP2 variations of syntax. Trace ID: PC-966C7C0A77 Re-uploading, mirroring or re-hosting this file on any other website or domain is unauthorised and traceable. Licensed for hosting on papacambridge.com only. PapaCambridge Downloaded from PapaCambridge - https://papacambridge.com/ 8(a)(ii) Example solution: 5 PROCEDURE InactiveReport() DECLARE Level, BinNo : INTEGER DECLARE BinCount : INTEGER BinCount ← 0 FOR Level ← 0 TO 2 IF Level = 0 THEN OUTPUT "Level: ground floor" ELSE OUTPUT "Level: " & NUM_TO_STR(Level) ENDIF FOR BinNo ← 1 TO 5 IF Bins[Level, BinNo] = FALSE THEN OUTPUT "Bin " & NUM_TO_STR(BinNo) BinCount ← BinCount + 1 ENDIF NEXT BinNo NEXT Level OUTPUT NUM_TO_STR(BinCount) & " bins are not in use" ENDPROCEDURE Mark as follows: MP1 Bin count declared and initialised before the loop and correctly incremented MP2 (Outer) level loop – iterates 3 times MP3 (Inner) bin loop – iterates 5 times MP4 Correct 2D array syntax and test for not in use with a Boolean comparison MP5 Correct header OUTPUT statement(s) - includes the ‘Ground floor‘ text and ‘Bin’ text and bin number MP6 Correct final OUTPUT statement with ‘total not in use’ text and the count Max 5 Trace ID: PC-966C7C0A77 Re-uploading, mirroring or re-hosting this file on any other website or domain is unauthorised and traceable. Licensed for hosting on papacambridge.com only. PapaCambridge Downloaded from PapaCambridge - https://papacambridge.com/ 8(a)(iii) Bins[0, 3] ← FALSE 3 Bins[1, 2] ← TRUE Bins[2, 1] ← FALSE Bins[2, 2] ← FALSE Bins[2, 3] ← TRUE Bins[2, 4] ← TRUE Bins[2, 5] ← FALSE Mark as follows: MP1 Bins(0, 3) ← FALSE MP2 Bins(1, 2) ← TRUE MP3 Level 2 assignment all complete 8(b)(i) Example solution: 2 TYPE BinData DECLARE Size : STRING DECLARE Active : BOOLEAN DECLARE StockCode : STRING DECLARE StockLevel : INTEGER ENDTYPE Mark as follows: Two variables correct – 1 Mark 4 variables correct – 2 marks Trace ID: PC-966C7C0A77 Re-uploading, mirroring or re-hosting this file on any other website or domain is unauthorised and traceable. Licensed for hosting on papacambridge.com only. PapaCambridge Downloaded from PapaCambridge - https://papacambridge.com/ 8(b)(ii) Example solution: 7 FUNCTION FindBin(MySize : STRING) RETURNS STRING DECLARE Level, BinNo : INTEGER DECLARE Text : STRING Text ← " No bins available" Level ← 0 REPEAT BinNo ← 1 REPEAT IF Bins[Level, BinNo].Size = MySize AND Bins[Level, BinNo].Active = FALSE THEN Text ← "Level: " & NUM_TO_STR(Level) & " Bin: " & NUM_TO_STR(BinNo) OUTPUT Text RETURN Text ELSE BinNo ← BinNo + 1 ENDIF UNTIL BinNo = 121 Level ← Level + 1 UNTIL Level = 3 OUTPUT Text RETURN Text ENDFUNCTION Mark as follows: MP1 Function header and string parameter and return string and ending MP2 Use of any (outer level) loop for 3 iterations MP3 Use of any (inner) bin loop for 5 / 120 iterations MP4 Correct 2D array syntax with either data field – .Size or .Active MP5 Correct IF statement condition including AND Do not MP6 Formation of the text string with correct syntax – accept comma MP7 Correct return value (and output) – in both cases and in the correct syntax. place Trace ID: PC-966C7C0A77 Re-uploading, mirroring or re-hosting this file on any other website or domain is unauthorised and traceable. Licensed for hosting on papacambridge.com only. PapaCambridge Downloaded from PapaCambridge - https://papacambridge.com/

Checked your answers against these? Let AI mark the whole paper, on your own working.

Mark my 9618/23

How this paper is marked

Examiners follow the generic marking principles at the front of the scheme, then each question's points: method (M), accuracy (A) and independent (B) marks, error carried forward where the scheme allows it, and positive marking, so you're credited for what you got right.

Check your answers against it

Done this paper? Upload your script and CIE Buddy's AI marker marks it question by question against this exact scheme, puts the ticks on your own working and says what each lost mark needed.

9618/23 in other series

Find another Computer Science paper

Every AS & A Level Computer Science mark scheme

Question papers and mark schemes © Cambridge University Press & Assessment. CIE Buddy is independent and not connected to Cambridge.

9618/23 questions

Where can I find the 9618/23 May/June 2026 mark scheme?

On this page, free: the mark scheme for AS & A Level Computer Science 9618/23, May/June 2026 (9618_s26_ms_23), and the question paper (9618_s26_qp_23), to read or download, with each question's marking points written out underneath.

How many marks is 9618/23 out of?

Computer Science 9618/23 for May/June 2026 is out of 75 marks, with 2 hours to answer it.

Can I get my 9618/23 answers marked?

Yes. Upload your answers to 9618/23/M/J/26 as a PDF or photos, and CIE Buddy marks every question against this paper's official mark scheme, using Cambridge's marking rules. You get your score, each lost mark explained on your own script, and the topics to revise. It's a guide, not an official Cambridge grade.