An original Thinka practice paper modelled on the structure and difficulty of the Nov 2025 (V1) Cambridge IGCSE Computer Science (0478) paper. Not affiliated with or reproduced from Cambridge.
Paper 1 (Computer Systems)
Answer all questions. Calculators must not be used.
31 Question · 71 marks
Question 1 · short_answer
1.5 marks
A memory address is stored in hexadecimal format as A3. Convert this hexadecimal number into a denary number.
Show answer & marking schemeHide answer & marking scheme
Worked solution
To convert the hexadecimal number A3 to denary: 1. Identify the values of each digit: A is 10, and 3 is 3. 2. Multiply by the place values: \( (10 \times 16^1) + (3 \times 16^0) \). 3. Calculate: \( 160 + 3 = 163 \).
Marking scheme
1 mark for showing correct working (e.g. multiplying 10 by 16). 0.5 marks for the correct final answer of 163.
Question 2 · short_answer
1.5 marks
Define the term 'image resolution'.
Show answer & marking schemeHide answer & marking scheme
Worked solution
Image resolution is the concentration or total count of pixels in an image (for example, 1920 x 1080 pixels). Higher resolution results in more detail and larger file size.
Marking scheme
1 mark for stating that it is the total number of pixels (or detail) that make up an image. 0.5 marks for noting how it is represented (e.g., width x height, pixels per inch, or its relation to file quality).
Question 3 · short_answer
1.5 marks
State what is meant by full-duplex data transmission.
Show answer & marking schemeHide answer & marking scheme
Worked solution
Full-duplex data transmission allows data to travel in both directions at the same time over the same medium, such as a telephone call or high-speed internet connection.
Marking scheme
1 mark for identifying that transmission goes in both directions/bidirectionally. 0.5 marks for stating that this happens at the same time/simultaneously.
Question 4 · short_answer
1.5 marks
Describe the role of the Program Counter (PC) in the Von Neumann CPU architecture.
Show answer & marking schemeHide answer & marking scheme
Worked solution
The Program Counter is a special-purpose register within the CPU that stores the address of the next instruction that needs to be fetched from memory for execution.
Marking scheme
1 mark for stating that it holds/stores the memory address of the next instruction. 0.5 marks for mentioning that this is for the next fetch/execution cycle.
Question 5 · short_answer
1.5 marks
Identify whether a check digit is used for validating human data entry or detecting errors during data transmission, and state one real-world example of its use.
Show answer & marking schemeHide answer & marking scheme
Worked solution
A check digit is a validation method designed to detect errors made during manual data entry (such as mistyping or transposing digits). A classic example is the final digit of an ISBN or a barcode.
Marking scheme
1 mark for correctly identifying 'human data entry' or 'validation' (and not data transmission). 0.5 marks for a correct example (ISBN, EAN, barcode, or vehicle identification number).
Question 6 · short_answer
1.5 marks
Define what an interrupt is in a computer system.
Show answer & marking schemeHide answer & marking scheme
Worked solution
An interrupt is a signal generated by hardware or software that alerts the CPU to suspend its current activities and execute a specific piece of code called an interrupt service routine.
Marking scheme
1 mark for defining it as a signal sent to the CPU/processor to get attention. 0.5 marks for mentioning that it can be initiated by either hardware devices or software applications.
Question 7 · short_answer
1.5 marks
State what is meant by spyware and explain how it compromises user security.
Show answer & marking schemeHide answer & marking scheme
Worked solution
Spyware is malicious software installed secretly on a computer. It captures keystrokes, browsing history, and personal credentials, then transmits this sensitive information to unauthorized third parties without user consent.
Marking scheme
1 mark for defining spyware as malware that monitors/records user actions or keystrokes without consent. 0.5 marks for explaining that it sends this private data (passwords/personal info) to an external attacker.
Question 8 · short_answer
1.5 marks
State the purpose of an actuator in an automated control system.
Show answer & marking schemeHide answer & marking scheme
Worked solution
An actuator is an output device that takes electrical output signals from a controller/microprocessor and converts them into physical action, such as spinning a motor, opening a valve, or ringing a bell.
Marking scheme
1 mark for explaining that it converts electrical control signals/commands into physical movement/action. 0.5 marks for providing a valid example (e.g., motor, solenoid valve, buzzer, pump).
Question 9 · short_answer
1.5 marks
A computer uses 8-bit registers. (i) Convert the denary number 133 into an 8-bit binary number. [1] (ii) State the hexadecimal equivalent of this 8-bit binary number. [0.5]
Show answer & marking schemeHide answer & marking scheme
Worked solution
To convert 133 to 8-bit binary: 133 = 128 + 4 + 1, which gives 10000101. To convert 10000101 to hexadecimal, split it into two 4-bit nibbles: 1000 (which is 8 in hex) and 0101 (which is 5 in hex). Combining them gives 85.
Marking scheme
1 mark for correct binary: 10000101. 0.5 marks for correct hexadecimal: 85 (accept 85 hex, 85_16).
Question 10 · short_answer
1.5 marks
Define 'simplex data transmission' and state one common hardware device that uses this transmission method.
Show answer & marking schemeHide answer & marking scheme
Worked solution
Simplex transmission is unidirectional. Data goes only from sender to receiver, with no path for a return signal. A microphone is a classic example as it only inputs sound data to the computer.
Marking scheme
1 mark for definition: data is transmitted in one direction only (unidirectional). 0.5 marks for a valid device (e.g., microphone, keyboard, speaker, monitor, television broadcast antenna).
Question 11 · short_answer
1.5 marks
Explain how a checksum is used to check for transmission errors.
Show answer & marking schemeHide answer & marking scheme
Worked solution
Before sending, the sender calculates a checksum value based on the bytes of the payload. This checksum is appended to the packet. Upon receipt, the receiver performs the same calculation on the data. If the calculated checksum does not match the transmitted checksum, a transmission error is flagged.
Marking scheme
1 mark for: checksum value is calculated from the block of data (using an algorithm) and sent alongside the data. 0.5 marks for: receiver recalculates the checksum and compares it; any difference indicates an error.
Question 12 · short_answer
1.5 marks
Describe the function of the Program Counter (PC) in the CPU during the fetch-decode-execute cycle.
Show answer & marking schemeHide answer & marking scheme
Worked solution
During the fetch stage, the CPU looks at the Program Counter to find the address of the instruction it needs to retrieve. Once retrieved, the PC is incremented to point to the next instruction in sequence.
Marking scheme
1 mark for: stores/holds the memory address of the next instruction. 0.5 marks for: to be fetched (and then increments).
Question 13 · short_answer
1.5 marks
State the primary difference in how phishing and pharming redirect a user to a malicious website.
Show answer & marking schemeHide answer & marking scheme
Worked solution
Phishing is an email-based social engineering attack where the user is enticed to click a link. Pharming is a technical exploit that poisons DNS records or modifies host files, redirecting a user even if they type the legitimate URL directly into their browser.
Marking scheme
1 mark for: phishing requires user interaction (clicking a link in an email/message). 0.5 marks for: pharming redirects automatically (by poisoning DNS/modifying host files, even when correct URL is typed).
Question 14 · short_answer
1.5 marks
State one advantage and one disadvantage of using an interpreter rather than a compiler when developing a new software program.
Show answer & marking schemeHide answer & marking scheme
Worked solution
An interpreter is highly beneficial during development because it translates and runs code line-by-line, stopping instantly on any error, making diagnostics straightforward. However, it is less efficient because this translation overhead happens every single time the code is executed.
Marking scheme
1 mark for a valid advantage: easier/faster to debug (stops at error, allows real-time correction). 0.5 marks for a valid disadvantage: slower execution speed (each line must be translated on the fly).
Question 15 · structured
3 marks
A web developer is coding a website and uses hexadecimal representations for color values, such as #FF5733, instead of binary representations.
State three reasons why computer scientists or programmers prefer to use hexadecimal rather than binary representations.
Show answer & marking schemeHide answer & marking scheme
Worked solution
1. Hexadecimal is much easier for humans to read, write, and remember compared to long strings of binary digits. 2. It is more compact and takes up less space on a screen (one hex digit represents four binary bits, or a nibble). 3. It reduces the likelihood of making transcription or typing errors when entering values.
Marking scheme
One mark per correct reason, up to a maximum of 3 marks: - Easier for humans to read/write/interpret/understand (compared to binary) - Shorter / more compact (takes up less screen space/characters to display) - Less chance of transcription/input errors (during typing/coding) - Easy to convert between hexadecimal and binary (and vice versa) (Do NOT accept 'takes up less storage space/memory')
Question 16 · structured
2 marks
An integrated circuit (IC) on a motherboard uses parallel data transmission to transfer data between the CPU and the RAM over short distances.
Identify one benefit and one drawback of using parallel data transmission instead of serial data transmission for this internal communication.
Show answer & marking schemeHide answer & marking scheme
Worked solution
Benefit: Data is sent faster / higher data transfer rate because multiple bits are sent simultaneously over several wires. Drawback: Over longer distances, the bits can become out of sync (data skewing) or experience electromagnetic interference between wires (crosstalk).
Marking scheme
One mark for a valid benefit, one mark for a valid drawback:
Benefit (max 1): - Faster data transmission speed / higher throughput (as multiple bits are sent at the same time). - Fits well with computer buses which are designed to handle 32-bit or 64-bit parallel data.
Drawback (max 1): - Risk of data skewing (bits arriving at different times). - Risk of crosstalk / interference between adjacent wires. - More expensive to implement / physically bulkier (due to requiring multiple parallel wires/tracks).
Question 17 · structured
3 marks
A central processing unit (CPU) uses interrupts to manage various tasks and signals from hardware or software.
Explain the process that occurs when an interrupt is received by the CPU during the fetch-decode-execute (FDE) cycle.
Show answer & marking schemeHide answer & marking scheme
Worked solution
1. At the end of each Fetch-Decode-Execute (FDE) cycle, the CPU checks if an interrupt signal has been received. 2. If an interrupt is detected, the CPU saves the contents of its current registers (including the Program Counter) onto a stack. 3. The CPU then loads the appropriate Interrupt Service Routine (ISR) / interrupt handler to process the request. 4. Once the interrupt is serviced, the saved register values are restored, and the CPU resumes the execution of the interrupted program.
Marking scheme
One mark per valid point, up to a maximum of 3 marks: - CPU checks for interrupts at the end of the current instruction cycle / fetch-decode-execute cycle. - The state of the current program / registers / Program Counter (PC) is saved (to memory/stack). - The CPU identifies the source of the interrupt. - The CPU runs / executes the Interrupt Service Routine (ISR) / interrupt handler. - Once completed, the previous program state is restored (from the stack) and execution resumes.
Question 18 · structured
2 marks
An automated irrigation system is installed in a vineyard to maintain soil moisture levels. The system uses a microprocessor, a moisture sensor, and a water valve actuator.
Explain how the microprocessor and the actuator work together to control the irrigation of the soil.
Show answer & marking schemeHide answer & marking scheme
Worked solution
1. The microprocessor continuously receives readings from the moisture sensor (converted to digital values) and compares them with a pre-set threshold value. 2. If the moisture level is below the threshold, the microprocessor sends an electrical control signal to the actuator (the water valve) to open the valve and begin watering. (Once the desired moisture level is reached, it sends a signal to close the valve).
Marking scheme
One mark per valid explanation point, up to a maximum of 2 marks: - Microprocessor compares sensor values (or digital readings) against a pre-set threshold/range. - If the readings are outside the range, the microprocessor sends an output/electrical signal to the actuator. - The actuator physically acts / opens/closes the water valve (to start or stop water flow).
Question 19 · structured
3 marks
Data is sent from a workstation to a central server. A checksum is used to detect whether any errors occurred during data transmission.
Describe how a checksum is calculated and used to verify the integrity of the transmitted data.
Show answer & marking schemeHide answer & marking scheme
Worked solution
1. Before transmission, the sending device calculates a checksum value using an algorithm on the data block. 2. This calculated checksum is transmitted along with the block of data. 3. Upon receiving the data, the receiving device applies the same algorithm to the data block to calculate its own checksum. 4. The receiver compares its calculated checksum with the received checksum. If they match, the data is assumed to be error-free; if they differ, an error has occurred, and a retransmission is requested.
Marking scheme
One mark per valid descriptive point, up to a maximum of 3 marks: - (Sender calculates) a checksum value using an algorithm/mathematical formula on the block of data. - The calculated checksum is transmitted with the data block. - (On receipt) the receiving device applies the same algorithm/calculation to the received data block. - The receiver compares the calculated checksum to the received checksum. - If the two values do not match / differ, an error is detected (and a request to retransmit is sent).
Question 20 · structured
2 marks
A student is deciding whether to purchase a laptop with a Solid-State Drive (SSD) or a Hard Disk Drive (HDD) for their secondary storage.
State two reasons why an SSD is more suitable than an HDD for a portable laptop.
Show answer & marking schemeHide answer & marking scheme
Worked solution
1. SSDs have no moving parts, which makes them much more robust and durable if the laptop is dropped or bumped during transport. 2. SSDs have significantly faster read/write speeds, leading to faster boot times and quicker loading of files/applications.
Marking scheme
One mark per correct reason, up to a maximum of 2 marks: - SSDs have no moving parts (which makes them more robust/shock-resistant if dropped). - Faster read/write speeds (allowing faster boot times / application loading). - Lower power consumption (which extends the laptop's battery life). - Generate less heat (improving performance in a compact laptop casing). - SSDs are lighter in weight (making the laptop more portable). - SSDs run silently (as there is no spinning platter/read-write head noise).
Question 21 · structured
3 marks
A business sets up a network and configures a firewall on its gateway router to protect its internal data.
Describe how a firewall protects the business's local area network (LAN) from unauthorized access.
Show answer & marking schemeHide answer & marking scheme
Worked solution
1. The firewall monitors all incoming and outgoing data traffic between the LAN and the external internet. 2. It compares each packet of data against a pre-defined set of security rules and criteria (such as IP addresses, protocols, or port numbers). 3. If a packet does not meet the specified criteria, the firewall blocks or filters it out, thereby preventing unauthorized access (hacking attempts) or unauthorized data transmission.
Marking scheme
One mark per descriptive point, up to a maximum of 3 marks: - Firewall acts as a barrier / monitors incoming and outgoing network traffic. - Compares data/packets against a set of pre-defined rules / criteria / security policy. - Blocks / filters out traffic/packets that violate the rules. - Restricts access to specific ports / blocks unauthorized IP addresses. - Can alert network administrators of suspicious activity/intrusion attempts. - Prevents unauthorized outbound transmission of sensitive data.
Question 22 · structured
2 marks
Artificial Intelligence (AI) systems often incorporate machine learning algorithms to improve their performance over time.
State what is meant by 'machine learning'.
Show answer & marking schemeHide answer & marking scheme
Worked solution
Machine learning refers to the ability of a computer system to learn and adapt without following explicit, hard-coded instructions. It uses algorithms to analyze large amounts of training data, identify patterns, and make predictions or decisions based on new, unseen data.
Marking scheme
One mark per valid point, up to a maximum of 2 marks: - A subset of AI where systems automatically learn / improve performance from experience/data. - Does not rely on explicit / hard-coded programming (for every eventuality). - Uses algorithms to analyze training data / identify patterns. - Applies learned patterns to make predictions / decisions on new/unseen data.
Question 23 · structured
3 marks
Explain how data is written and stored on a Solid State Drive (SSD).
Show answer & marking schemeHide answer & marking scheme
Worked solution
1. Solid State Drives (SSDs) use flash memory, which contains non-volatile NAND flash gates. 2. This technology uses floating gate transistors to store electrical charges. 3. Electrons are trapped in the floating gate; the presence or absence of trapped electrons (electric charge) represents a binary 1 or 0. 4. Controlling the flow of electricity allows data to be read, written, or erased in pages and blocks.
Marking scheme
One mark per correct point, up to a maximum of 3 marks: - Uses flash memory / NAND flash gates [1] - Utilizes floating gate transistors [1] - Electrons are trapped / blocked in a floating gate [1] - The presence/absence of charge (trapped electrons) represents binary 0 and 1 [1] - Data is read/written in blocks/pages [1]
Question 24 · structured
2 marks
A software engineer is developing a device driver for a new robotic arm. Explain two reasons why they would choose to write this software in assembly language rather than a high-level language.
Show answer & marking schemeHide answer & marking scheme
Worked solution
1. Direct hardware control: Assembly language can access specific memory addresses and hardware registers directly, which is needed to control actuators and sensors in the robotic arm. 2. Execution speed / memory efficiency: Assembly programs compile into highly optimized machine code that runs very quickly and uses minimal RAM/storage, which is critical for real-time response.
Marking scheme
One mark for each reason explained, up to a maximum of 2 marks: - Allows direct control/access of hardware registers / specific memory addresses [1] - Code executes faster / has high performance (necessary for real-time systems) [1] - Code occupies less memory / is highly compact / efficient [1] - No translation overhead during execution [1]
Question 25 · structured
3 marks
An automated greenhouse uses a temperature sensor and a microprocessor to maintain a constant environment. Explain how the sensor and the microprocessor work together to manage the greenhouse temperature.
Show answer & marking schemeHide answer & marking scheme
Worked solution
1. The temperature sensor continuously takes physical readings of the greenhouse temperature. 2. These analogue signals are converted into digital data using an Analogue-to-Digital Converter (ADC) so the microprocessor can process them. 3. The microprocessor compares the digital reading against pre-set / stored target parameters. 4. If the temperature is out of range, the microprocessor sends a control signal to an actuator (e.g., to activate a heater, fan, or open vents) to correct the temperature.
Marking scheme
One mark per correct point, up to a maximum of 3 marks: - Sensor continuously takes readings and sends data to the microprocessor [1] - Analogue-to-digital converter (ADC) is used to convert the sensor's signals [1] - Microprocessor compares the digital data with pre-set/stored values [1] - Microprocessor sends a signal to an actuator to adjust the temperature (e.g. heater/vent/fan) [1] - The process forms a continuous loop [1]
Question 26 · structured
2 marks
Describe the role of a digital certificate in establishing a secure connection between a user's web browser and a website.
Show answer & marking schemeHide answer & marking scheme
Worked solution
1. Authentication: The digital certificate is issued by a trusted Certificate Authority (CA) to verify that the website is authentic and belongs to the claimed organization, preventing spoofing. 2. Encryption: It contains the website's public key, which the browser uses to encrypt data and establish a secure symmetric key session for subsequent communications.
Marking scheme
One mark per correct description point, up to a maximum of 2 marks: - Authenticates / verifies the identity of the website [1] - Issued / signed by a trusted Certificate Authority (CA) [1] - Contains the website's public key [1] - Used to establish a secure SSL/TLS connection / exchange session keys [1]
Question 27 · matching
3 marks
Three descriptions of sensors and four sensor names are given.
Draw one line from each description to its matching sensor name. Not all sensor names will be used.
**Description** - Measures physical force applied to a specific area. - Detects heat radiating from objects or motion within its field of view. - Monitors the level of thermal energy in an environment.
Show answer & marking schemeHide answer & marking scheme
Worked solution
Matching connections: 1. 'Measures physical force applied to a specific area' connects to 'Pressure sensor'. 2. 'Detects heat radiating from objects or motion within its field of view' connects to 'Infrared sensor'. 3. 'Monitors the level of thermal energy in an environment' connects to 'Temperature sensor'.
Marking scheme
One mark for each correct line up to a maximum of 3 marks: - Measures physical force... -> Pressure sensor [1] - Detects heat radiating... -> Infrared sensor [1] - Monitors the level of thermal energy... -> Temperature sensor [1]
Question 28 · matching
3 marks
Three descriptions of error detection methods and four error detection terms are given.
Draw one line from each description to its matching error detection term. Not all terms will be used.
**Description** - A value calculated from the digits of a number, often appended to the end, to validate data entry. - An extra bit added to a byte to ensure the total number of 1-bits is either even or odd. - A transmission control method that uses acknowledgments and timeouts to request retransmission when errors occur.
Show answer & marking schemeHide answer & marking scheme
Worked solution
Matching connections: 1. 'A value calculated from the digits of a number...' connects to 'Check digit'. 2. 'An extra bit added to a byte...' connects to 'Parity check'. 3. 'A transmission control method...' connects to 'Automatic Repeat Query (ARQ)'.
Marking scheme
One mark for each correct line up to a maximum of 3 marks: - Calculated value appended to number -> Check digit [1] - Extra bit added to byte -> Parity check [1] - Acknowledgments and timeouts -> Automatic Repeat Query (ARQ) [1]
Question 29 · matching
3 marks
Three descriptions of CPU registers and four register names are given.
Draw one line from each description to its matching register name. Not all register names will be used.
**Description** - Holds the memory address of the instruction or data currently being read from or written to. - Holds the data or instruction that has just been retrieved from memory or is waiting to be written to memory. - Keeps track of the memory location of the next instruction that is scheduled to be fetched.
**Register name** - Memory Address Register (MAR) - Memory Data Register (MDR) - Program Counter (PC) - Accumulator (ACC)
Show answer & marking schemeHide answer & marking scheme
Worked solution
Matching connections: 1. 'Holds the memory address of the instruction...' connects to 'Memory Address Register (MAR)'. 2. 'Holds the data or instruction that has just been...' connects to 'Memory Data Register (MDR)'. 3. 'Keeps track of the memory location of the next...' connects to 'Program Counter (PC)'.
Marking scheme
One mark for each correct line up to a maximum of 3 marks: - Address of current memory operation -> Memory Address Register (MAR) [1] - Data retrieved or waiting to write -> Memory Data Register (MDR) [1] - Memory location of next instruction -> Program Counter (PC) [1]
Question 30 · gap-fill
6 marks
Complete the statements about the operation of the CPU during the fetch-decode-execute cycle.
Use the terms from the list. Not all terms will need to be used. You should only use each term once.
List of terms: - accumulator - address bus - arithmetic logic unit - control bus - control unit - current instruction register - data bus - memory address register - memory data register - program counter - random access memory
Statements: The [1] holds the address of the next instruction to be retrieved from memory. When the CPU needs to read data from a specific memory location, this address is copied into the [2]. The CPU then uses the [3] to transmit this address to memory. The data located at that address is sent back to the CPU via the [4] and is placed into the [5]. If a mathematical calculation is required, the data is sent to the [6] to be processed.
Show answer & marking schemeHide answer & marking scheme
Worked solution
The correct completed statements are:
The program counter holds the address of the next instruction to be retrieved from memory. When the CPU needs to read data from a specific memory location, this address is copied into the memory address register. The CPU then uses the address bus to transmit this address to memory. The data located at that address is sent back to the CPU via the data bus and is placed into the memory data register. If a mathematical calculation is required, the data is sent to the arithmetic logic unit to be processed.
Marking scheme
Award 1 mark for each correct term in the correct position, up to a maximum of 6 marks: 1. program counter 2. memory address register 3. address bus 4. data bus 5. memory data register 6. arithmetic logic unit
Question 31 · free-response
5 marks
A weather monitoring station has a wind speed sensor mounted on a high mast. The sensor continuously sends measurements down a long cable to a data logging computer at the base of the mast. No data is sent back to the sensor from the computer.
Identify the most appropriate data transmission methods for this purpose. Explain your choice.
Show answer & marking schemeHide answer & marking scheme
Worked solution
Data transmission methods: - Serial - Simplex
Explanation:
Serial: - Data is sent one bit at a time over a single wire. - There is less chance of the data bits becoming skewed over the distance of the cable. - It is more cost-effective to install as it requires fewer wires.
Simplex: - Data only needs to be transmitted in one direction (from the wind speed sensor to the computer). - There is no requirement for the computer to send data or instructions back to the sensor.
Marking scheme
One mark for each correct data transmission method (Max 2 marks): - Serial - Simplex
Any three from (Max 3 marks):
Serial: - Only one wire/channel is used // bits are sent one at a time // bits are sent in order. - Less chance of data being skewed over a distance // less chance of transmission errors. - Easier / cheaper to install over this distance.
Simplex: - Data only needs to be sent in one direction. - Data does not need to be sent back to the wind speed sensor.
Ready to test yourself?
Turn these notes into exam-style practice. Get unlimited AI questions on this topic with instant marking and explanations.
State the most appropriate data type for the fields `Borrowable` and `DateAcquired` from the following list: - Text - Character - Boolean - Integer - Real - Date/Time
Show answer & marking schemeHide answer & marking scheme
Worked solution
`Borrowable` stores only True/False values, so Boolean is correct. `DateAcquired` stores calendar dates, so Date/Time is correct.
Marking scheme
- 1 mark for `Borrowable` data type as Boolean - 1 mark for `DateAcquired` data type as Date/Time
Question 2 · short_answer
2 marks
A school uses a database table named `StudentClub` to record details of students registered for after-school clubs. The fields are: `StudentID`, `StudentName`, `ClubName`, `FeePaid`.
Complete the Structured Query Language (SQL) statement to display only the names of students who have registered for the 'Chess' club.
SELECT ______ FROM StudentClub WHERE ______
Show answer & marking schemeHide answer & marking scheme
Worked solution
To display the names of the students, we use `SELECT StudentName`. To filter specifically for the 'Chess' club, we use the condition `WHERE ClubName = 'Chess'`.
Marking scheme
- 1 mark for SELECT StudentName - 1 mark for WHERE ClubName = 'Chess' (or ClubName = "Chess")
Question 3 · short_answer
2 marks
A local sports club uses a database table `MemberRecords` to store details of its members. The fields in the table are: `LastName`, `FirstName`, `DateOfBirth`, `MemberID`, and `PhoneNumber`.
(i) Identify which field should be used as the primary key. [1] (ii) State one reason why `LastName` is not suitable as a primary key. [1]
Show answer & marking schemeHide answer & marking scheme
Worked solution
(i) `MemberID` uniquely identifies each club member. (ii) `LastName` cannot be a primary key because last names can contain duplicate values (e.g., multiple members named Smith).
Marking scheme
- 1 mark for (i) MemberID - 1 mark for (ii) Stating that LastName is not unique / can be duplicated
Question 4 · short_answer
2 marks
Structured Query Language (SQL) is used to perform queries on databases. State the SQL keywords that perform the following functions:
1. Specifies the table from which data should be retrieved. [1] 2. Specifies the search criteria used to filter the records. [1]
Show answer & marking schemeHide answer & marking scheme
Worked solution
1. The `FROM` keyword indicates the table from which records are selected. 2. The `WHERE` keyword is used to specify search conditions to filter the output records.
Marking scheme
- 1 mark for 1. FROM - 1 mark for 2. WHERE
Question 5 · short_answer
2 marks
A pharmacy uses a database table called `Medication` to store inventory details. The table contains the following fields: `MedicationID` (e.g. MED104), `Price` (e.g. 14.99), and `StockLevel` (e.g. 150).
The database supports these data types: Text, Boolean, Integer, Real, Date/Time.
State the most appropriate data type for: (i) `Price` [1] (ii) `StockLevel` [1]
Show answer & marking schemeHide answer & marking scheme
Worked solution
(i) `Price` contains decimal fractional values, so `Real` is the most appropriate data type. (ii) `StockLevel` represents whole numbers for quantity count, so `Integer` is the most appropriate data type.
Marking scheme
- 1 mark for (i) Real - 1 mark for (ii) Integer
Question 6 · short_answer
3 marks
A school enrollment system requires candidates to enter their age, which must be between 11 and 18 inclusive. State the difference between extreme test data and abnormal test data, using this scenario to support your explanation.
Show answer & marking schemeHide answer & marking scheme
Worked solution
Extreme test data is used to test the limits of what is acceptable by the system. In this scenario, the values 11 and 18 are the extreme valid limits, and both should be accepted. Abnormal test data represents data that is completely outside the acceptable range or of an incorrect data type. In this scenario, inputting an age of 5, 99, or a text string like 'ten' represents abnormal data, and all should be rejected by the system's validation rules.
Marking scheme
1 mark for defining extreme test data with a correct example from the scenario (e.g., 11 or 18). 1 mark for defining abnormal test data with a correct example from the scenario (e.g., under 11, over 18, or text). 1 mark for stating that extreme data is accepted while abnormal data is rejected.
Question 7 · short_answer
2 marks
Explain why a range check is more appropriate than a limit check when validating an exam percentage score that must be between 0 and 100 inclusive.
Show answer & marking schemeHide answer & marking scheme
Worked solution
A limit check checks only one boundary (e.g., verifying only that a value is less than or equal to 100, which would incorrectly allow negative values like -5). A range check enforces two boundaries (e.g., verifying that the value is \(\ge 0\) AND \(\le 100\)), ensuring that any value outside this interval is rejected.
Marking scheme
1 mark for explaining that a limit check only tests a single boundary / one side of the data (minimum or maximum). 1 mark for explaining that a range check validates both the lower and upper boundaries of the acceptable data range.
Question 8 · short_answer
3 marks
Describe how an online registration system could use both validation and verification when a user sets up a new password for their account.
Show answer & marking schemeHide answer & marking scheme
Worked solution
Validation checks if the password meets the rules set by the system (such as length or character type checks) to ensure it is secure. Verification ensures that the password entered is the one intended by the user, typically done by requiring double entry (typing the password twice) and comparing them to ensure they match exactly.
Marking scheme
1 mark for explaining validation in this context (e.g., length check / presence check / format check). 1 mark for explaining verification in this context (e.g., double entry / re-typing the password to check for a match). 1 mark for distinguishing their purposes (validation checks against rules/criteria, verification checks against user entry errors).
Question 9 · short_answer
2 marks
A database field is designed to store a customer's telephone number. Explain how a presence check and a length check can be used together to validate this entry.
Show answer & marking schemeHide answer & marking scheme
Worked solution
To validate a telephone number, a presence check is used first to guarantee that the user has actually typed something and not skipped the field. A length check is then applied to ensure that the input contains a valid number of characters (for example, exactly 11 digits), preventing truncated or excessively long entries.
Marking scheme
1 mark for explaining that a presence check prevents the field from being left blank / ensures data is entered. 1 mark for explaining that a length check ensures the number of characters/digits entered meets a specific limit or range (e.g., exactly 11 characters).
Question 10 · short_answer
3 marks
A domestic heating controller switches on a boiler (\(H = 1\)) if the measured temperature is low (\(T = 1\)) AND either the daily schedule timer is active (\(A = 1\)) OR the user manual override button is pressed (\(M = 1\)).
Write the logic expression for this controller using the inputs \(T\), \(A\), and \(M\).
Show answer & marking schemeHide answer & marking scheme
Worked solution
The correct logic expression is: \(H = T \text{ AND } (A \text{ OR } M)\)
Alternative acceptable forms: - \(H = (A \text{ OR } M) \text{ AND } T\) - \(H = T \cdot (A + M)\)
Marking scheme
1 mark for: \(A \text{ OR } M\) (or \(A + M\)) 1 mark for: \(T \text{ AND } \dots\) (or \(T \cdot \dots\)) 1 mark for: Correct use of brackets to group the OR operation first.
Question 11 · short_answer
3 marks
An industrial monitoring system has the following logic expression: \(X = (A \text{ AND } B) \text{ OR } \text{NOT } (B \text{ AND } C)\)
Complete the truth table for this expression by stating the values of the output \(X\) for all eight possible input combinations of \(A\), \(B\), and \(C\).
List your eight output values in order, starting with the input combination \(A = 0, B = 0, C = 0\) through to \(A = 1, B = 1, C = 1\) (in standard binary progression).
Show answer & marking schemeHide answer & marking scheme
Worked solution
Let us evaluate \(X\) for each row: 1. \(A=0, B=0, C=0 \implies X = (0) \text{ OR } \text{NOT } (0) = 1\) 2. \(A=0, B=0, C=1 \implies X = (0) \text{ OR } \text{NOT } (0) = 1\) 3. \(A=0, B=1, C=0 \implies X = (0) \text{ OR } \text{NOT } (0) = 1\) 4. \(A=0, B=1, C=1 \implies X = (0) \text{ OR } \text{NOT } (1) = 0\) 5. \(A=1, B=0, C=0 \implies X = (0) \text{ OR } \text{NOT } (0) = 1\) 6. \(A=1, B=0, C=1 \implies X = (0) \text{ OR } \text{NOT } (0) = 1\) 7. \(A=1, B=1, C=0 \implies X = (1) \text{ OR } \text{NOT } (0) = 1\) 8. \(A=1, B=1, C=1 \implies X = (1) \text{ OR } \text{NOT } (1) = 1\)
Marking scheme
3 marks for all 8 outputs correct (1, 1, 1, 0, 1, 1, 1, 1) 2 marks for 6 or 7 outputs correct 1 mark for 4 or 5 outputs correct
Question 12 · short_answer
3 marks
A digital safety circuit has three inputs, \(A\), \(B\), and \(C\). - The inputs \(A\) and \(B\) are connected as inputs to a single NOR gate. - The output of this NOR gate and the input \(C\) are connected as inputs to a single AND gate. - The output of the AND gate is \(X\).
Write the logic expression for this circuit.
Show answer & marking schemeHide answer & marking scheme
Worked solution
The correct logic expression is: \(X = \text{NOT } (A \text{ OR } B) \text{ AND } C\)
Alternative acceptable forms: - \(X = (A \text{ NOR } B) \text{ AND } C\) - \(X = C \text{ AND } \text{NOT } (A \text{ OR } B)\)
Marking scheme
1 mark for representing the first gate: \(\text{NOT } (A \text{ OR } B)\) or \(A \text{ NOR } B\) 1 mark for linking with the second gate: \(\dots \text{ AND } C\) 1 mark for correct grouping/brackets to ensure the NOR operation occurs before the AND operation.
Question 13 · written
3 marks
An algorithm is written in pseudocode to input 10 integers, calculate their sum, and output the result.
01 Total <- 0 02 Count <- 1 03 WHILE Count < 10 DO 04 INPUT Num 05 Total <- Total + Count 06 Count <- Count - 1 07 ENDWHILE 08 OUTPUT "The total is ", Total
Identify the line numbers of the three errors in the pseudocode and suggest a correction for each error.
Show answer & marking schemeHide answer & marking scheme
Worked solution
Line 03: The loop condition only runs 9 times. It should be changed to Count <= 10 (or Count < 11). Line 05: The algorithm is adding the loop counter instead of the input number. It should be changed to Total <- Total + Num. Line 06: The count is decremented, leading to an infinite loop. It should be incremented to Count <- Count + 1.
Marking scheme
1 mark for identifying Line 03 and its correction. 1 mark for identifying Line 05 and its correction. 1 mark for identifying Line 06 and its correction.
Question 14 · written
3 marks
A linear search algorithm is written in pseudocode to search for a specific name in an array of 5 elements called Names.
01 Found <- TRUE 02 Index <- 1 03 INPUT SearchValue 04 WHILE (Found = FALSE) AND (Index <= 5) DO 05 IF Names[Index] = SearchValue 06 THEN 07 Found <- FALSE 08 ENDIF 09 Index <- Index - 1 10 ENDWHILE
Identify the line numbers of the three errors in the pseudocode and suggest a correction for each error.
Show answer & marking schemeHide answer & marking scheme
Worked solution
Line 01: Found is initialized to TRUE, meaning the loop on Line 04 will never execute. It should be initialized to FALSE. Line 07: When the SearchValue is found, Found should be set to TRUE to stop the search and flag success. Currently, it is set to FALSE. Line 09: Index is decremented, which will lead to an infinite loop or index error. It must be incremented: Index <- Index + 1.
Marking scheme
1 mark for identifying Line 01 and its correction. 1 mark for identifying Line 07 and its correction. 1 mark for identifying Line 09 and its correction.
Question 15 · written
3 marks
An algorithm is written in pseudocode to count how many students passed an exam. A pass mark is 50 or above. There are 50 students whose marks are stored in an array called Marks.
01 PassCount <- 0 02 FOR I <- 1 TO 50 03 IF Marks[I] < 50 04 THEN 05 PassCount <- 1 06 ENDIF 07 NEXT I 08 OUTPUT "Number of passes: ", I
Identify the line numbers of the three errors in the pseudocode and suggest a correction for each error.
Show answer & marking schemeHide answer & marking scheme
Worked solution
Line 03: The condition checks for a fail (< 50) rather than a pass. It should be changed to Marks[I] >= 50. Line 05: The counter is reset to 1 rather than incremented. It should be changed to PassCount <- PassCount + 1. Line 08: The output displays the loop variable I (which will be 51) instead of the final tally. It should be changed to OUTPUT "Number of passes: ", PassCount.
Marking scheme
1 mark for identifying Line 03 and its correction. 1 mark for identifying Line 05 and its correction. 1 mark for identifying Line 08 and its correction.
Question 16 · Trace Table
3 marks
An algorithm is represented by the following pseudocode:
```text DECLARE X, Y, Z : INTEGER INPUT X INPUT Y Z <- 0 WHILE X >= Y DO X <- X - Y Z <- Z + 1 ENDWHILE OUTPUT "Quotient: ", Z OUTPUT "Remainder: ", X ```
Complete the trace table for this algorithm with the input values: - `X = 22` - `Y = 6`
Show answer & marking schemeHide answer & marking scheme
Worked solution
First, the variables are initialized with `X = 22`, `Y = 6`, and `Z = 0`. - Loop 1: Since `22 >= 6` is true, `X` becomes `22 - 6 = 16`, and `Z` becomes `0 + 1 = 1`. - Loop 2: Since `16 >= 6` is true, `X` becomes `16 - 6 = 10`, and `Z` becomes `1 + 1 = 2`. - Loop 3: Since `10 >= 6` is true, `X` becomes `10 - 6 = 4`, and `Z` becomes `2 + 1 = 3`. - Loop 4: Since `4 >= 6` is false, the loop terminates. Finally, the outputs are printed: `Quotient: 3` `Remainder: 4`
Marking scheme
1 mark for correct initial values of X, Y, and Z. 1 mark for correct intermediate values of X and Z throughout the loop cycles. 1 mark for both correct output statements matching the final values.
Question 17 · Trace Table
2 marks
An algorithm is represented by the following pseudocode:
```text DECLARE Num : ARRAY[1:6] OF INTEGER DECLARE k, Count : INTEGER Num[1] <- 15 Num[2] <- 10 Num[3] <- 18 Num[4] <- 12 Num[5] <- 14 Num[6] <- 9 Count <- 0 FOR k <- 1 TO 5 IF Num[k] < Num[k+1] THEN Count <- Count + 1 ENDIF NEXT k OUTPUT "Count is ", Count ```
Complete the trace table for this algorithm.
Show answer & marking schemeHide answer & marking scheme
Worked solution
Dry-running the loop with array values: - Initially, `Count` is set to `0`. - `k = 1`: `Num[1] (15) < Num[2] (10)` is false. `Count` remains `0`. - `k = 2`: `Num[2] (10) < Num[3] (18)` is true. `Count` becomes `1`. - `k = 3`: `Num[3] (18) < Num[4] (12)` is false. `Count` remains `1`. - `k = 4`: `Num[4] (12) < Num[5] (14)` is true. `Count` becomes `2`. - `k = 5`: `Num[5] (14) < Num[6] (9)` is false. `Count` remains `2`. - Output displays `Count is 2`.
Marking scheme
1 mark for tracking the correct increments of the loop counter `k` and variable `Count`. 1 mark for the correct final output value.
Question 18 · structured
3 marks
A text file named Scores.txt contains a list of positive integer game scores, with one score stored on each line. Write a pseudocode function called GetHighScore that opens this file for reading, reads all the scores to find the highest score, and returns the highest score. The function must close the file before it ends. You must declare any local variables used.
Show answer & marking schemeHide answer & marking scheme
Worked solution
The function begins by declaring local variables and initializing HighScore to 0. It then opens the file Scores.txt for reading. Using a loop that continues until the end of the file is reached, it reads each score, compares it to the current HighScore, and updates HighScore if the read score is larger. Finally, it closes the file and returns the highest score.
Marking scheme
1 mark: Correct function header with returns clause and matching ENDFUNCTION / RETURN statement. 1 mark: Correctly opening and closing Scores.txt. 1 mark: Correctly looping through the file using EOF and updating the highest score variable.
Question 19 · structured
3 marks
An array named Rainfall contains 12 real numbers representing the monthly rainfall in millimetres. Write a pseudocode function called CalculateAverage that takes the Rainfall array as a parameter, calculates the average monthly rainfall, and returns this average value as a real number. You must declare any local variables used.
Show answer & marking schemeHide answer & marking scheme
Worked solution
The function CalculateAverage is defined with the array Rainfall as a parameter. A local total variable is initialized to 0. A FOR loop runs from 1 to 12 to accumulate the sum of all elements in the array. The average is calculated by dividing the total by 12, and this average is returned.
Marking scheme
1 mark: Correct function header with Rainfall parameter and matching RETURN/ENDFUNCTION. 1 mark: Correct loop from 1 to 12 accumulating the sum of elements. 1 mark: Correct calculation of average (Total / 12) and returning of the correct variable.
Question 20 · structured
3 marks
A security system records visitor logs. Write a pseudocode procedure called LogVisitor that takes a visitor's numeric ID as an integer parameter. The procedure must open a text file called VisitorLog.txt for writing (or appending), write the visitor's ID to the file on a new line, and close the file.
Show answer & marking schemeHide answer & marking scheme
Worked solution
The procedure LogVisitor is defined with an integer parameter. Inside, it uses OPENFILE with the WRITE (or APPEND) option to open VisitorLog.txt. It writes the parameter value using WRITEFILE, then closes the file using CLOSEFILE.
Marking scheme
1 mark: Correct procedure header with VisitorID parameter and matching ENDPROCEDURE. 1 mark: Opening VisitorLog.txt for write/append and closing it correctly. 1 mark: Writing the visitor ID using WRITEFILE.
Question 21 · subjective
15 marks
A science fair committee records the scores of several participating students.
A one-dimensional (1D) array, `StudentName[]`, contains the names of all the students. The maximum number of students is 40.
Each student's project is evaluated by 5 different judges, who each give a score out of 50. A two-dimensional (2D) array, `JudgeScore[]`, is used to store these scores. The first index of the array `JudgeScore[]` matches the student's index in `StudentName[]`.
After the evaluation is complete, the highest score and the lowest score for each student are discarded. The final score for each student is calculated as the sum of the remaining 3 scores.
Students are awarded certificates based on their final scores: - A final score of 120 or more earns a 'Gold Award'. - A final score between 90 and 119 inclusive earns a 'Silver Award'. - A final score below 90 earns a 'Participation Certificate'.
Write a program that meets the following requirements: - inputs the score (out of 50) given by each of the 5 judges for each student - validates that each score input is between 0 and 50 inclusive - calculates the final score for each student by discarding their highest and lowest scores - outputs the name of each student alongside the certificate they earned ('Gold Award', 'Silver Award', or 'Participation Certificate') - calculates and outputs the total number of students who earned: - a Gold Award - a Silver Award - a Participation Certificate.
You must use pseudocode or program code and add comments to explain how your code works. You do not need to declare any arrays or variables; assume that this has already been done. All inputs and outputs must contain suitable messages.
Show answer & marking schemeHide answer & marking scheme
Worked solution
The solution employs standard algorithmic structures including nested iteration, input validation using a repeat-until loop, tracking minimum and maximum values within a loop, subtraction logic to discard extreme values, nested conditional structures to categorize awards, and summation variables to keep track of statistics.
### Explanation of Core Logic: 1. **Outer & Inner Loops**: The program loops through 40 students (`StudentIndex`), and within that, loops through 5 judges (`JudgeIndex`) to fetch and store each score. 2. **Validation**: A `REPEAT...UNTIL` loop checks that the input is in the correct range of `0` to `50`. If not, an error message is printed, and the user is re-prompted. 3. **Finding High/Low**: We initialize `HighestScore` to a low value (`-1`) and `LowestScore` to a high value (`51`). For each of the 5 scores, if it exceeds the highest, we update `HighestScore`. If it is lower than the lowest, we update `LowestScore`. 4. **Discarding and Totalling**: By summing all five scores in `TotalScore` and then subtracting `HighestScore` and `LowestScore`, we accurately find the sum of the remaining three intermediate scores. 5. **Classification**: A nested `IF...THEN...ELSE` statement checks the ranges for Gold, Silver, and Participation, updating the respective award counters and outputting individual results. 6. **Final Statistics**: At the very end of the script, outside of any loops, the cumulative counts are outputted with descriptive messages.
Marking scheme
### Marks allocated for AO2 (Apply knowledge and understanding): Max 9 marks - **Input & Validation (3 marks)**: - **1 mark**: Nested loop structure correctly looping through 40 students and 5 judges. - **1 mark**: Inputting each score into the 2D array `JudgeScore[StudentIndex, JudgeIndex]`. - **1 mark**: Validating that each score is in the range 0 to 50 inclusive using a loop or conditional structure. - **Calculating Final Score (3 marks)**: - **1 mark**: Initialising `TotalScore`, `HighestScore`, and `LowestScore` appropriately inside the student loop. - **1 mark**: Correct logic to find the highest score and the lowest score among the 5 judges. - **1 mark**: Correctly calculating `FinalScore` as the sum of the 3 intermediate scores (e.g., `TotalScore - HighestScore - LowestScore`). - **Determining Awards & Outputs (3 marks)**: - **1 mark**: Correct selection structure (`IF...THEN...ELSE`) to determine award category based on specified boundaries. - **1 mark**: Correctly incrementing counters for `GoldCount`, `SilverCount`, and `ParticipationCount`. - **1 mark**: Outputting individual student results (name + award) and final overall counters outside the loop with appropriate message strings.
### Marks allocated for AO3 (Provide solutions): Max 6 marks - **Quality & Accuracy of Solution (6 marks)**: - **5-6 marks**: The program is written in a highly logical sequence, is accurate, uses suitable identifiers throughout, and is fully commented. All aspects of the scenario have been fully solved. - **3-4 marks**: The program is written in a logical order, contains only minor logical or semantic errors, uses mostly meaningful identifiers, and contains some relevant comments. - **1-2 marks**: The program is mostly complete but contains significant logical errors, lacks relevant comments, or uses inappropriate identifier names.
Wondering how well you actually know this?
thinka is an AI practice app for IGCSE & IB students: unlimited questions, instant auto-marking, and detailed step-by-step solutions. 100,000+ students use it to confirm they actually know it, not just think they do.