Menu

Edexcel GCSE Computer Science (1CP2) Exam Questions

Build a practice paper from 514 exam-style questions, each with its mark scheme and example answers. Print it, or answer it on paper and then open the mark schemes. Or browse the questions by topic.

Build a paper

Topics (none ticked: all of them)
Question types (none ticked: all of them)

Practice paper

8 questions · 22 marks

Pick again
Print
1Multiple choice1 markTranslators Swap Remove

Identify the type of translator that translates the whole program into machine code before it is run.

[1 mark]
  • AAssembler
  • BCompiler
  • CInterpreter
  • DLinker
Mark scheme
  • B Compiler (1)
  • The only correct answer is B. The correct answer is compiler.
  • A is not correct because an assembler translates assembly language code into machine code, not a high-level program
  • C is not correct because an interpreter translates and executes the code line by line, without producing a complete machine code program first
  • D is not correct because a linker combines object code files into a single executable, it does not translate source code
Example answers and how they were marked
Full marks1/1

B Compiler

Why: Selected the compiler, the translator that translates the whole program into machine code before it is run (1).

No marks0/1

C Interpreter

Why: Near miss: an interpreter translates and executes the code line by line, so it does not translate the whole program into machine code before it is run.

No marks0/1

A Assembler

Why: Confuses the translators: an assembler translates assembly language code into machine code, it does not translate a high-level program as a whole.

2Short recall1 markTranslators Swap Remove

An interpreter translates high-level code.

State what happens to the translation of a program when an interpreter finds a syntax error.

[1 mark]
Mark scheme

Award one mark for any of the following:

  • Translation/execution stops (when the error is found) / the rest of the program is not translated/executed (1)

Allow stops/terminates/halts when the error is found

Do not accept shows/displays an error message on its own

Do not accept the whole program is translated and errors are reported at the end

Do not accept translates line by line on its own

Example answers and how they were marked
Full marks1/1

The translation stops as soon as the error is found, so the rest of the program is not translated.

Why: Translation stops when the error is found (1).

No marks0/1

An error message is displayed.

Why: Only an error message; it does not say translation stops, and the scheme does not accept a displayed error message on its own.

No marks0/1

The whole program is translated and all the errors are reported at the end.

Why: Describes a compiler; the scheme does not accept errors being reported at the end of translating the whole program.

3Short recall2 marksLow and High Level Languages Swap Remove

Programs written in a high-level language are often machine independent.

Define the term machine independence.

[2 marks]
Mark scheme

Award one mark for any of the following up to a maximum of two marks:

  • The (same) program/source code can run on different types/makes of computer/processor (1)
  • With few/no changes (to the program code) (1)
  • The same source code can be translated for each type of processor (1)
  • A different compiler/interpreter is used for each type of processor (1)
  • The program does not depend on one specific type of processor/hardware (1)
  • Only one version of the program needs to be written/kept (1)
  • The program is portable between different computers (1)

Allow 'different computers' as meaning different types of computer/processor.

Do not accept a program that will only run on one type of computer / the computer it was written on.

Do not accept written in machine code/binary, is translated into machine code, compiled/interpreted, is a low-level language.

Example answers and how they were marked
Full marks2/2

The same program can run on different types of computer (1) without being changed (1).

Why: Two creditworthy parts: runs on different types/makes of computer/processor (1); with few/no changes (1).

Some marks1/2

A program can run on different computers.

Why: Creditworthy point: can run on different types/makes of computer/processor (1), with 'different computers' allowed by the guidance. No second part about changes or translation.

No marks0/2

A program is written in machine code so the computer can understand it.

Why: Misconception: machine code is not machine independence; the mark scheme does not accept this, and no other creditworthy point is given.

4Describe2 marksTranslators Swap Remove

A compiler and an interpreter both translate source code.

Describe one difference between what a compiler produces and what an interpreter produces.

[2 marks]
Mark scheme

Award up to two marks for a linked description such as:

  • A compiler produces object code/machine code/an executable (file) (1) whereas an interpreter produces no object code/translated file (1)
  • A compiler produces a machine code file (1) that can be run on its own/without the compiler/translator being present (1)
  • An interpreter produces no object code/file (1) because it translates and executes each line instead of saving translated code (1)
  • The compiler's output can be saved/stored (1) and run again later, while interpreted code has to be translated again each time it is run (1)

Allow binary for machine code.

Allow executable/an executable for object code.

Do not accept responses about translating the whole program, reporting errors or the speed of execution.

Do not accept 'the interpreter translates/executes one line at a time' on its own: this is how it translates, not what it produces. It earns the development only when linked to no object code/translated file being produced.

Do not accept the interpreter producing object code/an executable.

Example answers and how they were marked
Full marks2/2

A compiler produces object code, which is saved as a file, whereas an interpreter does not produce a file because it translates and executes each line.

Why: Compiler produces object code (1) contrasted with the interpreter producing no object code/translated file (1).

Some marks1/2

The compiler produces machine code.

Why: Machine code/object code produced (1); there is no contrast with the interpreter, so the development is not earned.

No marks0/2

The interpreter produces object code for each line it translates.

Why: Reverses the translators' outputs: the interpreter produces no object code, so nothing is creditworthy.

5Explain2 marksLow and High Level Languages Swap Remove

High-level languages are designed to be easier to learn than low-level languages.

Explain one reason why a high-level language is easier to learn than a low-level language.

[2 marks]
Mark scheme

Award up to two marks for a linked explanation such as:

  • Statements are written in English-like words/use maths symbols (1) so the programmer can understand more easily what each one does (1)
  • The language uses meaningful names for variables/structured constructs such as loops (1) so the code is easier to read/follow (1)
  • One statement translates into several machine code instructions (1) so there are fewer instructions to learn/understand for the same task (1)

For both marks, the expansion must follow/associate with the statement.

Do not accept 'it is easier' / 'it is simpler' on its own, without saying what is easier/simpler.

Do not accept 'the computer understands it directly' / 'it does not need translating'.

Do not award answers about the program running faster or using less memory, as these are not about ease of learning.

Example answers and how they were marked
Full marks2/2

Statements are written in English-like words (1) so the programmer can understand more easily what each line does (1).

Why: Linked point (1) of English-like statements and reason (1) that these are easier to understand.

Some marks1/2

It uses meaningful names for variables (1) so it is easier.

Why: Point (1) that meaningful names for variables are used, but 'so it is easier' is not accepted as the linked reason.

No marks0/2

Because the computer can understand high-level code without translation.

Why: Misconception that high-level code is understood directly by the computer; no creditworthy characteristic of the language is given.

6Explain2 marksTranslators Swap Remove

A programmer writes a program in a high-level language. The program is translated by a compiler.

Explain why a compiler must translate the whole program before any of it can be executed.

[2 marks]
Mark scheme

Award up to two marks for a linked explanation such as:

  • The compiler produces object code/machine code for the whole program (1) so there is no complete executable until every line has been translated (1)
  • The compiler translates all the source code before producing the object code (1) so the program cannot start until translation has finished (1)
  • The compiler checks the whole program for errors during translation (1) so all of the source code must be read before an executable can be produced (1)

For both marks, the expansion must follow/associate with the statement.

Allow 'in one go'/'all at once' for the translation point, but this does not earn the second mark unless it is linked to why the program cannot be executed until translation has finished.

A statement that the whole program is translated, with no linked reason about when the program can be executed, earns 1 mark only.

Do not accept 'a compiler is faster' or 'compiled code runs faster' on its own; this does not explain why translation must finish before execution.

Do not accept 'it translates and runs the program one line at a time', as this describes an interpreter.

Example answers and how they were marked
Full marks2/2

A compiler produces object code for the whole program, so there is no complete executable until every line has been translated.

Why: Object code for the whole program (1) linked to there being no complete executable until every line is translated (1).

Some marks1/2

A compiler translates the whole program in one go.

Why: Translation of the whole program only (1); no linked reason about when the program can be executed, so the second mark is not awarded.

No marks0/2

A compiler translates and runs the program one line at a time, so it stops when it finds an error.

Why: Confuses a compiler with an interpreter; nothing about translating the whole program before execution, so no creditworthy point.

7Discuss6 marksLow and High Level Languages Swap Remove

A school computing club is creating a quiz game. The game will be written by students who are new to programming. It will store the names and scores of players in a list. The club wants to choose a language that helps the students finish the game quickly and with few errors.

Discuss the characteristics of a high-level programming language that make it suitable for writing the quiz game.

Your answer should include:

  • how easy the language is to learn, use and debug
  • the data structures it provides for storing the players' names and scores
  • the built-in functions and library routines it provides.
[6 marks]
Mark scheme

Indicative content

Ease of learning, use and debug

  • High-level language statements are written in English-like words and mathematical symbols, so the students can read the quiz game code and understand what each line does.
  • The language is easier to learn than a low-level language, so students who are new to programming can start writing the quiz game quickly.
  • Errors are easier to find and fix because the code is readable; for example, the students can check a line that updates a score against the rule they intended.
  • The students do not need to know how the processor carries out each statement, so they can concentrate on the quiz questions and rules.

Data structures

  • High-level languages provide lists or arrays, so the names and scores of all the players can be stored under one name and processed with a loop.
  • A record can store a player's name and score as one item; in some languages a dictionary or class can be used instead, which keeps related data together.
  • Using a data structure makes the code shorter and easier to understand than separate variables for every player's name and score.

Built-in functions and library routines

  • High-level languages provide built-in functions such as print and input, so the students can display a question and read a player's answer without writing the underlying code.
  • Library routines such as a random number generator can be used to choose quiz questions, saving the students time.
  • String-handling routines can check or compare a player's answer, so the students do not have to write these routines themselves.
  • Reusing tested routines reduces the amount of code the students write and can reduce errors in the quiz game.

Levels

  • Level 0 (0 marks): No rewardable content.
  • Level 1 (1–2 marks): Basic, independent points are made, showing elements of understanding of key concepts/principles of computer science. (AO1) The discussion will contain basic information with little linkage between points made or application to the context. (AO2)
  • Level 2 (3–4 marks): Demonstrates adequate understanding of key concepts/principles of computer science. (AO1) The discussion shows some linkages and lines of reasoning with some structure and application to the context. (AO2)
  • Level 3 (5–6 marks): Demonstrates comprehensive understanding of key concepts/principles of computer science to support the discussion being presented. (AO1) The discussion is well developed, with sustained lines of reasoning that are coherent and logically structured, and which clearly apply to the context. (AO2)

Additional guidance: Credit only points applied to the quiz game and the students; comparison with low-level languages is not required, but a correct contrast may support a point if it is applied. Do not award generic claims such as 'high-level programs run faster', 'work on any computer' or 'students do not need to learn syntax' unless they are justified for the quiz game.

Level 3 responses must cover all three bullet areas with linked reasoning that explains why the characteristic helps the students finish the game quickly with few errors; an answer covering only two bullet areas is limited to Level 2. Do not award the idea that high-level code is already machine code or is understood directly by the processor. Accept dictionaries or classes as equivalents of records.

Example answers and how they were marked
Full marks6/6

A high-level language is suitable for the quiz game because its statements use English-like words and mathematical symbols, so students who are new to programming can read the code and see what each part of the quiz does. This also makes the game easier to debug, because the students can compare a line that updates a player's score with the rule they intended. The language gives the students lists or arrays, so all the players' names and scores can be stored under one name, and a loop can then go through the list to display the results. A record, or a dictionary in Python, can keep one player's name and score together, which is clearer than using separate variables. The language also provides built-in functions and library routines such as input, print and a random number generator, so the students do not have to write these from scratch. They can use input to ask for a player's name and print to show the score, and a random number routine to choose a question. This lets the club spend its time on the quiz questions and rules, so the students can finish the game quickly with fewer errors.

Why: Covers all three bullet areas with linked reasoning: readable English-like statements and debugging, lists/records for names and scores, and built-in input/print/random routines, all applied to helping new students finish quickly with fewer errors. This meets Level 3.

Some marks3/6

High-level languages use English words, so the students can understand the code for the quiz game and find mistakes more easily. They provide lists or arrays, so the players' names and scores can be stored together, and a loop can be used to display the scores. This makes the game easier to write for students who are new to programming.

Why: Level 2, 3 marks: covers ease of learning/use and data structures with some application to the quiz game, but gives no built-in facilities and limited development of why this helps the club finish quickly, so it is not Level 3.

No marks0/6

High-level code is already machine code, so the computer can run the quiz game without a translator. The students do not need to learn any syntax.

Why: Contains the machine-code misconception and a generic claim that the scheme does not credit; no creditworthy point is made, so Level 0.

8Discuss6 marksTranslators Swap Remove

A student is writing a program in a high-level language. The student runs the program after every small change to check that it works.

Discuss whether the student should use an interpreter or a compiler while writing and testing the program.

Your answer should include:

  • how each translator deals with a syntax error
  • how much of the program is translated at a time
  • how this affects the student's testing.
[6 marks]
Mark scheme

Indicative content

How each translator deals with a syntax error

  • An interpreter stops as soon as it finds a syntax error and displays an error message.
  • With an interpreter, the lines before the error have already been executed, so the student can see how far the program got before it stopped.
  • A compiler reports errors at the end of translation, so the student gets a list of all the syntax errors in the program in one go.

How much of the program is translated at a time

  • An interpreter translates one line at a time and executes each line immediately.
  • A compiler translates the whole program in one go before any of it is run.
  • A compiler produces object code, so after every change the whole program must be compiled again before the student can run it.
  • An interpreter produces no object code, so the student does not have to wait for the whole program to be translated before it runs.

How this affects the student's testing

  • An interpreter suits this student because the program can be run straight away after each small change.
  • The interpreter stops at the first error found, so the student fixes that error and runs the program again, but may only find the next error on the next run.
  • Reporting every error at the end of compilation means the student can fix several errors at once, but cannot run the program until the whole program compiles.
  • The student should use an interpreter while testing, and compile the finished program once it works.

Levels

  • Level 0 (0 marks): No rewardable content.
  • Level 1 (1–2 marks): Basic, independent points are made, showing elements of understanding of key concepts/principles of computer science. (AO1) The discussion will contain basic information with little linkage between points made or application to the context. (AO2)
  • Level 2 (3–4 marks): Demonstrates adequate understanding of key concepts/principles of computer science. (AO1) The discussion shows some linkages and lines of reasoning with some structure and application to the context. (AO2)
  • Level 3 (5–6 marks): Demonstrates comprehensive understanding of key concepts/principles of computer science to support the discussion being presented. (AO1) The discussion is well developed, with sustained lines of reasoning that are coherent and logically structured, and which clearly apply to the context. (AO2)

Level 3 responses must relate the way each translator works to the student's testing, not just describe the two translators.

Do not accept answers about run-time or logic errors where no comparison of the translators is made.

Example answers and how they were marked
Full marks6/6

The student should use an interpreter while testing. An interpreter translates one line at a time and executes each line straight away, so as soon as the student has made a small change the program can be run without waiting for the whole program to be translated. If there is a syntax error, the interpreter stops at that line and displays an error message, and the lines before it have already been executed, so the student knows exactly where the problem is. A compiler translates the whole program in one go and only reports the errors at the end, so the student would get a list of all the syntax errors, but could not run any of the program until the whole program compiled successfully.

Why: Explains how each translator deals with a syntax error, how much is translated at a time (one line executed immediately against the whole program at once) and links both to the student's testing, with a conclusion. Level 3.

Some marks4/6

An interpreter translates one line at a time and stops when it finds an error, so the student can see where the error is. A compiler translates the whole program and reports all the errors at the end. The interpreter is better for testing because the student can run the program straight away after a change.

Why: Adequate: correct points about error reporting and one line at a time, with a recommendation, but the effect on testing is only asserted rather than reasoned through, so the linkage is not sustained. Level 2.

Some marks1/6

The student should use a compiler because it translates the program one line at a time and stops at the first error, which makes testing quicker.

Why: The roles of the two translators are reversed, so the answer only makes a basic point about testing more quickly. Level 1.

Questions by topic

More ways to revise Edexcel GCSE Computer Science (1CP2)

Teachers: build a paper, print it with the mark schemes at the end, and sign your school up to set your classes activities on every topic.

Fetch Decode Explain isn't affiliated with or endorsed by Pearson Edexcel.