Use flowcharts, structure diagrams and pseudocode to construct a solution to a given problem, and understand the wider context of computer systems, data representation, networking, cyber‑security and emerging technologies as required by the Cambridge IGCSE syllabus.
1. Computer Systems
1.1 Number Systems & Data Representation
Decimal (base 10) – digits 0‑9.
Binary (base 2) – digits 0 and 1. Used internally by all computers.
Hexadecimal (base 16) – digits 0‑9 and A‑F. Convenient for grouping binary bits in fours.
Conversion Methods (required for the exam)
From → To
Method
Decimal → Binary
Repeated division by 2; record remainders (least‑significant bit first).
Binary → Decimal
Sum of each bit × 2ⁿ (n = position index, starting at 0).
Decimal → Hexadecimal
Repeated division by 16; record remainders (0‑9, A‑F).
Hexadecimal → Binary
Replace each hex digit with its 4‑bit binary equivalent.
Binary → Hexadecimal
Group binary digits into 4‑bit blocks (add leading 0’s if needed) and convert each block.
Two’s‑Complement (signed integers)
Invert all bits (one’s complement).
Add 1 to the result.
The most‑significant bit (MSB) indicates the sign (0 = positive, 1 = negative).
Floating‑Point Representation (IEEE‑754 single precision)
Used for very large or very small real numbers; precision ≈ 7 decimal digits.
Overflow & Underflow (8‑bit arithmetic)
When an addition or subtraction produces a result outside the range 0‑255 (unsigned) or –128‑127 (signed), the processor sets an overflow flag. In the exam you may be asked to indicate whether overflow occurs.
Character Encoding
Encoding
Bits per character
Typical use
ASCII
7 bits (often stored in 8‑bit bytes)
Basic English text
Unicode (UTF‑8)
1‑4 bytes per character
World‑wide text, emojis, etc.
Data Types for Text, Sound & Images
Text – stored as a sequence of characters (ASCII/Unicode).
Sound – sampled at a given sample rate (e.g., 44 kHz) and stored with a bit depth (e.g., 16 bits). File‑size formula:
size (bits) = sample‑rate × bit‑depth × duration (seconds)
Example: 44 000 samples × 16 bits × 5 s = 3 520 000 bits = 440 kB.
Lossless – original data can be perfectly reconstructed (e.g., ZIP, PNG).
Lossy – some information is discarded for higher compression (e.g., MP3, JPEG).
1.2 Hardware & Architecture
CPU (Central Processing Unit)
ALU – performs arithmetic and logical operations.
Control unit – carries out the fetch‑decode‑execute cycle.
Registers – very fast, small storage (e.g., accumulator, program counter).
Von Neumann Architecture – single memory stores both data and instructions; the CPU fetches instructions sequentially unless a branch occurs. CPU ↔ Memory ↔ I/O devices (single bus for data & instructions)
Memory hierarchy
Primary: RAM (volatile) and ROM (non‑volatile).
Cache: L1 (fastest, smallest), L2, L3 – reduce latency between CPU and RAM.
Secondary: HDD, SSD, optical discs, magnetic tape.
Translate to a programming language – implement the design in Python, Java, etc.
Test and debug – run at least three test cases (including edge cases); correct any errors.
Document – label diagrams, comment code, and write a brief description of the algorithm.
2.3 Flowchart Symbols (Cambridge Specification)
Symbol
Meaning
Shape
Start/End
Marks the beginning or termination of the algorithm
Oval
Process
Performs an operation such as assignment or calculation
Rectangle
Decision
Tests a condition; two outgoing arrows for True/False
Diamond
Input/Output
Reads data from the user or displays results
Parallelogram
Connector
Links separate parts of a flowchart (used when the diagram does not fit on one page)
Circle
2.4 Structure Diagrams
Structure diagrams show the hierarchical relationship between modules (sub‑programs). They help visualise decomposition and data flow.
Top‑level box – labelled Main Program or Controller.
Sub‑boxes – represent individual modules such as InputData, ProcessData, DisplayResult.
Arrows indicate the direction of control and data flow.
Main Program → InputData → ProcessData → DisplayResult
2.5 Pseudocode Conventions (Cambridge)
Element
Convention (example)
Line numbering
01 READ a
Assignment
05 total ← a + b + c
Input
02 READ a, b, c
Output
10 WRITE "Average = ", average
Decision (IF)
15 IF average ≥ 50 THEN WRITE "Pass" ELSE WRITE "Fail" ENDIF
Loop – WHILE
20 WHILE i ≤ n DO sum ← sum + array[i] i ← i + 1 ENDWHILE
Loop – FOR
30 FOR i ← 1 TO n DO WRITE array[i] ENDFOR
Comment
-- This is a comment
2.6 Control Structures
Sequence – statements executed one after another.
Selection – IF…THEN…ELSE or CASE statements.
Repetition – WHILE, FOR, REPEAT…UNTIL.
2.7 Data Structures (Basic)
Variables – single values (integer, real, Boolean, character, string).
Arrays (lists) – ordered collection of items of the same type; indexed from 1 (or 0 in some languages).
Records (structures) – group of related fields (e.g., student{name, id, grade}).
2.8 Testing & Debugging
Effective testing follows a systematic approach:
Identify normal, boundary and error‑condition inputs.
Record the expected output for each case.
Run the program and compare actual vs. expected results.
Use trace tables to follow variable values step‑by‑step.
Fix any logical or syntax errors and re‑test.
2.9 Worked Example – Average of Three Numbers
Problem Statement
Read three integers from the user, calculate their average (to two decimal places) and display the result.
2.9.1 Analyse the Problem
Inputs: integers a, b, c
Processing: average ← (a + b + c) / 3 (real division)
Output: the average, rounded to two decimal places
Constraints: none beyond integer input; ensure division is performed using real arithmetic.
2.9.2 Design – Flowchart
Start → Input a, b, c → total ← a + b + c → average ← total / 3 → Output average → End
2.9.3 Design – Structure Diagram
Main Program → InputNumbers → CalculateAverage → DisplayResult
2.9.4 Pseudocode (with line numbers & comments)
01 -- Average of three numbers
02 READ a, b, c -- input three integers
03 total ← a + b + c -- sum the numbers
04 average ← total / 3.0 -- real division to get a float
05 WRITE "Average = ", average -- display result (rounded by language)
06 END
2.9.5 Test Cases (including edge cases)
Test #
Input (a,b,c)
Expected Output
1
10, 20, 30
Average = 20.00
2
0, 0, 0
Average = 0.00
3
-5, 5, 10
Average = 3.33
2.9.6 Trace Table (Test 1)
Step
a
b
c
total
average
After line 02
10
20
30
After line 03
10
20
30
60
After line 04
10
20
30
60
20.0
3. Quick Reference Tables
3.1 Number‑System Conversion Summary
From
To
Key Steps
Decimal → Binary
Binary
Divide by 2, record remainders (LSB first).
Binary → Decimal
Decimal
Sum each bit × 2ⁿ.
Decimal → Hex
Hexadecimal
Divide by 16, record remainders (0‑9, A‑F).
Hex → Binary
Binary
Replace each hex digit with its 4‑bit binary equivalent.
Binary → Hex
Hexadecimal
Group bits in fours (add leading 0’s if needed) and convert.
3.2 ASCII vs. Unicode (UTF‑8)
Aspect
ASCII
Unicode (UTF‑8)
Bits per character
7 bits (stored in 8‑bit bytes)
1‑4 bytes (variable length)
Character set
128 characters (English letters, digits, control codes)
Over 1 million code points – supports virtually all world scripts.
Typical use
Simple text files, legacy systems
Web pages, modern applications, multilingual data
3.3 Packet Header Fields (simplified)
Field
Purpose
Source address
Identifies the sender.
Destination address
Identifies the intended receiver.
Protocol
Indicates the type of payload (e.g., TCP, UDP).
Length
Size of the payload.
Checksum / CRC
Detects errors in transmission.
3.4 Error‑Detection Examples
Even parity for 1011001 → add 0 (total 4 ones, even).
ISBN‑13 check digit for 978030640615 → calculate sum = 100, check digit = (10‑(100 mod 10)) mod 10 = 0.
3.5 Encryption Summary
Type
Key(s)
Typical Algorithm
Use
Symmetric
Single secret key
AES, DES
Bulk data encryption, fast.
Asymmetric
Public & private key pair
RSA, ECC
Secure key exchange, digital signatures.
4. Summary of Key Points for Exam Revision
Be able to convert between decimal, binary and hexadecimal quickly.
Understand two’s‑complement, overflow detection and IEEE‑754 floating‑point format.
Know the differences between ASCII and Unicode, and be able to calculate image or sound file sizes.
Recall the main components of the Von Neumann architecture and the role of cache levels.
Memorise OSI layers, common network topologies and the difference between serial/parallel and duplex modes.
Be able to draw and interpret simple flowcharts and structure diagrams.
Write correct pseudocode using Cambridge conventions, including IF, FOR, WHILE and comments.
Apply systematic testing: normal, boundary and error cases; use trace tables.
Identify common cyber‑security threats and appropriate counter‑measures.
Understand basic concepts of encryption (symmetric vs. asymmetric) and error detection (parity, checksum, ARQ, check digits).
Your generous donation helps us continue providing free Cambridge IGCSE & A-Level resources,
past papers, syllabus notes, revision questions, and high-quality online tutoring to students across Kenya.