(Merged Question paper and marking scheme): Monday 10 June 2024
A-level
COMPUTER SCIENCE
Paper 1
Monday 10 June 2024 Afternoon Time allowed: 2 hours 30 minutes
Materials
For this paper you must have:
a computer
a printer
appropriate software
the Electronic Answer Document
an electronic version and a hard copy of the Skeleton Program
an electronic version and a hard copy of the Preliminary Material
an electronic version of the Data files puzzle1.txt, puzzle2.txt, puzzle3.txt and puzzle4.txt.
You must not use a calculator.
Instructions
Type the information required on the front of your Electronic Answer Document.
Before the start of the examination make sure your Centre Number, Candidate Name and
Candidate Number are shown clearly in the footer of every page (also at the top of the front
cover) of your Electronic Answer Document.
Enter your answers into the Electronic Answer Document.
Answer all questions.
Save your work at regular intervals.
Information
The marks for questions are shown in brackets.
The maximum mark for this paper is 100.
No extra time is allowed for printing and collating.
The question paper is divided into four sections.
Advice
You are advised to allocate time to each section as follows:
Section A – 40 minutes; Section B – 20 minutes; Section C – 20 minutes; Section D – 70 minutes.
At the end of the examination
Tie together all your printed Electronic Answer Document pages and hand them to the Invigilator.
Warning
It may not be possible to issue a result for this paper if your details are not on every page of your
Electronic Answer Document.
,A-level Computer Science Paper 1 - Key Areas to Revise
For A-level Computer Science Paper 1 on Monday 10 June 2024, you'll be tested on the theoretical
foundations of computer science, including algorithms, data structures, programming, and the fundamentals of
computer systems. This exam assesses your understanding of key concepts and the ability to apply them in
problem-solving contexts. Here are the essential topics to revise:
1. Programming Fundamentals:
Basic Programming Concepts: Understand the core concepts such as variables, constants, data
types (e.g., integer, string, boolean), operators (arithmetic, logical, relational), and input/output. Be
familiar with their usage in programming.
Control Structures:
o Conditional Statements: if, else, elif, switch, and ternary operators.
o Loops: for, while, do-while loops. Know how to use each for different scenarios.
Functions and Procedures: Be able to define and use functions/procedures, handle parameters,
and return values. Understand the difference between them and how they promote modular
programming.
Recursion: Master recursive programming. Be able to write and solve recursive functions such as
calculating factorials, Fibonacci series, and recursion-based sorting algorithms.
Data Structures: Review key data structures like arrays, lists, stacks, queues, and linked lists. Be
familiar with operations like searching, inserting, and deleting data from these structures.
2. Algorithms and Problem Solving:
Sorting and Searching Algorithms: Know key algorithms and their complexities:
o Sorting: Bubble sort, selection sort, insertion sort, quicksort, merge sort (and their time
complexities).
o Searching: Binary search (for sorted data) and linear search.
Algorithm Analysis: Be able to analyze algorithm efficiency in terms of time and space complexity
(Big O notation). Understand best, worst, and average-case scenarios.
Developing Algorithms: Understand how to break down problems into manageable parts and write
algorithms to solve them. Represent algorithms using pseudocode or flowcharts.
Optimization: Learn how to optimize algorithms to reduce time and space usage, especially in
recursive solutions.
3. Data Representation:
Binary, Hexadecimal, and Decimal Conversion: Know how to convert between these number
systems. Understand how binary is used to represent data in computers.
Character Representation: Understand character encoding systems like ASCII and Unicode and
their importance in data representation.
Data Types: Know the differences between primitive and non-primitive data types and how they are
stored in memory. Familiarize yourself with integer representation and floating-point numbers in
binary.
4. Computer Systems:
System Components: Be familiar with the main components of a computer system: CPU, and RAM
5. Networking and Communication:
6. Databases:
7. Ethical, Legal, and Social Issues in Computing:
IB/G/Jun24/G4001/E12 7517/1
, 2
Section A
You are advised to spend no longer than 40 minutes on this section.
Enter your answers for Section A in your Electronic Answer Document.
You must save this document at regular intervals.
0 1 State three advantages of using subroutines.
For each advantage, you must explain how the advantage is achieved.
[3 marks]
0 2 Circular queues and linear queues are examples of data structures that can be
implemented using a fixed-length array.
0 2 . 1 Explain why, when implemented using a fixed-length array, a circular queue is usually
considered to be a better choice of data structure than a linear queue.
[2 marks]
0 2 . 2 Describe the steps that must be completed to remove (dequeue) an item from a
circular queue that has been implemented using a fixed-length array.
[5 marks]
0 3
0 3 . 1 Describe the Halting problem.
[2 marks]
0 3 . 2 Explain the importance of the Halting problem.
[1 mark]
IB/G/Jun24/7517/1
, 3
0 4 Figure 1 shows four sets R, S, T and U. Three dots (…) means the remaining
members of the set follow the same pattern as the previous members of the set.
Figure 1
R = {a, b}
S = {a, abb, abbbb, abbbbbb, …}
T = {bb, bbbb, bbbbbb, …}
U = {c, d, bb, b}
0 4 . 1 What is meant by the cardinality of a set?
[1 mark]
0 4 . 2 Explain what is wrong with the statement:
‘The only subsets of R are the sets {a}, {b} and {a, b}’.
[1 mark]
0 4 . 3 How many members are there in the set formed by the intersection of R and U?
[1 mark]
0 4 . 4 The language defined by a regular expression can be represented as a set.
Explain the functionality of the | (vertical bar) metacharacter when it is used in a
regular expression.
[1 mark]
The members of the set V are strings that match the regular expression a?b+
Set W is formed by the union of sets S and T.
Set X is formed by the set operation V – W.
0 4
. 5 Write a regular expression that would match with all the members of the set W.
[2 marks]
0 4 . 6 Write a regular expression that would match with all the members of the set X.
[2 marks]
Turn over ►
IB/G/Jun24/7517/1