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

5 questions · 13 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 recall2 marksLow and High Level Languages Swap Remove

Programs can be written in high-level or low-level programming languages.

Define the term high-level programming language.

[2 marks]
Mark scheme

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

  • Uses statements/instructions that look like English/maths (1)
  • Does not depend on one type of processor / can be run on different types of computer with few or no changes (machine independent) (1)
  • A single statement is translated into several machine code instructions (1)
  • Provides data structures such as arrays and records (1)
  • Provides built-in/library subprograms (1)
  • Is translated by a compiler or an interpreter (1)

Allow portable/platform independent for machine independent.

Allow easier to read/write/understand/debug only when linked to the English-like statements, e.g. uses words that look like English so it is easier to understand.

Do not accept a high-level language / not a low-level language with no other detail.

Do not accept written in binary/machine code.

Do not accept faster to run / uses less memory, as these are characteristics of low-level languages.

Example answers and how they were marked
Full marks2/2

A language that uses statements that look like English (1) and a program written in it can be run on different types of computer without being rewritten (1).

Why: English-like statements (1) and machine independent/portable (1).

Some marks1/2

A language that provides data structures such as arrays and records.

Why: Creditworthy point: provides data structures (1). No second part of the definition given.

No marks0/2

A language that is written in binary so the computer can understand it.

Why: Misconception: binary is machine code, not a high-level language; the mark scheme's do-not-accept line covers this.

3Short recall2 marksLow and High Level Languages Swap Remove

Device drivers allow hardware devices to work with a computer system.

Give two advantages of using a low-level programming language to write device drivers.

[2 marks]
Mark scheme

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

  • It can control/manipulate the hardware (components/registers/memory locations) directly (1)
  • Each instruction maps to a single machine-code instruction, so the behaviour/timing can be controlled precisely (1)
  • The code can run very quickly / has a fast execution time (1)
  • The code uses less memory/RAM (1)
  • The code can be optimised for a particular processor/chipset (1)

Only award one mark where both 'controls the hardware' and 'accesses registers/memory locations' are given, as these are the same point.

Do not accept 'it is closer to the hardware' without saying that it controls or accesses the hardware directly.

Do not accept easier/faster to write/program/learn/understand/debug (these are advantages of high-level languages).

Do not accept faster/quicker without qualification.

Do not accept portable/machine independent.

Do not accept does not need to be translated/compiled (assembly language must be assembled).

Do not accept it is a low-level language / a repeat of the question.

Example answers and how they were marked
Full marks2/2

It can control the hardware directly and the code runs very quickly.

Why: Two creditworthy advantages: controls the hardware directly (1); fast execution (1).

Some marks1/2

It uses less memory than a high-level language.

Why: Creditworthy point: uses less memory/RAM (1). Only one advantage given.

No marks0/2

It is easier to understand and debug than a high-level language.

Why: These are advantages of high-level languages, not low-level ones; the mark scheme does not accept easier to understand or debug.

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

5Discuss6 marksLow and High Level Languages Swap Remove

A software company is writing a new program that will be sold to users who have different types of computer. The program does not need to control the hardware of the computer directly. The company must decide whether to write the program in a high-level language or a low-level language.

Discuss whether the company should use a high-level language or a low-level language to write this program.

Your answer should consider:

  • machine independence
  • processor specificity
  • how the code is translated for each type of computer.
[6 marks]
Mark scheme

Indicative content

Machine independence

  • A high-level language is machine independent, so the same source code can be run on different types of computer with few or no changes.
  • The company can write the program once and sell it to users with different computers, without rewriting the code for each type of computer.
  • Only one version of the program needs to be written and maintained, so development takes the company less time.

Processor specificity

  • A low-level language is processor-specific, so a program written for one processor will not run on a different processor without being rewritten.
  • Assembly language instructions depend on the instruction set of the particular processor, so the company would need a separate version of the program for each type of computer.
  • Writing a separate low-level version for every type of computer would take the company much longer than writing one high-level program.
  • Low-level code gives direct control of the hardware of one processor, so it is better suited to device drivers than to a program that must run on many different computers.

Translation

  • High-level source code is translated for each type of computer by a compiler or an interpreter, so one version of the source code is enough for all the users.
  • Assembly language is translated into machine code by an assembler, and the assembler produces machine code for one specific processor only.
  • Machine code is already in a form that one particular processor can execute directly, but the same machine code will not run on a different processor.
  • Each high-level statement translates into several machine code instructions, so the programmer does not need to know the instruction set of the 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)

Additional guidance

  • Level 3 responses must cover both high-level machine independence and low-level processor specificity, with the effect on the company's decision.
  • Do not award low-level language, assembly language or machine code as portable, or 'high-level languages are written in English/like English' as a reason for machine independence.
Example answers and how they were marked
Full marks6/6

A high-level language is machine independent, so the company can write the program once and it will run on different types of computer with few or no changes. A different compiler is used for each type of processor to translate that same source code into the machine code for that computer, so the company can sell one program to all of its users. A low-level language is processor-specific, so a program written in assembly for one processor will not run on a different one. The assembler produces machine code for one particular instruction set, so the company would need to write a separate version for each type of computer, which would take much longer. As the program does not need to control the hardware directly, the company should use a high-level language.

Why: Develops high-level machine independence with the compiler translating for each processor, and low-level processor specificity with the assembler producing machine code for one instruction set, both applied to the company's decision, in a coherent and sustained argument: Level 3, 6 marks.

Some marks3/6

A high-level language is machine independent, so the company can write the program once. A different compiler is used for each type of computer to translate the code, so users with different computers can all run the same program. A low-level language is processor-specific, so it would not be as suitable for the company.

Why: Machine independence is linked to the compiler and applied to the users, but processor specificity is only asserted and no translation of low-level code is given, so the reasoning is not sustained: Level 2, 3 marks.

Some marks1/6

High-level languages are machine independent because they are written in English, so the company can sell the program to anyone. Low-level languages are machine code, so they can be translated to run on any type of computer.

Why: One basic point that high-level languages are machine independent, applied by selling to anyone (1). 'Written in English' is not a reason for machine independence and low-level code is not portable, so neither is credited: Level 1, 1 mark.

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.