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 · 17 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 recall1 markLow and High Level Languages Swap Remove

A high-level language uses statements that look like English or maths.

State what a single statement in a high-level language is usually translated into.

[1 mark]
Mark scheme

Award one mark for:

  • Several/multiple machine code instructions (1)

The answer must refer to instructions.

Do not accept machine code on its own.

Do not accept binary on its own.

Do not accept 'one or more machine code instructions' as it does not show that one statement becomes several instructions.

Do not accept assembly code/compiled code/low-level code on their own.

Do not accept 'a line of code'/'a statement' as this repeats the question.

Example answers and how they were marked
Full marks1/1

Several machine code instructions

Why: Matches the creditworthy point that one high-level statement translates into several machine code instructions (1).

No marks0/1

Machine code

Why: Near-miss: gives the type of code but not that one statement becomes several instructions; mark scheme does not accept machine code on its own.

No marks0/1

Binary

Why: Misconception: high-level statements are translated into machine code instructions, not just binary; not accepted.

4Short 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.

5Short recall2 marksTranslators Swap Remove

An interpreter is a type of translator.

Define the term interpreter.

[2 marks]
Mark scheme

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

  • Translates/converts (high-level/source) code one line/statement at a time (1)
  • Translates/converts the code and executes/runs each line as it goes (1)
  • Executes/runs each line/statement immediately after it is translated (1)
  • Reports/stops with an error message as soon as a syntax error is found (1)

Allow 'runs' for executes, 'converts' for translates and 'instruction' for line/statement

Do not accept translates the whole program before it is run

Do not accept produces/creates object code, an executable file or machine code that is saved

Example answers and how they were marked
Full marks2/2

An interpreter is a program that translates high-level code line by line. Each line is run as soon as it has been translated, so any errors are shown straight away.

Why: Line-by-line translation (1) and each line executed immediately (1); the point about errors would be a third creditworthy point but the maximum is two.

Some marks1/2

An interpreter translates code one line at a time.

Why: Line-by-line translation (1); no point for immediate execution.

No marks0/2

An interpreter translates the whole program before it is run.

Why: Near-miss describing a compiler; the scheme's 'Do not accept' line rules out whole-program translation.

6Describe2 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.

7Explain2 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.

8Discuss6 marksLow and High Level Languages Swap Remove

A company is developing the firmware for a robotic vacuum cleaner. The firmware must read the distance sensors and control the motors. The vacuum cleaner has a small amount of memory.

Discuss the characteristics of a low-level programming language that make it suitable for writing the firmware.

Your answer should include:

  • control of the hardware
  • the efficiency of the code
  • the link between the language and the processor.
[6 marks]
Mark scheme

Indicative content

Control of the hardware

  • Low-level languages can read and write the contents of registers and memory addresses directly, so the firmware can take the values from the distance sensors without calling a library routine.
  • Assembly language instructions can read from and write to specific input/output ports on the vacuum cleaner's processor, so the motors can be switched on and off directly.
  • The programmer decides exactly which processor operations are carried out and in which order, which matters when the vacuum must reverse away from a step or an obstacle.
  • A low-level language puts nothing between the program and the hardware, so the programmer can control the hardware of the vacuum cleaner precisely.

Efficiency of the code

  • Assembly language code can be hand-optimised instruction by instruction, so the code that checks a sensor is as short as possible.
  • The programmer can choose which registers hold values that are used again and again, which cuts down the number of memory accesses the firmware needs.
  • A hand-written low-level program can be made compact, so it is more likely to fit in the small amount of memory the vacuum cleaner has.
  • Because each instruction does one defined job, the time taken to react to a sensor reading is predictable, which suits firmware that must not overrun.

Link between the language and the processor

  • Low-level languages are processor-specific, so the instructions used are those of the exact processor in the vacuum cleaner rather than general statements that need translating.
  • Each assembly language instruction maps to one machine code instruction, so the programmer knows precisely which processor operation will be carried out by each line of code.
  • An assembler turns each mnemonic into its machine code equivalent, so the machine code running on the vacuum cleaner's processor is exactly what the programmer wrote.
  • Code written for a different processor would have to be rewritten, which is acceptable here because the vacuum cleaner always uses the same processor.

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)

Within Level 1, award 1 mark for a single basic point and 2 marks for two or more independent basic points; Level 2 requires the points to be linked to the vacuum cleaner; Level 3 requires both control of the hardware and efficiency of the code, and a few concise, linked sentences can reach Level 3, so extra length is not required.

Accept registers, memory addresses, input/output ports, machine code and mnemonics as ways of describing access to the hardware, and accept 'a low-level language is faster' as a basic point on its own. Do not award 'binary is a low-level language' (machine code is written in binary, but binary is not a language), or characteristics of high-level languages such as being easy to read or portable, as characteristics of a low-level language.

Example answers and how they were marked
Full marks6/6

A low-level language can read and write to registers and to input/output ports directly, so the firmware can take the distance sensor readings and switch the motors without needing library routines. It can be hand-optimised instruction by instruction, so the code that checks a sensor is short and the time it takes is predictable, and a compact program is more likely to fit in the vacuum cleaner's small memory. The language is processor-specific and each assembly instruction maps to one machine code instruction, so the programmer knows exactly which operation the vacuum's processor will carry out, and the assembled machine code is exactly what they wrote.

Why: Covers all three bullets: direct control of registers and ports applied to the sensors and motors, hand-optimised compact code with predictable timing applied to the small memory, and the one-to-one link to the processor's own instruction set. Linked and applied throughout, so Level 3.

Some marks2/6

A low-level language can control the hardware directly. It can read the sensors and control the motors. It is also faster than a high-level language, so the vacuum responds quickly. This is useful because it has little memory.

Why: Three basic, independent points: direct control of the hardware applied to the sensors and motors, faster execution, and suitability for limited memory. They are asserted without development (no registers, ports or predictable timing) and the link between the language and the processor is missing, so Level 1, two or more basic points (2).

Some marks1/6

A low-level language is written in binary, so the computer can understand it directly. It is faster than a high-level language.

Why: 'Faster than a high-level language' is a creditworthy basic point (1). 'Written in binary' is not awarded, as binary itself is not a language and the do-not-award rule applies. Only one undeveloped point with no application to the vacuum cleaner, so Level 1, single basic point (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.