ZNOTES.
ORG
ALIGNED WITH THE 2023-2025 SYLLABUS
CAIE IGCSE
COMPUTER SCIENCE (0478)
PRACTICAL
Authorised for personal use only by shiva nayak at Adani International School generated on 14/10/2025
CAIE IGCSE COMPUTER SCIENCE
The program or set of programs is developed based on the
1. Algorithm Design & design.
Each module of the program is written using a suitable
Problem-Solving programming language.
Testing is conducted to ensure that each module functions
correctly.
1.1. Program Development Life Cycle Iterative testing is performed, which involves conducting
(PDLC) modular tests, making code amendments if necessary, and
repeating tests until the module meets the required
Analysis functionality.
Design
Coding Testing
Testing
Maintenance The completed program or set of programs is executed
multiple times using various test data sets.
Analysis This testing process ensures that all the tasks within the
program work together as specified in the program design.
Before solving a problem, it is essential to define and Running the program with different test data can identify
document the problem clearly, known as the "requirements and address potential issues and errors.
specification" for the program. The testing phase aims to verify the overall functionality
The analysis stage involves using tools like abstraction and and performance of the program by evaluating its
decomposition to identify the specific requirements for the behaviour with various inputs.
program.
Abstraction focuses on the essential elements needed for 1.2. Structure Diagrams
the solution while eliminating unnecessary details and
information. Every computer system is made up of sub-systems, which
Decomposition involves breaking down complex problems are in turn made up of further sub-systems.
into smaller, more manageable parts that can be solved Structure Diagrams – The breaking down of a computer
individually. system into sub-systems, then breaking each sub-system
Daily tasks can be decomposed into constituent parts for into smaller sub-systems until each one only performs a
easier understanding and solving. single action. A structure diagram diagrammatically
represents a top-down design. Example below.
Design
The program specification derived from the analysis stage is
used as a guide for program development.
During the design stage, the programmer should clearly
understand the tasks to be completed, the methods for
performing each task, and how the tasks will work together.
Documentation methods such as structure charts,
flowcharts, and pseudocode can be used to document the
program's design formally.
1.3. Pseudocode & Flowcharts
Coding and iterative testing
[Link] Copyright © 2025 ZNotes Education & Foundation. All Rights Reserved.
This document is authorised for personal use only by shiva at Adani International School on 14/10/25.
CAIE IGCSE COMPUTER SCIENCE
Pseudocode - Verbal representation of an algorithm (a Declaration & Usage of Variables & Constants
process or set of steps) and flowcharts are a diagrammatic Variable – Store of data which changes during execution
representation. of the program (due to user input)
Flowcharts: A flowchart shows diagrammatically the steps Constant – Store of data that remains the same during
required to complete a task and the order that they are to the execution of the program
be performed Basic Data Types
Algorithm: These steps, together with the order, are called Integer – Whole Number e.g. 2; 8; 100
an algorithm Real – Decimal Number e.g. 7.00; 5.64
Char – Single Character e.g. ‘a’; ‘Y’
String – Multiple Characters (Text) e.g. “ZNotes”; “COOL”
Boolean – Only 2 Values e.g. True/False; Yes/No; 0/1
Input & Output (READ & PRINT) – Used to receive and
display data to the user respectively. (It is recommended to
use input and output commands)
INPUT Name
OUTPUT "Hello Mr." , Name
// Alternatively //
READ Name
PRINT "Hello Mr," , Name
An example of a flowchart is given below from a past paper
question in which all of the functions of a flowchart are shown: Declaration of variable - A variable/constant can be
declared by the following manner
DECLARE [Variable Name] : [DATATYPE OF VARIABLE]
Array: Array is similar to variable but it can store multiple
values of same datatype under single name
DECLARE [ARRAYNAME] : ARRAY [Lower Limit : Upper Limit
Assignment - Each variable is assigned using a left arrow.
[VARIABLE NAME] <---- [Value to be assigned]
ArrayName [IndexValue] <---- [Value to be assigned]
Conditional Statements:
This flowchart’s task is to check if a rider’s height is more the IF…THEN…ELSE…ENDIF
requirement (1.2) in this case. It then counts until the accepted
riders are 8. After they are 8, it outputs the number of rejected
riders and tells the rest that they are ready to go!
2. Pseudocode
[Link] Copyright © 2025 ZNotes Education & Foundation. All Rights Reserved.
This document is authorised for personal use only by shiva at Adani International School on 14/10/25.
CAIE IGCSE COMPUTER SCIENCE
Loop Structures:
FOR…TO…NEXT : Will run for a determined/known am
REPEAT… UNTIL – Will run at least once till condition is
satisfied; Verification is done after running code
CASE…OF…OTHERWISE…ENDCASE – Multiple conditions and
corresponding consequences \n
WHILE…DO…ENDWHILE – May not ever run; Verification is
done before running code
Note: When using conditions in these loop structures and
conditional statement, it has to be kept in mind that it can
be done in two ways.
1. use of a Boolean variable that can have the value
TRUE or FALSE
2. comparisons made by using coparison operators,
where comparisons are made from left to right
IF [BOOLEAN VARIABLE]
THEN
OUTCOME
ELSE
OUTCOME
ENDIF
IF ((CONDITION 1) OR ( CONDITION 2)) AND (CONDITION 3)
THEN
OUTCOME
ELSE
OUTCOME
ENDIF
[Link] Copyright © 2025 ZNotes Education & Foundation. All Rights Reserved.
This document is authorised for personal use only by shiva at Adani International School on 14/10/25.
CAIE IGCSE COMPUTER SCIENCE
MaxiumumValue <--- Array[1] MinimumValue <--- Array[1]
2.1. FOR Counter ← 2 TO LoopLimit
IF Array[Counter] > MaximumValue
THEN
MaximumValue ← Array[Counter]
ENDIF
IF Array[Counter] < MinimumValue
THEN
MinimumValue ← Array[Counter]
ENDIF
NEXT Counter
// Average//
2.2. Standard methods used in algorithm: Total ← 0
FOR Counter ← 1 TO NumberOfValues
Total ← Total + StudentMark[Counter]
Totalling :Totalling means keeping a total that values are
NEXT Counter
added to
Average ← Total / NumberOfValues
Total ← 0
Linear Search: In a linear search, each item in the list is
FOR Counter ← 1 TO LoopLimit
Total ← Total + ValueToBeTotalled
inspected sequentially until a match is found or the entire
NEXT Counter
list is traversed.
Counting: Keeping a count of the number of times an action
INPUT Value
is performed is another standard method.
Found ← FALSE
PassCount ← 0 Counter ← 0
FOR Counter ← 1 TO LoopLimit REPEAT
INPUT Value IF Value = Array[Counter]
IF Value > Range THEN
THEN Found ← TRUE
PassCount ← PassCount + 1 ELSE
ENDIF Counter ← Counter + 1
NEXT Counter ENDIF
UNTIL Found OR Counter > NumberOfValues
Maximum, minimum and average : Finding the largest and IF Found
smallest values in a list are two standard methods that are THEN
frequently found in algorithms OUTPUT Value , " found at position " , Counter, " in
ELSE
OUTPUT Value , " not found."
ENDIF
[Link] Copyright © 2025 ZNotes Education & Foundation. All Rights Reserved.
This document is authorised for personal use only by shiva at Adani International School on 14/10/25.
CAIE IGCSE COMPUTER SCIENCE
Bubble Sort: Iteratively compare and swap adjacent Test data that would be rejected by the solution as not
elements in a list to sort them. Start from the first element suitable, if the solution is working properly is called
and continue until the second-to-last element. After each abnormal test data / erroneous test data.
pass, the last element is in its correct place. However, other e.g. in a program where only whole number values ranging
elements may still be unsorted. Repeat the process, from 0 to 100 (inclusive) are accepted, abnormal data will
excluding the last element, until only one element remains be: -1, 151, 200, 67.2, “Sixty-Two” and -520
or no swaps are needed.
First ← 1
3.3. Extreme Data
Last ← 10
REPEAT
Extreme data are the largest and smallest values that
Swap ← FALSE
normal data can take
e.g. in a program where only whole number values ranging
FOR Index ← First TO Last - 1
from 0 to 100 (inclusive) are accepted, extreme data will be:
IF Array[Index] > Array[Index + 1]
THEN
0 and 100
Temp ← Array[Index]
Array[Index] ← Array[Index + 1] 3.4. Boundary Data
Array[Index + 1] ← Temp
Swap ← TRUE This is used to establish where the largest and smallest
ENDIF values occur
NEXT Index At each boundary two values are required: one value is
Last ← Last - 1 accepted and the other value is rejected.
UNTIL (NOT Swap) OR Last = 1 e.g. in a program where only whole number values ranging
from 0 to 100 (inclusive) are accepted, one example of
boundary data will be: 100 and 101. 100 will be accepted
3. Test Data and 101 will not be accepted
Test data refers to input values used to evaluate and assess
the functionality and performance of a computer program 4. Trace Table
or system.
It helps identify errors and assess how the program handles A trace table is utilized to document the outcomes of every
different scenarios step in an algorithm. It is employed to record the variable's
value each time it undergoes a change.
A dry run refers to the manual process of systematically
3.1. Normal Data executing an algorithm by following each step in sequence.
Normal data is the test data which accepts values in A trace table is set up with a column for each variable and a
acceptible range of values of the program column for any output e.g.
Normal data should be used to work through the solution
to find the actual result(s) and see if they are the same as
the expected result(s)
e.g. in a program where only whole number values ranging
from 0 to 100 (inclusive) are accepted, normal test data will
be : 23, 54, 64 , 2 and 100
3.2. Abnormal Data Test data is employed to execute a dry run of the flowchart and
document the outcomes in a trace table. During the dry run:
[Link] Copyright © 2025 ZNotes Education & Foundation. All Rights Reserved.
This document is authorised for personal use only by shiva at Adani International School on 14/10/25.
CAIE IGCSE COMPUTER SCIENCE
The ability to write an algorithm is very important for this
Whenever a variable's value changes, the new value is syllabus and paper. Some key steps/points to be known in-
recorded in the respective column of the trace table. order to write the perfect algorithm are as follows:
Each time a value is outputted, it is displayed in the output
column. 1. Make sure that the problem is clearly understood which
includes knowing the purpose of the algorithm and the
An example of trace table is given below using a past paper tasks to be completed by the algorithm.
question: 2. Break the problem into smaller problems (e.g. in a
Q: The flowchart below inputs the height of children who want program which outputs average values, divide the
to ride on a rollercoaster. Children under 1.2 metres are problem into multiple ones i.e. how to count the
rejected. The ride starts when eight children have been number of iterations and how to count the total of all
accepted. values)
3. Identify the data that is needed to be saved into
variables/constants/arrays and what datatype it is, and
declare all the variables/constants/arrays accordingly,
with meaningfull names
4. Decide on how you are going to construct your
algorithm, either using a flowchart or pseudocode. If
you are told how to construct your algorithm, then
follow the guidance.
5. Construct your algorithm, making sure that it can be
easily read and understood by someone else. Take
particular care with syntax e.g. when conditions are
used for loops and selection.
6. Use several sets of test data (Normal, Abnormal and
Complete the trace table for the input data: 1.4, 1.3, 1.1, 1.3, Boundary) to dry run your algorithm and check if the
1.0, 1.5, 1.2, 1.3, 1.4, 1.3, 0.9, 1.5, 1.6, 1.0 expected results are achieved (a trace table can be used
Riders Reject Height OUTPUT
0 0
for this purpose) . If error is found, find the point of
1 1.4 error in the trace table and fix it in the code.
2 1.3
1 1.1
3 1.3
Note: The algorithms that you have looked at so far in these
2 1.0 notes were not designed with readability in mind because you
4 1.5
3 1.2
needed to work out what the problem being solved was.
5 1.3
5.1. Validation and Verification
6 1.4
7 1.3
4 0.9
8 1.5 Ready to go 4
To ensure the acceptance of reasonable and accurate data
inputs, computer systems must thoroughly examine each data
4.1. Identifying errors: item before accepting it, and this is where Validation and
Verification come into play!
Trace tables can be used to trace errors in a program. For
example, if the requirement for the previous question Validation
would be to accept riders that are of height 1.2 too, rather
than rejecting them, then the error would have been caught Validation in computer systems involves automated checks to
in the trace table as when 1.2 is entered, it would increment ensure the reasonableness of data before accepting it. If the
rejected which it shouldn’t in our example data is invalid, the system should provide an explanatory
message for rejection and allow another chance to enter the
5. How to write an algorithm? data.
[Link] Copyright © 2025 ZNotes Education & Foundation. All Rights Reserved.
This document is authorised for personal use only by shiva at Adani International School on 14/10/25.
CAIE IGCSE COMPUTER SCIENCE
There are multiple types of validation. These include:
Range check OUTPUT "Enter the value "
A range check verifies that a numerical value falls within REPEAT
specified upper and lower limits. INPUT Value
IF Value <> DIV(Value, 1)
REPEAT THEN
INPUT Value OUTPUT "This must be a whole number, please re-ente
IF Value < MinimumValue OR Value > MaximumValue ENDIF
THEN UNTIL Value = DIV(Value, 1)
OUTPUT "The student's mark should be in the range",
ENDIF Presence check
UNTIL Value >= MinimumValue AND Value <= MaximumValue
A presence check checks to ensure that some data has been
Length check entered and the value has not been left blank
This can either ensure that data consists of a precise number OUTPUT "Please enter the value "
of characters. REPEAT
INPUT Value
OUTPUT "Please enter your value of ", Limit , " chara IF Value = ""
REPEAT THEN
INPUT Value OUTPUT "*=Required "
IF LENGTH(Value) <> Limit ENDIF
THEN UNTIL Value <> ""
OUTPUT "Your value must be exactly" , Limit ," chara
ENDIF Format Check
UNTIL LENGTH(Value) = Limit
A format check checks that the characters entered conform to
It can also check if the data entered is a reasonable number of a pre-defined pattern.
characters or not
Check Digit
OUTPUT "Please enter your value "
REPEAT A check digit is the final digit included in a code; it is
INPUT Value calculated from all the other digits.
IF LENGTH(Value) > UpperLimit OR LENGTH(Value) < Lowe Check digits are used for barcodes, product codes,
THEN International Standard Book Numbers (ISBN), and Vehicle
OUTPUT "Too short or too long, please re-enter " Identification Numbers (VIN).
ENDIF
UNTIL LENGTH(Value) <= UpperLimit AND LENGTH(Value) >= Verification
Type check Verification is checking that data has been accurately copied
from one source to another
A type check verifies that the entered data corresponds to a There are 2 methods to verify data during entry ( there are
specific data type. other methods during data transfer, but they are in paper 1)
1. Double Entry
Data is inputted twice, potentially by different operators.
The computer system compares both entries and if they
differ, an error message is displayed, prompting the data to
be reentered.
2. Screen/Visual check
[Link] Copyright © 2025 ZNotes Education & Foundation. All Rights Reserved.
This document is authorised for personal use only by shiva at Adani International School on 14/10/25.
CAIE IGCSE COMPUTER SCIENCE
A screen/visual check involves the user manually reviewing
the entered data.
After data entry, the system displays the data on the screen
and prompts the user to confirm its accuracy before
proceeding.
The user can compare the displayed data against a paper
document used as an input form or rely on their own
knowledge to verify correctness.
[Link] Copyright © 2025 ZNotes Education & Foundation. All Rights Reserved.
This document is authorised for personal use only by shiva at Adani International School on 14/10/25.
[Link]
CAIE IGCSE
COMPUTER SCIENCE (0478)
PRACTICAL
© ZNotes Education Ltd. & ZNotes Foundation 2025. All rights reserved.
This version was created by shiva on Tue Oct 14 2025 for strictly personal use only.
These notes have been created by Abdullah Aamir, Shriram S, Meera Srivastava & Abhiram Mydi for the 2023-2025 syllabus.
The document contains images and excerpts of text from educational resources available on the internet and printed books.
If you are the owner of such media, test or visual, utilized in this document and do not accept its usage then we urge you to
contact us
and we would immediately replace said media. No part of this document may be copied or re-uploaded to another website.
Under no conditions may this document be distributed under the name of false author(s) or sold for financial gain.
"ZNotes" and the ZNotes logo are trademarks of ZNotes Education Limited (registration UK00003478331).