← GCSE Computer Science

Placement — Computer Science paper 1 (Python) — GCSE Computer Science section

2026-09-27 · check · 1 paper · 19/52 · 37% · not grade-converted

Exam Skills test #1, typed on the portal, sat 50 min for the whole paper.

exam-skills #1 19/52

sat 2026-09-27 · 0 left blank

QTopicMarksQuestionAnswer givenNote
1A011/1State 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.
2A020/1State 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.
3A030/1State what is meant by **abstraction** in computational thinking.a different way of using code'a different way of using code' — not creditworthy. 0/1.
4P010/3State 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: qlist / list / probability — no data type named. 0/3. Knowledge gap on P01 data types.
5P082/2State the value of each expression in Python 3. 1. `17 // 5` 2. `17 % 5`1. 3 2. 23 and 2 — both correct. 2/2.
6P172/2State 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 945 and 9 — both correct; the text-join misconception from 25 Sep did not recur. 2/2.
7P040/2State 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.
8P100/3A 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.
9P032/3A 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.
10P053/3Write 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.
11A072/4Complete 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 = 4Rows: (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.
12P110/3A 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 scores7 (one-based) / 'i don't know' / 'count items in scores'. 0/3. Indexing from 0, assignment to an element and len() all untaught.
13P120/2A 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. 51 / 5 — 2-D indexing not understood. 0/2. Untaught (P12).
14P150/3A 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).
15P162/2In Python 3, `ord("A")` returns 65. 1. State the value of `ord("D")`. 2. State the value of `chr(67)`.1. 68 2. C68 and C — both correct. 2/2.
16P180/1Write **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.
17P190/41. 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*heightNo def, no return, no call; reads width/height from input and multiplies. 0/4. Subroutines (P19–P21) untaught.
18P270/3A 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. Erroneous1. 15 2. 18 3. 1015 / 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.
19P282/2This 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 4Line 3 prnt / line 2 divides by 3 not 4 — both line and fault named. 2/2.
20A100/2A **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 = truePart 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.
21A132/3A **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 sortedFirst 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.
22A121/2Describe 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.

Marks by topic

Ordered by marks lost. These are the candidates for reteaching.

TopicNameMarksLost
P193.2.10 Subroutines: concept, calling, and advantages0/44
P013.2.1 Data types: integer, real, Boolean, character, string0/33
P103.2.5 Boolean operators NOT, AND, OR in conditions0/33
P113.2.6 Data structures concept; one-dimensional arrays0/33
P153.2.8 String handling: length, position, substring, concatenation0/33
P273.2.11 Test data: normal, boundary, erroneous; selecting and justifying0/33
A073.1.1 Trace tables and determining an algorithm's purpose2/42
A103.1.3 Binary search: mechanics (sorted data precondition)0/22
P043.2.2 Definite (count-controlled) iteration (FOR)0/22
P123.2.6 Two-dimensional arrays0/22
A023.1.1 Decomposition0/11
A033.1.1 Abstraction0/11
A123.1.4 Merge sort: mechanics1/21
A133.1.4 Bubble sort: mechanics2/31
P033.2.2 Selection (IF / ELSE IF / ELSE)2/31
P183.2.9 Random number generation in programs0/11
A013.1.1 The term algorithm; program vs algorithm1/10
P053.2.2 Indefinite iteration with condition at start (WHILE) or end (REPEAT…UNTIL, DO…WHILE)3/30
P083.2.3 Arithmetic operators incl. real division, DIV and MOD2/20
P163.2.8 Character ↔ character code conversion2/20
P173.2.8 String ↔ integer/real conversion2/20
P283.2.11 Syntax errors vs logic errors: identify and categorise2/20