Table of Contents
A Cambridge 9618 student, or more often their parent, asks this within the first month. Python or Java? It is asked as though it were the decision that shapes the whole course. It is worth answering carefully, and the first useful thing to say is that the choice reaches exactly one of the four papers.
Where the language actually matters
- Paper 1, Theory Fundamentals. An hour and a half, 75 marks, sections 1 to 8. Written, no code.
- Paper 2, Fundamental Problem-solving and Programming Skills. Two hours, 75 marks, sections 9 to 12. Answers must be written in pseudocode.
- Paper 3, Advanced Theory. An hour and a half, 75 marks, sections 13 to 20. Written, no code.
- Paper 4, Practical. Two and a half hours, 75 marks, sections 19 and 20 excluding low level and declarative programming. Taken on a computer without internet or email, submitting complete program code and evidence of testing, in Java, Visual Basic or Python, all in console mode.
At A Level each of the four is worth a quarter. At AS Level only Papers 1 and 2 are taken and they are worth half each, which produces a fact worth pausing on: an AS Level Computer Science candidate never writes a line of real code in an examination. Everything they are assessed on is theory and pseudocode.
Two consequences of that, both practical
First, a student who has spent a year happily coding in Python and never writing pseudocode will meet Paper 2 badly, and Paper 2 is half the AS. Second, no calculator is permitted in any of the four papers, which surprises candidates every year.
What Paper 4 examines
Paper 4 draws on sections 19 and 20, which is algorithms and recursion, programming paradigms, and file processing and exception handling. That last pairing is the one to think about when choosing a language, because it is where the three candidates genuinely differ in the exam room rather than in theory.
Worth flagging for anyone arriving from an American curriculum: recursion is examined here, in section 19.2. It was removed from AP Computer Science A in the 2025-26 revision, so a student sitting both will find it dropped from one and required in the other.
The same task in Python and Java
Here is a Paper 4 shaped problem, small but complete: read scores from a file, average them, and handle the file not being there. This is Python.
def load(filename):
total = 0
count = 0
try:
with open(filename) as f:
for line in f:
name, score = line.strip().split(",")
total = total + int(score)
count = count + 1
except FileNotFoundError:
print("File not found:", filename)
return 0
return total / count
print(load("scores.txt"))
print(load("missing.txt"))
69.33333333333333
File not found: missing.txt
0
And Java, doing the identical thing.
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class ReadScores {
public static double load(String filename) {
int total = 0;
int count = 0;
try {
Scanner file = new Scanner(new File(filename));
while (file.hasNextLine()) {
String[] parts = file.nextLine().split(",");
total = total + Integer.parseInt(parts[1]);
count = count + 1;
}
file.close();
} catch (FileNotFoundException e) {
System.out.println("File not found: " + filename);
return 0;
}
return (double) total / count;
}
public static void main(String[] args) {
System.out.println(load("scores.txt"));
System.out.println(load("missing.txt"));
}
}
69.33333333333333
File not found: missing.txt
0.0
Both average the same file to 69.33333333333333 and both take the missing file branch. Java prints 0.0 where Python prints 0, which is the languages telling you something true about themselves. The real difference is length. The Python function is 13 lines and the Java method is 17, and in a two and a half hour paper with several questions that difference compounds into real time.
Choosing between the three
Python is the right default and the one most 9618 candidates use. File handling is short, exceptions are named in something close to English, and less typing means more of the exam is spent on the problem. Its weakness is real though: dynamic typing means a type error that Java would refuse to compile will sit quietly in Python until the line runs, which in a timed practical is exactly when you do not want to find it.
Java is the better choice for a student who is also sitting AP Computer Science A, or heading toward a degree that will start them in Java anyway. The compiler is an ally under exam pressure, because it catches a whole category of mistake before submission, and checked exceptions mean the language will not let you forget to handle the missing file. You pay for that in typing.
Visual Basic is a legitimate choice and the syllabus is specific about it: any .NET version, in console mode, and explicitly not Visual Basic 6.0 or earlier. Choose it if the school teaches it and the teacher marks in it. Choose it reluctantly otherwise, not because it is a bad language but because the pool of practice material and online help is much smaller than for the other two.
Pseudocode is not optional
The most common mistake we see in 9618 students is not choosing the wrong language, it is quietly deciding that pseudocode is the thing you write when you cannot be bothered to write real code. Paper 2 is two hours and a quarter of the A Level, and it must be answered in pseudocode. The Cambridge notation has its own rules, and at this level they differ from the IGCSE ones a student may already have learned.
FUNCTION CountEntries(FileName : STRING) RETURNS INTEGER
DECLARE LineOfText : STRING
DECLARE Count : INTEGER
Count <- 0
OPENFILE FileName FOR READ
WHILE NOT EOF(FileName)
READFILE FileName, LineOfText
IF LENGTH(LineOfText) > 0 THEN
Count <- Count + 1
ENDIF
ENDWHILE
CLOSEFILE FileName
RETURN Count
ENDFUNCTION
Note the shape. FUNCTION carries a declared return type, DECLARE introduces the locals, assignment is the left arrow, files are handled with OPENFILE and READFILE and CLOSEFILE with EOF as the loop test, and every block closes with the keyword that opened it. A student fluent in this writes Paper 2 answers at speed. A student translating from Python in their head does not.
If the student came through IGCSE 0478
Do not assume the notations are identical, because they are not. Two differences catch people immediately. DIV and MOD are written as functions at IGCSE, as in DIV(10, 3), and as operators at A Level, as in 10 DIV 3. And THEN sits on its own line under the IF at IGCSE, while at A Level it sits at the end of the IF line. Read the guide for your own exam year rather than carrying assumptions up from the previous course.
How we prepare students for the practical
Paper 4 is the component where teaching quality shows most, because it is the only one where a student cannot bluff. Two and a half hours on a computer with no internet, submitting code and evidence of testing, is an honest test of whether somebody can actually program. The preparation that works is unglamorous: write programs, under time, with the internet closed, and have somebody read the code afterwards.
Our Cambridge A Level Computer Science classes are live, one to one or in a batch of five to eight students, taught from India to students worldwide. We teach the chosen language and the Cambridge pseudocode in parallel from the start, because Paper 2 and Paper 4 are two different skills and a student who neglects either has capped their grade at seventy five per cent. The first class is free.
Pick the language in the first month, then stop thinking about it. Students who switch in the second year lose more to the switch than they would ever have lost to the wrong choice.
, The advice we give every 9618 family
Frequently asked questions
Technically yes, and it is usually a mistake. The cost is not learning new syntax, it is losing the fluency that makes a two and a half hour practical survivable. If a change is genuinely needed, make it in the first term and not after.
It is easier to write quickly, which matters in a timed practical. It is not easier to write correctly, because the errors Java refuses to compile will happily run in Python and produce a wrong answer instead of a refusal. Neither language decides a grade.
No graphical interface. Input and output through text. All three permitted languages must be used this way for Paper 4, so time spent learning to build windows is time that earns nothing in this exam.
For Paper 4, yes, in practical terms, because the exam is taken on a computer without internet access. Whatever they cannot recall, they cannot look up. This is the strongest argument for choosing the language they use most rather than the one that sounds most impressive.
Yes, in section 19.2, and it appears in Paper 4's scope. This is worth flagging because AP Computer Science A removed writing recursive methods in its 2025-26 revision, so a student sitting both qualifications has to hold two different content boundaries in their head.
Similar in spirit, different in specifics, and the differences are exactly the kind that cost marks. Assignment and keyword conventions carry over, but DIV and MOD change from functions to operators and the A Level notation covers structures IGCSE never introduces.
Complete program code together with evidence of testing. The testing evidence is not an afterthought, and candidates who leave it until the last ten minutes of the two and a half hours consistently lose marks that were available to them for free.