2026-09-27 · check · 1 paper · 19/52 · 37% · not grade-converted
sat 2026-09-27 · 0 left blank
| Q | Topic | Marks | Question | Answer given | Note |
|---|---|---|---|---|---|
| 1 | A01 | 1/1 | State what is meant by the term **algorithm**. | algorithm means a set of instrusions the things will follow | 'a set of instructions the things will follow' — set of instructions that are followed; purpose (task/problem) absent but scheme's accept line is met in substance. 1/1. |
| 2 | A02 | 0/1 | State what is meant by **decomposition** in computational thinking. | taking the code apart | 'taking the code apart' — about code not a problem; no smaller sub-problems. 0/1. |
| 3 | A03 | 0/1 | State what is meant by **abstraction** in computational thinking. | a different way of using code | 'a different way of using code' — not creditworthy. 0/1. |
| 4 | P01 | 0/3 | State the most appropriate **data type** for each of the following values in a program. 1. The number of pupils in a class. 2. The average height of the pupils, in metres. 3. Whether or not a pupil has paid for the trip. | 1. list 2. list 3. probibilty Working: q | list / list / probability — no data type named. 0/3. Knowledge gap on P01 data types. |
| 5 | P08 | 2/2 | State the value of each expression in Python 3. 1. `17 // 5` 2. `17 % 5` | 1. 3 2. 2 | 3 and 2 — both correct. 2/2. |
| 6 | P17 | 2/2 | State the output of each Python 3 statement. 1. `print("4" + "5")` 2. `print(int("4") + int("5"))` | 1. the outcome is 45 2. the outcome is 9 | 45 and 9 — both correct; the text-join misconception from 25 Sep did not recur. 2/2. |
| 7 | P04 | 0/2 | State the output of this Python 3 program. ```python for i in range(2, 9, 3): print(i) ``` | 2, 3, 4, 5, 6, 7, 8, 8, 7, 6, 5, 4 | '2, 3, 4, 5, 6, 7, 8, 8, 7, 6, 5, 4' — three-argument range not understood; no partial pattern matches the scheme. 0/2. |
| 8 | P10 | 0/3 | A program contains the variables `x = 7` and `y = 3`. State whether each condition is **True** or **False**. 1. `x > 5 and y > 5` 2. `not (x == y)` 3. `x < 10 or y < 1` | 1. x is true and y is false 2. false 3. x is true and y is false | 'x is true and y is false' / 'false' / 'x is true and y is false' — evaluated the halves but never combined with and/or/not; part 2 wrong. 0/3. |
| 9 | P03 | 2/3 | A cinema charges for tickets by age: - under 5: free - 5 to 15 inclusive: £3 - 16 and over: £5 The variable `age` already holds a whole number. Write a Python 3 program that uses `age` to store the correct price in a variable called `price`. | age = int(input()) if age < 5: print("Free") elif age < 16: print("£3") else: print("£5") | Mark 1: if age < 5 branch present (prints 'Free' rather than assigning) — awarded on the condition. Mark 2: elif age < 16 correct boundary — awarded. Mark 3: not awarded — every branch prints, nothing assigned to price; also re-reads age from input although the question said it already holds a value. 2/3. |
| 10 | P05 | 3/3 | Write a Python 3 program that keeps asking the user to enter a password until they enter `open`. When they do, the program should display `Welcome`. | password = input() while password != open print("Please try agian") password = input() print("Welcome") | while password != open (quotes missing, colon missing), input before and inside the loop, Welcome after. All three scheme marks on logic; missing colon and quotes treated as compile tolerance. Quotes flagged: `open` without quotes is a different thing in Python. 3/3. |
| 11 | A07 | 2/4 | Complete a trace table for this Python 3 program. Type one row for each time a value changes, with the columns `a` and `b`, and then state the output. ```python a = 5 b = 2 while a > 0: a = a - b b = b + 1 print(a) ``` | a = 3 b = 3 a = 0 b = 4 -1 Working: a = 3 b = 3 a = 0 b = 4 | Rows: (3,3) ✓, (0,4) ✓; starting row (5,2) absent; output given as -1 (an extra pass). Marks 2 and 3 awarded, 1 and 4 not. 2/4. |
| 12 | P11 | 0/3 | A program contains this array (list): ```python scores = [12, 7, 9, 15] ``` 1. State the value of `scores[2]`. 2. Write **one** statement that changes the value 7 to 8. 3. Write **one** statement that displays how many items are in the array. | 1. 7 2.i don't know 3. count items in scores | 7 (one-based) / 'i don't know' / 'count items in scores'. 0/3. Indexing from 0, assignment to an element and len() all untaught. |
| 13 | P12 | 0/2 | A program contains this two-dimensional array: ```python grid = [[1, 2, 3], [4, 5, 6]] ``` 1. State the value of `grid[1][0]`. 2. State the value of `grid[0][2]`. | 1. 1 2. 5 | 1 / 5 — 2-D indexing not understood. 0/2. Untaught (P12). |
| 14 | P15 | 0/3 | A program contains: ```python name = "Paddington" first = "Paige" last = "Mann" ``` 1. State the value of `len(name)`. 2. State the value of `name[0:3]`. 3. Write an expression that joins `first` and `last` with a single space between them. | 1. paddington 2. paddington 3. print("{first} {last}") Working: 1. paddington 2. paddington 3. print("{first} {last}") | 'paddington' / 'paddington' / print("{first} {last}") — len and slicing not known; part 3 is a plain string, not an f-string, so no join. 0/3. Untaught (P15). |
| 15 | P16 | 2/2 | In Python 3, `ord("A")` returns 65. 1. State the value of `ord("D")`. 2. State the value of `chr(67)`. | 1. 68 2. C | 68 and C — both correct. 2/2. |
| 16 | P18 | 0/1 | Write **one** line of Python 3 that stores a random whole number from 1 to 6 (inclusive) in a variable called `dice`. You may assume `import random` has already been done. | dice = while i in range (1, 7) | 'dice = while i in range (1, 7)' — a loop, not a random call. 0/1. P18 untaught. |
| 17 | P19 | 0/4 | 1. Write a Python 3 subroutine (function) called `area` that takes two parameters, `width` and `height`, and **returns** the area of a rectangle. 2. Write **one** line that calls `area` with the values 4 and 5 and stores the result in a variable called `a`. | width = int(input()) height = int(input()) a = width*height Working: width = int(input()) height = int(input()) a = width*height | No def, no return, no call; reads width/height from input and multiplies. 0/4. Subroutines (P19–P21) untaught. |
| 18 | P27 | 0/3 | A program accepts a pupil's age, which must be a whole number from 11 to 18 inclusive. Give **one** item of test data for each type below, and state what the program should do with it. 1. Normal 2. Boundary 3. Erroneous | 1. 15 2. 18 3. 10 | 15 / 18 / 10 — all three values correctly classified (normal, boundary, just-outside-boundary erroneous), but no expected behaviour for any, and the scheme requires value and behaviour together. 0/3. Instruction loss, not knowledge. |
| 19 | P28 | 2/2 | This program should display the average of four test scores. ```python total = 45 + 62 + 58 + 71 average = total / 3 prnt(average) ``` The program contains one **syntax error** and one **logic error**. 1. State the line that contains the syntax error and what is wrong with it. 2. State the line that contains the logic error and what is wrong with it. | 1. syntax error is on line 3 because the i is missing in print 2. logic error is on line 2 and it is the 3 because it should be a 4 | Line 3 prnt / line 2 divides by 3 not 4 — both line and fault named. 2/2. |
| 20 | A10 | 0/2 | A **binary search** is used to find the value 27 in this list: `3, 8, 12, 15, 21, 27, 30` 1. State the values that are compared, in the order they are checked, until 27 is found. 2. State **one** reason a binary search could not be used if the list were not sorted. | 1. 3 == 27 = false, 8 == 27 = false, 12 == 27 = false, 21 == 27 = false, 27 == 27 = true | Part 1: compared 3, 8, 12, 21, 27 in turn — a linear search, not binary; scheme rejects a list beginning 3, 8. Part 2 unanswered. 0/2. A10 untaught. |
| 21 | A13 | 2/3 | A **bubble sort** is used to sort this list into ascending order: `5, 1, 4, 2` 1. Show the list after the **first pass**. 2. State how the algorithm knows the list is fully sorted. | 1. 1, 4, 2, 5 2. it checks the list and finds it sorted | First pass 1, 4, 2, 5 correct — 2 marks. Part 2 'it checks the list and finds it sorted' — no mention of a pass with no swaps. 2/3. |
| 22 | A12 | 1/2 | Describe the two main stages of a **merge sort**. | using merge sort splits the list into multipule peaks and puts them together after sorting them | 'splits the list into multiple peaks and puts them together after sorting them' — the split/merge shape is there; splitting to single items and merging in order as you go are not stated. 1/2. |
Ordered by marks lost. These are the candidates for reteaching.
| Topic | Name | Marks | Lost |
|---|---|---|---|
| P19 | 3.2.10 Subroutines: concept, calling, and advantages | 0/4 | 4 |
| P01 | 3.2.1 Data types: integer, real, Boolean, character, string | 0/3 | 3 |
| P10 | 3.2.5 Boolean operators NOT, AND, OR in conditions | 0/3 | 3 |
| P11 | 3.2.6 Data structures concept; one-dimensional arrays | 0/3 | 3 |
| P15 | 3.2.8 String handling: length, position, substring, concatenation | 0/3 | 3 |
| P27 | 3.2.11 Test data: normal, boundary, erroneous; selecting and justifying | 0/3 | 3 |
| A07 | 3.1.1 Trace tables and determining an algorithm's purpose | 2/4 | 2 |
| A10 | 3.1.3 Binary search: mechanics (sorted data precondition) | 0/2 | 2 |
| P04 | 3.2.2 Definite (count-controlled) iteration (FOR) | 0/2 | 2 |
| P12 | 3.2.6 Two-dimensional arrays | 0/2 | 2 |
| A02 | 3.1.1 Decomposition | 0/1 | 1 |
| A03 | 3.1.1 Abstraction | 0/1 | 1 |
| A12 | 3.1.4 Merge sort: mechanics | 1/2 | 1 |
| A13 | 3.1.4 Bubble sort: mechanics | 2/3 | 1 |
| P03 | 3.2.2 Selection (IF / ELSE IF / ELSE) | 2/3 | 1 |
| P18 | 3.2.9 Random number generation in programs | 0/1 | 1 |
| A01 | 3.1.1 The term algorithm; program vs algorithm | 1/1 | 0 |
| P05 | 3.2.2 Indefinite iteration with condition at start (WHILE) or end (REPEAT…UNTIL, DO…WHILE) | 3/3 | 0 |
| P08 | 3.2.3 Arithmetic operators incl. real division, DIV and MOD | 2/2 | 0 |
| P16 | 3.2.8 Character ↔ character code conversion | 2/2 | 0 |
| P17 | 3.2.8 String ↔ integer/real conversion | 2/2 | 0 |
| P28 | 3.2.11 Syntax errors vs logic errors: identify and categorise | 2/2 | 0 |