Computational Thinking and Programming
Skills – Python
(Merged Question Paper and Marking
Please write clearly in block capitals. Scheme) Wednesday 15 May 2024
Centre number
Surname Candidate number
Forename(s)
Candidate signature
I declare this is my own work.
GCSE
COMPUTER SCIENCE
Paper 1 Computational thinking and programming skills – Python
Wednesday 15 May 2024 Afternoon Time allowed: 2 hours
Materials
• There are no additional materials required for this paper. For Examiner’s Use
• You must not use a calculator.
Question Mark
Instructions
1
• Use black ink or black ball-point pen. Use pencil only for drawing.
• Answer all questions. 2–3
• You must answer the questions in the spaces provided. 4–5
• If you need extra space for your answer(s), use the lined pages at the end of 6–7
this book. Write the question number against your answer(s).
• Do all rough work in this book. Cross through any work you do not want 8–9
to be marked. 10–11
• Questions that require a coded solution must be answered in Python.
12
• You should assume that all indexing in code starts at 0 unless stated otherwise.
13–14
15
Information
The total number of marks available for this paper is 90. TOTAL
Advice
For the multiple-choice questions, completely fill in the lozenge alongside the appropriate answer.
CORRECT METHOD WRONG METHODS
If you want to change your answer you must cross out your original answer as shown.
If you wish to return to an answer previously crossed out, ring the answer you now wish to select
as shown.
*JUN2485251B01*
IB/G/Jun24/G4005/E11 8525/1B
,GCSE Computer Science: Paper 1 - Computational Thinking and Programming Skills
(Python)
The GCSE Computer Science Paper 1: Computational Thinking and Programming Skills (Python) is scheduled
for May 2025. This paper focuses on computational thinking, problem-solving, and programming skills,
specifically using the Python programming language.
Key Areas Covered:
1. Computational Thinking
o Decomposition: Breaking down complex problems into smaller, manageable parts to solve.
o Pattern Recognition: Identifying patterns within data or problems that can lead to more efficient solutions.
o Abstraction: Focusing on essential information while ignoring unnecessary details to simplify problem-solving.
o Algorithmic Thinking: Developing clear algorithms to solve problems using logical steps.
2. Algorithms
o Key Algorithms: Understanding and using fundamental algorithms such as:
Linear Search: A method for finding an item in a list by checking each element.
Binary Search: A more efficient search method for sorted lists, halving the search space at each step.
Sorting Algorithms: Sorting data using methods like bubble sort, merge sort, and quick sort.
o Representing Algorithms: Expressing algorithms through pseudocode and flowcharts to ensure clarity and
structure in problem-solving.
o Efficiency: Analyzing the time complexity of algorithms and how efficient they are in terms of speed and memory
usage.
3. Programming Concepts
o Variables and Data Types: Using variables and understanding data types such as int, float, str, and bool in
Python.
o Control Structures: Writing Python code with if-else statements, for loops, while loops, and elif to control
program flow.
o Functions: Defining functions, passing parameters, and returning values to make code reusable and modular.
o Error Handling: Using try-except blocks to handle potential errors in Python code.
4. Python Programming
o Syntax and Code Structure: Writing Python programs with proper syntax, indentation, and structure.
o Lists and Arrays: Using lists to store collections of items and manipulating them (e.g., accessing, modifying, and
iterating).
o Dictionaries: Storing data as key-value pairs using Python dictionaries.
o String Manipulation: Performing operations on strings, such as concatenation, slicing, and finding characters
within a string.
5. Data Representation
o Binary Representation: Understanding how computers store data in binary and converting between binary and
decimal.
o Character Encoding: Using ASCII and Unicode to represent characters and text in Python.
o Data Storage: The importance of data representation using bits and bytes, and understanding different storage
units (kilobytes, megabytes, etc.).
6. File Handling
o Reading and Writing Files: Using Python to open, read, and write data to files (e.g., text files, CSV files).
o File Operations: Performing operations like appending, editing, and closing files in Python.
7. Software Development Life Cycle (SDLC)
o Phases of SDLC: Understanding the stages of software development, including planning, design, testing, and
deployment.
o Application of SDLC: Using SDLC principles to create structured, effective software solutions with Python.
8. Testing and Debugging
o Error Types: Identifying syntax errors, runtime errors, and logic errors in Python code.
o Testing: Creating test cases to verify the functionality of Python programs.
o Debugging: Using Python's built-in debugging tools (e.g., print() statements, debuggers) to troubleshoot and
fix issues.
9. Ethical, Legal, and Environmental Issues
o Ethics in Programming: Understanding the ethical implications of programming, such as privacy, security, and
responsible programming practices.
o Impact on Society: Considering the societal impact of computing, including issues related to data protection,
copyright, and the environment.
, 2
Do not write
outside the
Answer all questions. box
0 1Figure 1 shows an algorithm, represented using pseudo-code.
The algorithm assigns different values to two variables, then asks the user to input
a letter.
Figure 1
film "Godzilla vs. Kong"
year 2021
OUTPUT "Please guess a letter"
letter USERINPUT
0 1 . 1 Which pseudo-code statement assigns the length of the string film to a variable
called value?
Shade one lozenge.
[1 mark]
A film LEN(value)
B film film + value
C value film
D value LEN(film)
0 1 . 2 The POSITION subroutine returns the position of the first occurrence of a character in
a string.
For example:
• POSITION("Godzilla vs. Kong", "o") would return 1
• POSITION("Godzilla vs. Kong", "z") would return 3
letter and film are variables used in the algorithm in Figure 1.
Complete the pseudo-code statement to find the position of the first occurrence of the
contents of letter in film and store this position in the variable location
You must use the POSITION subroutine in your answer.
[1 mark]
location
*02*
IB/G/Jun24/8525/1B
, 3
Do not write
outside the
0 1 . 3 Which of the following would be the most suitable data type for the variable year? box
Shade one lozenge.
[1 mark]
A Boolean
B character
C integer
D real
0 1.4 Describe what is meant by an assignment statement in a program.
[1 mark]
Question 1 continues on the next page
Turn over ►
*03*
IB/G/Jun24/8525/1B