Exclusive Practice Resource

GCSE

Computer Science

Unofficial Practice Paper: J277/02: Computational Thinking, Algorithms and Programming

General Certificate of Secondary Education

Mark Scheme for June 2026 [VERSION B]

This is an unofficial practice resource created exclusively for gcsecomputerscience.co.uk. It is not endorsed by, affiliated with, or approved by Oxford Cambridge and RSA Examinations (OCR).
June 2026 Practice Paper (Section A)
Question Answer / Indicative Content Mark Guidance
1 (a) 1. Abstraction [1]
2. Algorithmic Thinking [1]
3. Decomposition [1]
3
1 (b) 1 mark per point (max 3):
  • It allows the programmer to ignore irrelevant details (e.g. wall colour, seat type) [1]
  • And focus only on the essential data needed for the model (e.g. number of patients, wait times) [1]
  • This makes the program easier to design / reduces memory usage / speeds up development [1]
3 Must apply abstraction specifically to the hospital scenario.
2 (a)
  • Translates high-level code... -> Both [1]
  • Translates and executes... line-by-line -> Interpreter [1]
  • Produces a final executable file... -> Compiler [1]
  • Stops translating... first error is found -> Interpreter [1]
4
2 (b) 1 mark per feature (max 2):
  • Editor [1]
  • Error diagnostics [1]
  • Run-time environment [1]
  • Translator [1]
2 Reject any debugging tools (e.g. breakpoints, error diagnostics) as excluded by the question.
3 (a) 1 mark per point (max 4):
  • A syntax error breaks the grammatical rules of the programming language [1]
  • ...and prevents the code from running/compiling [1]
  • A logic error is a flaw in the algorithm/thinking [1]
  • ...the code will still run, but produces an unexpected or incorrect output [1]
4
3 (b) 1 mark per point (max 4):
  • Iterative testing is done during the development process [1]
  • ...testing individual modules/subprograms as they are built [1]
  • Terminal testing is done at the end of development [1]
  • ...testing the whole integrated program against the original requirements [1]
4
June 2026 Practice Paper (Section A Continued)
Question Answer / Indicative Content Mark Guidance
4 (a) print(hospitalName.left(7)) -> "General" [1]
print(hospitalName.length) -> 17 [1]
print(hospitalName.substring(8, 9)) -> "Infirmary" [1]
print(hospitalName.upper) -> "GENERAL INFIRMARY" [1]
4 Accept string outputs with or without quote marks.
4 (b) endPart = hospitalName.right(4)
Or: endPart = hospitalName.substring(13, 4)
2 1 mark for correct method (`right` or `substring`), 1 mark for correct index/length values.
5 (a) SELECT PatientID, WardName [2] (1 for SELECT, 1 for fields)
FROM Patients [1]
WHERE PriorityLevel == 1 [1] (Accept `PriorityLevel = 1`)
4
5 (b) It selects all fields/columns [2] from the table. 2
6 (a) 1 mark for Type, 1 mark for Justification:
BedNumber: Integer [1] (It is a whole number without decimals) [1]
Temperature: Real [1] (Requires decimal precision) [1]
Discharged: Boolean [1] (Only two possible states, True or False) [1]
6 Reject 'Float'.
6 (b) 23 MOD 5 = 3 [1]
23 DIV 5 = 4 [1]
2
June 2026 Practice Paper (Section B)
Question Answer / Indicative Content Mark Guidance
7 (a) 1 mark per point (max 4):
  • Take the first item and place it in the 'sorted' list [1]
  • Take the next item and compare it to the item(s) in the sorted list [1]
  • Insert the item into its correct ordered position within the sorted list [1]
  • Repeat this process for all remaining items in the unsorted list [1]
4
7 (b) 1 mark per point (max 4):
  • An Insertion Sort only compares items as far as needed to find the insertion point [1]
  • Whereas a Bubble Sort compares every adjacent pair throughout the entire list [1]
  • If the list is almost sorted, the Insertion Sort requires very few shifts [1]
  • ...making it much faster / requiring fewer passes than Bubble Sort [1]
4
8 Trace Table Completion:
1 mark per correctly completed row block or specific change:
  • Row 1: priority=6, p=1 [1]
  • Row 2: priority=8, p=2 [1]
  • Row 3: priority=11, p=3 [1]
  • Row 4: flag=False [1]
  • Output: 11 [1]
Example correctly completed table:
priorityflagpOutput
5True
61
82
113
False
11
10 Total of 10 marks awarded for the logical flow. 2 marks per critical sequence block correctly traced.
June 2026 Practice Paper (Section B Continued)
Question Answer / Indicative Content Mark Guidance
9 (a) 1 mark per bullet:
  • Initialises a running total variable to 0 (outside loop) [1]
  • Correct FOR loop (or equivalent) [1]
  • Loop ranges from 0 to 49 (or iterates exactly 50 times) [1]
  • Accesses the 1D array correctly inside the loop [1]
  • Adds the array element to the running total [1]
  • Calculates the average by dividing total by 50 (outside loop) [1]
  • Outputs the calculated average [1]
  • Algorithm logically sound throughout [1]

Example:
total = 0
for i = 0 to 49
   total = total + triageTimes[i]
next i
average = total / 50
print(average)
8 Accept `average = total / triageTimes.length`
9 (b) 1 mark per point (max 4, 2 per reason):
  • It allows iteration/loops to be used [1] which reduces the amount of code needed [1].
  • It groups related data under a single identifier [1] making the code easier to read and maintain [1].
4
10 (a) Line number: 02 [2]
Correction: Delete the line completely [2]
4
10 (b) 1 mark for method, 1 mark for reason (max 4):
  • Indentation [1] to show the structure of selection blocks (if/else) [1]
  • Comments [1] to explain the logic of the severity check to other programmers [1]
4
10 (c) 3 [2] 2
TOTAL MARKS: 80