Menu

Edexcel GCSE Computer Science (1CP2) Exam Questions

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

4 questions · 12 marks

Pick again
Print
1Short recall2 marksCompression Swap Remove

Files can be compressed before they are stored.

Define the term lossless compression.

[2 marks]
Mark scheme

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

  • Reduces/makes the size of a file smaller (1)
  • No data is lost/removed (during compression) (1)
  • The original file/data can be recreated/restored exactly (1)

Allow 'the compressed file takes up less storage space' for the first mark.

The second and third bullets are two ways of making the same point: award a maximum of one mark for them, so a response that says no data is lost and that the original file can be restored, but does not say the file is smaller, scores one mark.

Do not accept descriptions of lossy compression, e.g. 'it removes data that is not needed to make the file smaller'.

Ignore reference to download/transmission times, bandwidth and streaming, as these are benefits of compression and not part of the definition.

Example answers and how they were marked
Full marks2/2

Lossless compression reduces the size of a file without permanently removing any data, so the original file can be restored exactly.

Why: Reduces the size of a file (1) and no data is lost, so the original can be restored exactly (1); maximum of two marks reached.

Some marks1/2

It makes a file smaller so it downloads more quickly.

Why: Reduces the size of a file (1); the faster download is ignored as a benefit, not part of the definition.

No marks0/2

It removes data that is not needed to make the file smaller.

Why: Describes lossy compression, which the do-not-accept line rules out, so the mention of making the file smaller is not credited.

2Describe2 marksMemory Management Swap Remove

A program is stored on secondary storage before it is run.

Describe how the operating system manages memory when a program is started.

[2 marks]
Mark scheme

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

  • The program (and its data) is copied/loaded from secondary storage into main memory/RAM (1) so that the CPU can fetch/execute its instructions (1)
  • An area of main memory is allocated/reserved for the program (1) that is large enough to hold the program and its data (1)
  • The operating system checks that there is enough free main memory (1) before the program can be started/loaded, otherwise it cannot run/an error is reported (1)
  • The operating system keeps a record of the memory addresses used by the program (1) so that its instructions and data can be found when it runs (1)

Allow 'loaded into RAM', 'stored in memory' and 'put into main memory' as equivalent to copied into main memory.

A single statement that the program is loaded/stored in main memory, with no linked development, can be given one mark only.

Do not accept descriptions of the CPU fetching/executing instructions that do not refer to the operating system loading or allocating memory.

Do not accept responses about virtual memory (moving processes to secondary storage) or about which process runs next on the CPU.

Do not accept the program being run from secondary storage/hard disk.

Example answers and how they were marked
Full marks2/2

The operating system copies the program and its data from secondary storage into main memory so that the CPU can fetch and execute its instructions.

Why: Copying the program and data into main memory (1) linked to the CPU fetching/executing instructions (1).

Some marks1/2

The operating system loads the program into main memory.

Why: The program is copied/loaded into main memory (1), but there is no linked development of how or what this leads to, so only one mark is given.

No marks0/2

The CPU fetches the program's instructions from main memory and executes them one at a time.

Why: This describes the fetch-decode-execute cycle, not the operating system loading or allocating memory, which is the Do not accept line; no creditworthy point is made.

3Describe2 marksLow and High Level Languages Swap Remove

A device driver is software that allows the operating system to control a piece of hardware. Device drivers are often written in a low-level programming language.

Describe one reason why a low-level programming language is suitable for writing a device driver.

[2 marks]
Mark scheme

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

  • Instructions can manipulate/control the hardware/memory/registers directly (1) so the driver can control the specific device it is written for (1)
  • The code is written for one specific processor/architecture (1) so it works with the exact hardware it will control (1)
  • The programmer controls exactly how memory/registers are used (1) so the code is efficient and needs little memory, which suits a device that has limited memory (1)
  • Each instruction maps to one machine code instruction (1) so the driver code is small enough to fit in the memory of the device (1)

Extra detail, such as naming the device the driver controls, is not needed to earn the marks.

Do not accept 'it is closer to machine code' on its own: it must be developed to show how this helps the driver, e.g. it can control the hardware directly.

Do not accept 'it is faster/quicker' with no link to the hardware/device, e.g. the device responds quickly.

Do not accept 'it is easier to learn', 'it is easier to debug' or 'it takes less time to write'.

Example answers and how they were marked
Full marks2/2

Low-level instructions can manipulate the hardware and memory directly (1) so the driver can control the specific device it was written for, such as a sound card (1).

Why: Point about direct control of hardware/memory (1) linked to controlling the specific device (1). The named device is extra detail and is not needed.

Some marks1/2

Low-level instructions can manipulate the hardware directly.

Why: Correct point (1) but no linked development saying how this helps the device driver.

No marks0/2

It is closer to machine code so it runs faster than a high-level language.

Why: 'Closer to machine code' is not developed into how this helps the driver, and 'runs faster' is not linked to the hardware/device, so no mark.

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