Menu

Edexcel GCSE Computer Science (1CP2) Exam Questions

Build a practice paper from 693 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

3 questions · 13 marks

Pick again
Print
1Multiple choice1 markTranslators Swap Remove

A program contains a syntax error. An interpreter reports the error as soon as it finds it.

Identify when a compiler reports the syntax errors it finds in the source code.

[1 mark]
  • AAfter each line is translated
  • BAt the end of translating the program
  • CWhen the first error is found
  • DWhen the object code is run
Mark scheme
  • B At the end of translating the program (1)
  • The only correct answer is B. The correct answer is at the end of translating the program.
  • A is not correct because a compiler translates the whole program and does not report an error after each line; reporting after each line is how an interpreter behaves
  • C is not correct because a compiler does not stop at the first error; it finishes translating and reports the errors it finds at the end
  • D is not correct because syntax errors are found during translation, before the object code is run
Example answers and how they were marked
Full marks1/1

B At the end of translating the program

Why: Chosen option states that errors are reported once the whole program has been translated, as a compiler does (1).

No marks0/1

A After each line is translated

Why: Near miss: reporting an error after each line is the behaviour of an interpreter, not a compiler, so no mark.

No marks0/1

C When the first error is found

Why: Misconception that a compiler stops and reports at the first error it finds; a compiler reports the errors at the end of translation, so no mark.

2Discuss6 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).

3Discuss6 marksTranslators Swap Remove

A company writes a photo editing program in a high-level language. The company will sell the finished program to customers. Each customer will install the program on their own computer and run it many times.

Discuss whether the company should use a compiler or an interpreter to translate the program before it is sold.

Your answer should include:

  • the output of each type of translator
  • whether the program has to be translated each time it is run
  • what the customer needs on their computer to run the program.
[6 marks]
Mark scheme

Indicative content

The output of each type of translator

  • A compiler translates the whole program in one go and produces object code.
  • The object code is saved as an executable file, which is already in machine code so the processor can run it directly.
  • An interpreter does not produce object code, so no translated file exists for the company to save and sell.
  • An interpreter translates one line at a time and executes it immediately, but that translation is not kept.

Whether the program has to be translated each time it is run

  • Compiled code is translated once, so the executable can be run as many times as the customer likes without being translated again.
  • If the source code is edited, the whole program has to be compiled again to produce a new executable.
  • An interpreted program is translated again every time it is run, so a customer who runs the program often waits for translation at every run.
  • An executable runs faster than interpreted code because it is already in machine code.

What the customer needs on their computer to run the program

  • A customer who installs the executable needs no compiler on their computer, so the program will run straight away.
  • If the company supplied the source code instead, the customer would need an interpreter installed, and it would have to be an interpreter for their type of computer.
  • A customer given only the executable does not have the source code, so cannot change the program.

Conclusion

  • A compiler is the better choice for this company, because the executable can be sold and the customer runs it without it being translated again and without being given the source code.
  • Using an interpreter would mean supplying the source code to customers and translating the program on every run.

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 cover all three bullets for this company's program, including translating once rather than on every run, and reach a conclusion.

Do not accept 'a compiler fixes errors' (a compiler reports syntax errors at the end of translation, it does not fix them) or 'a compiler is easier to use' with no link to output, translation or the customer. Do not accept answers about translating to assembly language.

Example answers and how they were marked
Full marks6/6

The company should use a compiler. A compiler translates the whole program in one go and produces object code, which is saved as an executable file. This executable is already in machine code, so the customer's processor can run it directly. The program is translated only once, so a customer who runs the program many times does not wait for it to be translated again, and it runs faster than interpreted code would. An interpreter produces no object code, so the company would have nothing to sell as an executable. The customer would have to be given the source code and would need an interpreter installed on their computer, and the program would be translated again every time it was run.

Why: Level 3. Covers the output of both translators (executable from the compiler, no object code from the interpreter), the effect of translating once rather than on every run, and what the customer needs on their computer, all applied to the company selling the program, with a clear conclusion.

Some marks3/6

A compiler produces an executable file, which the company can save and sell to its customers. An interpreter does not produce an executable file, so the customer would need the source code and an interpreter installed on their computer to run the program. This means a compiler is better for the company, because customers can just run the file they are given.

Why: Level 2. Gives the output of both translators and links this to what the customer needs, with a conclusion, but never says the compiled program is translated once while an interpreted one is translated on every run, so the reasoning is not developed enough for Level 3.

No marks0/6

The company should use a compiler because it is easier to write programs with a compiler and it fixes the errors in the program before the customers get it.

Why: Level 0. No creditworthy point: 'easier to write programs' is not linked to the output, the translation each run or the customer, and 'fixes the errors' is a misconception, as the mark scheme's guidance says a compiler only reports errors at the end of translation.

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.