Edexcel Computer Science (1CP2) — Paper 1 & Paper 2 Exam Preparation
Know Your Question Types
Paper 1 is worth 50% of your GCSE (1h 30m). Five compulsory questions, each with multiple parts covering a single topic. Understanding command words is key to full marks.
Multiple Choice
1 mark each
identify · select
Short Open Response
1–2 marks
give · name · state · define
Medium Open Response
2–4 marks
describe · explain
Convert / Construct
2–6 marks
convert · construct · calculate
Complete / Draw
2–6 marks
complete · draw
Extended Response
6 marks
discuss
🔘 Multiple Choice
Four answers — cross (✗) the correct one. Changed your mind? Line through and re-mark.
⚡ EXAM TIP Wrong answers are designed to look plausible. Read every option before selecting.
Example: Identify the protocol used to receive emails stored on a server. FTP / HTTP / IMAP / SMTP → Answer: IMAP (SMTP sends; IMAP receives)
📝 Short Open Response
Command words: give, name, state, define. Recall one or more facts — keep it short.
⚡ EXAM TIP Don't repeat information already given in the question. "Source" = "sender" — the examiner will spot it.
Example: Two items in a packet header are IP addresses of sender and recipient. Give two other pieces. (2)
Answer: Sequence number / Total number of packets / Checksum
📄 Medium Open Response
Describe = give an account (match points to marks). Explain = state a point + support with reasoning.
⚡ EXAM TIP Use phrases like "this is because…" and "this means that…" to expand your points when explaining.
Example: Explain how a single-CPU computer can multitask. (3)
A single CPU executes one instruction at a time. A scheduling algorithm allocates time slots to each process. By switching rapidly between them, it creates the illusion of simultaneous execution. ✅ 3/3
🔄 Convert / Construct
Convert = change between representations (binary ↔ denary ↔ hex). Construct = build a mathematical expression.
⚡ EXAM TIP Show your working! Even if your final answer is wrong, you earn marks for a correct method.
✏️ Complete / Draw
Fill in diagrams, tables, trace tables, or algorithms. Draw means produce a diagram.
⚡ EXAM TIP Don't waste time drawing realistic devices — simple labelled boxes are fine. Answer the question being asked, not the one you think is being asked.
📚 Extended Open Response (6 marks)
One "discuss" question per paper. Marked using levels: L1 (1–2), L2 (3–4), L3 (5–6). Plan your answer, use technical vocabulary, link points logically, apply to the context given.
⚡ EXAM TIP Spend 1–2 minutes planning before writing. A coherent structure is the difference between Level 2 and Level 3.
Paper 1 — Practice Questions
1 markVariables
Define the term 'variable'.
✅ Model Answer
A named unit of data assigned a value, which may change while the program executes.
⚡ NOTE Also accept: "A memory location used to store a value which may change during execution."
1 markProtocols
State the purpose of network protocols.
✅ Model Answer
Protocols establish the rules that enable networked devices to communicate and transmit data to each other.
3 marksColour Depth
An image file uses 24-bit colour depth. Describe how 24 bits are used to represent colour.
✅ Model Answer (3 points)
1. 8 bits are allocated to each of the three primary colours (red, green, blue). 2. 3 × 8 = 24 bits per pixel, allowing 224 (≈16.7 million) different colours. 3. These 24 bits represent the colour of each individual pixel.
3 marksCPU / Multitasking
Explain how a computer with a single CPU can multitask.
✅ Model Answer
A single CPU can only execute one instruction at a time. A scheduling algorithm allocates time slots to each active process. Processes are held in a queue. The OS switches between them rapidly, creating the illusion of simultaneous execution.
2 marksSubprograms
Explain one benefit of using subprograms.
✅ Model Answer
It makes a problem easier to solve (1) by decomposing it into simpler steps (1).
Also accept: reusability (saved in libraries), readability (named subprogram calls), easier testing.
⚡ NOTE No marks for just defining 'subprogram'. You must state a benefit + explain why.
2 marksData Representation
Construct an expression to show the time needed to transmit a 10 KiB file at 10 Mbps.
Name the method of storage for each device: • Hard drive (metal platters, iron oxide, spinning) • CD (pits, laser, reflected light) • USB stick (no moving parts, electrical charge)
✅ Model Answer
Hard drive → Magnetic CD → Optical USB stick → Solid state
⚡ NOTE Common mistake: naming the device again instead of the storage method.
6 marksSecurity
A group of programmers is developing a networked software application that must be robust.
Discuss how the programmers could minimise security vulnerabilities in the code during development.
Consider: reasons why vulnerabilities occur · what can be done to prevent them
✅ Level 3 Model Answer (6/6)
A security vulnerability is a flaw that could be exploited by hackers to steal data or introduce malware. Known language-specific vulnerabilities should be avoided.
Well-structured software needs proper planning — sufficient time for design with security factored in from the start.
Bad practices under time pressure cause problems: skipping coding standards, insufficient testing, using unchecked library modules that may contain vulnerabilities.
Regular code reviews by experienced programmers identify bad practice and security issues. An audit trail tracks who changed what and when, allowing vulnerabilities to be traced back to source. Code analysis tools and comprehensive modular testing further minimise risk.
The 6-mark "discuss" question uses levels-based marking. The examiner reads your whole response, matches it to a level, then picks the higher or lower mark within that level.
Level
Marks
Descriptor
0
0
No rewardable content.
1
1–2
Basic, independent points showing some understanding. Little linkage or context application.
2
3–4
Adequate understanding. Some linkage and structure with some application to context.
3
5–6
Comprehensive understanding. Sustained, coherent, logically structured reasoning applied to context.
🎯 Hitting Level 3
Plan first — 1–2 minutes jotting key points
Use technical vocabulary — shows understanding
Link your points — don't just list facts
Apply to context — refer to the scenario
Structure — clear paragraphs with reasoning chains
Paper 2 — Application of Computational Thinking
Paper 2 is worth 50% of your GCSE (2 hours). It focuses on Topics 1 and 6 — computational thinking and problem-solving skills. You'll write and amend real Python code on a computer.
🖥️ What You Need
A computer workstation with an IDE that shows line numbers
A 'STUDENT CODING' folder with provided code and data files
Printed copies of the Programming Language Subset (PLS) document
📋 Command Words for Paper 2
These are different from Paper 1:
Amend — modify code so it performs differently or to correct an error. Includes adding, deleting, or rearranging lines.
Write — create or manipulate program code from scratch.
Open — open the named file in your IDE (not a command word as such).
Save — save your amended files to your secure exam profile user area.
⏱️ Time Allocation
Each question has a suggested time. The two questions from the textbook are:
Question 1: Flowchart to code — 20 minutes · 13 marks
Question 2: File processing & data — 25 minutes · 15 marks
You may need slightly less or slightly more than the suggested time. Balance your time to finish the whole paper.
⚡ KEY DIFFERENCE FROM PAPER 1
Paper 2 is entirely practical — you type real code in a real IDE. There are no written essay answers. The marks come from your code working correctly, being well-structured, and following good programming practices.
Question 1 — Flowchart to Code 13 marks · 20 min
📜 The Task
A program is needed for the algorithm shown in a flowchart. You are given a file with global variables and a showMenu() subprogram. You must implement the logic from the flowchart.
The flowchart shows a menu system that:
Loops while validChoice is False
Calls showMenu() to display options
Gets user input
Validates the input is between 1 and 3
Outputs "Invalid Choice" or sets validChoice = True
Outputs "You entered option " + the choice
📎 Provided Code
1# Global variables 2validChoice = False# Assume everything is invalid 3userChoice = 0# Set to an invalid value 4 5# Subprograms 6defshowMenu():
7print("Option 1")
8print("Option 2")
9print("Option 3")
1011# ====== Write your code here ======1213print("You entered option " + str(userChoice))
CODING CHALLENGE
Write the code that goes between line 11 and line 13. Think about: • What type of loop does the flowchart show? • How do you validate the input range? • When does the loop stop?
✅ Model Answer (13/13)
while validChoice == False: #Loop until user enters valid optionshowMenu()
userChoice = int(input("Enter an option: "))
if userChoice >= 1and userChoice <= 3: #Check for valid input
validChoice = Trueelse: #Invalid inputprint("Invalid option, try again")
📊 Mark Breakdown
While loop (1)
Check for False using not or == False (1)
Call to showMenu() inside loop (1)
Get user input with input() (1)
Convert to integer with int() (1)
Range check with relational operators >=1, <=3 (1)
Two-stage or nested selection: if/else (1)
Appropriate error message (1)
Concatenation for output string (1)
Meaningful comments (1)
Solution is robust, functional, meets requirements (3)
⚡ EXAMINER VERDICT
13 out of 13. The solution is fully functional, meets all requirements; outputs are accurate; robust within the problem constraints. Comments are sufficient and valid — you don't need excessive comments, just enough to show your understanding.
⚡ KEY EXAM TIP FOR Q1
This is about translating a flowchart to code. Remember: each symbol maps to a code construct, not always to a single line. The decision box tests for a loop condition — in the flowchart "validChoice = False?" with an arrow looping back tells you it's a while loop. The menu call and input happen inside the loop.
Question 2 — File Processing 15 marks · 25 min
📜 The Task
A program is needed to find the average movie rating and count how many movies are rated above average. Data is in a text file called MovieRatings.txt.
Each record contains: ID number, movie name, and rating — separated by commas.
Requirements:
Input: Load data from the file into an internal data structure
Process: Work with any number of movies; calculate average rating (fractional parts rounded up to next integer, e.g. 6.4 → 7); count movies rated above average
Output: Display average rating message; display count of movies above average
📁 Sample Data File
122,Two Lost Worlds,3
244,The Man in the White Suit,8
366,Red Planet Mars,7
488,The Magnetic Monster,2
511,Creature from the Black Lagoon,8
633,Tarantula,5
755,Forbidden Planet,9
877,The Unearthly,8
999,The Blob,6
10122,Journey to the Centre of the Earth,7
CODING CHALLENGE
You're given the file name constant, import for math, and empty global variables. Write the subprograms and main program to meet the requirements. Think about decomposition — what subprograms do you need?
✅ Model Answer (13/15)
import math
FILENAME = "MovieRatings.txt"
file = []
average = 0.0
count = 0defloadFile():
f = open(FILENAME, "r")
text = f.readlines() #Read all contents as array
data = []
for line in text:
lin = line.strip() #Remove newline char
l = lin.split(",")
data.append(l)
return data
defcalculateAverage(table):
total = 0for record in table:
rating = int(record[2])
total += rating
return math.ceil(total / len(table))
defcountAboveAverage(average, table):
count = 0for record in table:
rating = math.ceil(float(record[2]))
if rating > average:
count += 1return count
print("Loading data...")
file = loadFile()
average = calculateAverage(file)
count = countAboveAverage(average, file)
print("Average film rating:", average)
print("Number of films rated higher than average:", count)
📊 Points-Based Marks
Inputs: Opens file (1), Closes file (1)
Process: Stores records in data structure (1), Converts rating to integer (1), Uses math.ceil() for rounding up (1)
Outputs: Appropriate messages (1)
📊 Levels-Based Marks (max 9)
Solution design (3): Well decomposed into subprograms, clear IPO separation, appropriate data structures
Good programming practices (3): Meaningful variable names, effective comments, clean layout with whitespace
Functionality (3): Fully functional, accurate outputs, robust within constraints
⚡ EXAMINER VERDICT — 13/15 Lost marks: Does not explicitly close the file (no f.close()) — no mark earned but no levels-based mark lost either since Python/OS handles cleanup. Does not convert rating to integer before storing — good practice is to convert on read, not every time it's used.
Earned: Solution design is clear with well-decomposed subprograms. Code is readable with meaningful names and comments. Program is fully functional and robust.
💡 Strategy for File Processing Questions
Read the requirements carefully — note inputs, process steps, and outputs
Inspect sample data — understand the format (delimiter, data types)
Decompose into subprograms — one for loading, one for each calculation
Consider data types — split() gives strings; convert ratings to int or float
Remember math.ceil() — "round up to next integer" means ceiling, not round()
Close your files — or better yet, use with open(...) as f:
Paper 2 — Exam Tips Flashcards
Click to flip. These tips are specific to the on-screen coding exam.
Paper 2 — Quick Quiz
Score: 0 / 0
Paper 2 — Marking Guide
Paper 2 uses two marking methods: points-based marks for specific code features, plus levels-based marks for overall quality.
📌 Points-Based Marks
Each specific feature earns 1 mark. Examples from Q1:
While loop (1)
Check for False using not or == False (1)
Call to showMenu() (1)
Get user input (1)
Convert to integer (1)
Range check with relational operators (1)
Error message for user (1)
Concatenation for output (1)
Meaningful comments (1)
📐 Solution Design (Levels)
0
1
2
3 (Max)
No rewardable content
Little decomposition. Some component parts visible but incomplete. Limited use of variables and data structures.
Some decomposition attempted. Most components visible. Mostly appropriate variables and data structures.
Clearly decomposed into component parts. Logic is clear and appropriate. Variables and data structures appropriate to the problem.
✨ Good Programming Practices (Levels)
0
1
2
3 (Max)
No rewardable content
Little layout attempt. Some meaningful variable names. Limited or excessive commenting.
Some layout attempt. Mostly meaningful names. Some appropriate commenting, may be excessive.
Effective layout with sections and whitespace. Meaningful names and subprogram interfaces. Effective comments to explain logic.
⚙️ Functionality (Levels)
0
1
2
3 (Max)
No rewardable content
Incorrect/incomplete parts. Limited accuracy. Not robust — may crash on anticipated input.
Complete, meets most requirements. Mostly accurate. Responds predictably to most input. May not be robust.
⚡ REMEMBER
Some items lost in points-based marks are not deducted twice. For example, if you miss a close() call, you lose the point but it doesn't also affect your levels marks. The examiner assesses overall quality for levels.