All subjects · Computer Science · WCP04 Advanced Practical Programming and Problem-solving
The Unit 4 on-screen exam: how it works and how to tackle it
Edexcel IAL Computer Science · WCP04 Advanced Practical Programming and Problem-solving
Unit 4 is a practical exam taken on a computer: you write, amend and test Python 3 code. Knowing exactly how it runs, and practising the kinds of task it sets, is worth as many marks as any single topic.
The paper
- 3 hours, 80 marks, five compulsory questions, worth 25% of the International A level.
- You work on screen in Python 3, using an IDE of your choice. AI code generation tools must be disabled, and there is no internet access.
- You receive a printed question paper, the digital code and data files, and the digital Programming Language Subset (PLS), which lists the Python features the paper may need. You may use other valid Python too.
- First assessed in June 2028 for this specification.
Files and saving
- Each question has a supplied file (such as Q01.py). Save your answer under the filename given in the question (in the sample paper, Q01FINISHED.py and so on) in the folder named in the instructions.
- Never overwrite the original code or data files.
- Save regularly. Only the saved files are marked.
- Do not change the intended functionality of provided code, and do not add features that were not asked for.
The kinds of question
The sample assessment shows the range, with marks rising through the paper:
- Fix errors in a given program (syntax, logic, name and attribute errors), for example in a program using regular expressions.
- Rework code in a paradigm: make a function pure, write a lazily evaluated generator.
- Complete an object-oriented program so its output matches a sample exactly.
- Implement a data structure such as a binary search tree with insert and a recursive traversal, working for data of any length.
- Solve a larger problem (for example scoring a competition) with efficient, clean, working code, without altering the original data.
Marks are awarded for specific points, usually tied to lines of the supplied code, and equivalent correct answers are accepted.
Technique
- Read the whole question and the provided code before typing. Note the exact names, parameters and output format required.
- Budget your time by marks: 180 minutes for 80 marks is about 2.25 minutes per mark.
- Build and run in small steps; test with the given data and with your own boundary cases (empty list, one item, ties).
- Follow the clean-code rules: meaningful names, named constants, comments, sensible structure. They are part of what is assessed in the larger tasks.
- If you are stuck, get a partial solution that runs: marks are given for individual points.
- Leave time to rerun every saved file from scratch to check it still works.
Worked example
A 20-mark question asks you to write a scoring program. How long should you spend, and how should you start?
- Time: 20 marks x 2.25 minutes per mark = 45 minutes, about 45 minutes.
- Start: read the specification, list the inputs, processing and outputs, and note the required output format.
- Decompose into functions (load, score, rank, display), write and test one at a time with the supplied data.
- Save under the required filename after each working step.
Answer: About 45 minutes, starting with a decomposition and building in small, tested steps.
Check yourself
- The Unit 4 paper lasts 3 hours and has 80 marks. How many minutes is that per mark?
Show answer
2.25 minutes. 180 minutes / 80 marks = 2.25 minutes per mark.
- Using the rate of 180 minutes for 80 marks, how many minutes should you allow for a 12-mark question?
Show answer
27 minutes. 12 x 2.25 = 27 minutes.
- How many questions must you answer on the Unit 4 paper?
Show answer
5. There are five questions and all are compulsory.
- You have finished amending Q03.py. What should you do with it?
- Overwrite Q03.py with your version
- Save it under the filename the question gives, in the required folder, leaving the original file unchanged
- Copy your code into the question paper booklet
- Email it to the invigilator
Show answer
Save it under the filename the question gives, in the required folder, leaving the original file unchanged. The instructions say to save new or amended code under the specified name and not to overwrite the original files.
- What is the Programming Language Subset (PLS)?
- A list of banned Python keywords
- A library you must import in every answer
- The mark scheme
- A document listing the Python features the paper may require, provided digitally in the exam
Show answer
A document listing the Python features the paper may require, provided digitally in the exam. Questions are set within the PLS, but other valid Python is still credited.
- A question asks you to make a function pure. Which action is most likely to lose you marks?
- Returning a new list instead of changing the argument
- Rewriting the rest of the program and adding new menu options
- Testing the function with the supplied data
- Adding a short comment explaining the change
Show answer
Rewriting the rest of the program and adding new menu options. Candidates are told not to change the intended functionality or add functionality that was not asked for.
- You cannot get the final part of a question working with 10 minutes left. What is the best strategy?
- Delete the whole answer and start again
- Leave the file unsaved until it is perfect
- Spend the remaining time on decoration of the output
- Make sure the parts that work run and are saved, since marks are given for individual points
Show answer
Make sure the parts that work run and are saved, since marks are given for individual points. Point-based marking rewards each correct element, so a saved, running partial solution scores.
Sources
- Pearson Edexcel International Advanced Subsidiary/Advanced Level in Computer Science specification, Issue 1 (March 2026)
- Pearson Edexcel IAL Computer Science Unit 4 Programming Language Subset (PLS)
- Pearson Edexcel IAL Computer Science sample assessment materials (Unit 3 and Unit 4)
- Pearson qualifications: International Advanced Level Computer Science (2026)
Last updated 8 November 2026. Spotted a mistake? Tell us.