Understand system decomposition and sub-systems

IGCSE Computer Science (0478) – Complete Revision Notes

How to Use These Notes

  • Read each syllabus domain in order – concepts build on one another.
  • After each section try the “Check‑Your‑Understanding” questions.
  • Use the “Exam‑Style Practice” at the end to test AO1‑AO3 skills.
  • Colour‑code your answers: AO1 (knowledge) – blue, AO2 (application) – green, AO3 (evaluation) – orange.

1 Computer Systems

1.1 Data Representation

ConceptKey Points (AO1)Exam Relevance (AO2)
Number systems Binary (base‑2), Decimal (base‑10), Hexadecimal (base‑16). Conversions use division‑remainder (binary) or grouping (hex). Convert between binary, decimal and hexadecimal; perform binary addition/subtraction.
Character encoding ASCII (7‑bit, 0‑127); Unicode (UTF‑8) – up to 4 bytes per character. Interpret a byte as a character; calculate storage for a text file.
Images & sound Bitmap – pixels, colour depth (bits/pixel). Audio – sampling rate, bit depth. Simple compression (run‑length, lossless vs lossy). Estimate file size of an image or audio clip; explain why compression reduces size.
Storage units 1 byte = 8 bits; 1 KB = 2¹⁰ bytes, 1 MB = 2²⁰ bytes, etc. Distinguish “kilobyte” (10³) from “kibibyte” (2¹⁰) where required. Convert between units; calculate total storage for a set of files.

1.2 Hardware

  • CPU – control unit, arithmetic‑logic unit (ALU), registers, clock speed (MHz/GHz).
  • Memory hierarchy – primary (RAM), secondary (HDD/SSD), tertiary (magnetic tape, cloud). Faster memory is smaller and more expensive.
  • Input devices – keyboard, mouse, scanner, microphone.
  • Output devices – monitor, printer, speakers.
  • Motherboard & bus – system bus, address bus, data bus; connects CPU, memory and I/O.

1.3 Software

  • System software – operating system (resource, file, security management).
  • Application software – word processors, spreadsheets, databases, web browsers.
  • Utility software – antivirus, backup, compression tools.

1.4 Internet & Communication

  • Network topologies – star, bus, ring, mesh.
  • Transmission media – twisted‑pair, fibre‑optic, wireless (Wi‑Fi, Bluetooth).
  • Protocols – TCP/IP model – link, internet, transport, application layers. Common protocols: HTTP, FTP, SMTP, DNS.
  • IP addressing – IPv4 (32‑bit) vs IPv6 (128‑bit); basic subnet mask concepts.
  • Data transmission concepts – bandwidth, latency, simplex/half‑duplex/full‑duplex.

1.4.1 Data Transmission (new)

  • Packet structure – header (source/destination address, control info), payload (actual data), trailer (error‑checking bits).
  • Packet‑switching vs circuit‑switching – packets travel independently via the best route (packet‑switching) vs a dedicated path is reserved for the whole session (circuit‑switching).
  • USB & serial/parallel links – USB uses packet‑based, half‑duplex communication; serial sends bits one after another, parallel sends multiple bits simultaneously.

1.4.2 Error‑Detection Methods (new)

MethodHow it works (AO1)Typical use (AO2)
Parity bit Adds a single bit to make the total number of 1’s even (even parity) or odd (odd parity). Detects single‑bit errors in simple data transfers.
Checksum Sum of all data bytes (mod 256) is sent; receiver recomputes and compares. Used in TCP/IP headers and many file‑transfer protocols.
ARQ (Automatic Repeat Request) Receiver sends ACK if data correct, NACK if error detected; sender retransmits on NACK. Ensures reliable delivery over unreliable links (e.g., Wi‑Fi).
Check‑digit (ISBN, bar‑code) Weighted sum of digits; the final digit makes the total divisible by a constant. Validates product codes, ISBN numbers.

1.4.3 Encryption (new)

  • Symmetric encryption – same key for encryption and decryption (e.g., AES). Fast, but key distribution is a problem.
  • Asymmetric encryption – public key encrypts, private key decrypts (e.g., RSA). Enables secure key exchange.
  • Typical diagram: Sender encrypts with receiver’s public key → ciphertext → receiver decrypts with private key.

1.4.4 Network Hardware (new)

  • Network Interface Card (NIC) – provides a physical connection; has a unique MAC address (48‑bit).
  • Router – forwards packets between different networks, uses IP addresses to determine the best path.
  • IPv4 vs IPv6 – IPv4: 32‑bit address (e.g., 192.168.0.1); IPv6: 128‑bit address (e.g., 2001:0db8:85a3::8a2e:0370:7334).

1.5 Security

  • Threats – malware (virus, worm, Trojan), phishing, DDoS, unauthorised access.
  • Protection measures – firewalls, encryption (see 1.4.3), strong passwords, multi‑factor authentication, regular backups.
  • Legal & ethical issues – GDPR, copyright, digital citizenship.

1.6 Emerging Technologies

  • Robotics – sensors, actuators, control algorithms.
  • Artificial Intelligence – basic machine‑learning ideas, neural networks.
  • Digital currency – blockchain fundamentals, Bitcoin basics.
  • Internet of Things (IoT) – embedded systems, cloud connectivity.

2 Program Development Life‑Cycle (PDLC)

2.1 Stages

  1. Analysis – understand the problem, list functional & non‑functional requirements.
  2. Design – decompose into sub‑systems, produce pseudocode/flowcharts, define data structures and interfaces.
  3. Implementation (Coding) – write the program in a chosen language.
  4. Testing – verification (does the code do what it says?) and validation (does it meet the original requirements?).
  5. Documentation & Maintenance – comments, user guide, plan for future updates.

2.2 System Decomposition (Extended)

Breaking a problem into manageable sub‑systems improves design, coding and testing. Follow the six‑step method and always record the interface (inputs, outputs, data exchanged) of each sub‑system.

  1. State the problem clearly. Example: “Generate a weekly school timetable.”
  2. Identify the main functions. e.g., data entry, constraint checking, schedule generation, output formatting.
  3. Group related functions into sub‑systems.
  4. Define the interface for each sub‑system. List inputs, outputs, data types and any shared variables.
  5. Document the hierarchy. Use a block diagram (see example below).
  6. Validate the decomposition. Ensure every requirement is covered and that coupling is low.

Example Block Diagram

+-------------------+
|   Main Program    |
+-------------------+
      |  |
  -----    -----
 |               |
V               V
+-----------+   +-----------------+
| Input     |   | Generate Timetable|
| Sub‑system|   | Sub‑system       |
+-----------+   +-----------------+
      |               |
      V               V
+-----------+   +-----------------+
| Validate  |   | Output Sub‑system|
| Sub‑system|   +-----------------+
+-----------+

Key Design Principles

  • Low coupling – minimise data sharing between sub‑systems.
  • High cohesion – each sub‑system performs one well‑defined job.
  • Consistent naming, clear comments, documented assumptions.

3 Standard Solution Methods (AO2)

MethodWhen to UseTypical Pseudocode Pattern
Search Find a specific item in a list or table. FOR each item IN list
IF item = target THEN RETURN position
END FOR
Sort (simple) Arrange data in ascending/descending order. FOR i = 1 TO n‑1
FOR j = i+1 TO n
IF list[i] > list[j] THEN SWAP
END FOR
END FOR
Totalling / Counting Calculate sums, averages, or count occurrences. total ← 0
FOR each value IN list
total ← total + value
END FOR
Min / Max / Average Find extremes or compute the mean. min ← list[1]; max ← list[1]; total ← 0
FOR each v IN list
IF v < min THEN min ← v
IF v > max THEN max ← v
total ← total + v
END FOR
average ← total / LENGTH(list)

4 Pseudocode & Flowchart Conventions (AO1)

  • Keywords in UPPERCASE: IF … THEN … ELSE … END IF, FOR … TO … STEP … END FOR, WHILE … DO … END WHILE.
  • Indentation shows block structure (four spaces per level is standard).
  • Comments start with # (or //) and explain purpose.
  • Flowchart symbols – oval (start/stop), parallelogram (input/output), rectangle (process), diamond (decision), arrows (flow).

5 Programming Fundamentals

5.1 Variables, Constants & Data Types

Data TypeTypical Range / SizeExample Declaration
INTEGER‑2,147,483,648 … 2,147,483,647 (32‑bit)INTEGER age ← 0
REALFloating‑point, approx. ±3.4 × 10³⁸REAL price ← 0.0
CHARACTERSingle characterCHARACTER grade ← 'A'
STRINGSequence of characters (max length defined by language)STRING name ← ""
BOOLEANTRUE or FALSEBOOLEAN isValid ← FALSE

5.2 Operators

  • Arithmetic: +, , *, /, MOD
  • Relational: =, , <, , >,
  • Logical: AND, OR, NOT
  • String concatenation: + (or & in some languages)

5.3 Input / Output

Typical IGCSE‑style pseudocode:

OUTPUT "Enter your name: "
INPUT name
OUTPUT "Hello, " + name + "!"

5.4 Control Structures

StructureSyntax (pseudocode)Typical Use (AO2)
Selection – IF IF condition THEN
...
ELSE
...
END IF
Choose between alternatives (e.g., grade calculation).
Selection – CASE CASE variable OF
1: ...
2: ...
OTHERWISE ...
END CASE
Multiple discrete options (e.g., menu choices).
Iteration – FOR FOR i ← start TO end STEP step
...
END FOR
Known number of repetitions (e.g., process 10 records).
Iteration – WHILE WHILE condition DO
...
END WHILE
Repeat until a condition fails (e.g., read until EOF).
Iteration – REPEAT…UNTIL REPEAT
...
UNTIL condition
Execute at least once, then test (e.g., password prompt).

5.5 Procedures & Functions (Modular Programming)

PROCEDURE calculateTotal(price, qty) RETURNS REAL
    RETURN price * qty
END PROCEDURE

Benefits: re‑use, clearer testing, lower coupling.

5.6 Arrays (1‑D & 2‑D)

INTEGER scores[5]          // 1‑D array of 5 integers
REAL matrix[3][4]          // 2‑D array: 3 rows × 4 columns

Common operations: initialise, traverse with FOR loops, find max/min, sum rows/columns.

5.7 File Handling (AO2)

OPEN "students.txt" FOR READ AS inFile
WHILE NOT EOF(inFile) DO
    INPUT line FROM inFile
    ...process line...
END WHILE
CLOSE inFile

5.8 Interrupts (new)

  • Hardware interrupt – triggered by external events (e.g., key press, mouse click).
  • Software interrupt – generated by a program instruction (e.g., division‑by‑zero, system call).
  • Typical ISR (Interrupt Service Routine) example:
ON KEYBOARD_INTERRUPT DO
    READ key FROM keyboard
    STORE key IN buffer
END ON

5.9 Compilers vs Interpreters (new)

AspectCompilerInterpreter
Operation Translates whole source code to machine code before execution. Executes source code line‑by‑line, translating on the fly.
Error reporting All syntax errors are found before the program runs. Errors are reported as each line is executed; program may run partially.
Typical use Languages such as C, Java (bytecode then JIT). Languages such as Python, BASIC.

6 Databases (Single‑Table Design)

6.1 Key Concepts

  • Record – a row of related data.
  • Field – a column; holds one attribute of a record.
  • Primary key – unique identifier for each record (e.g., StudentID).
  • Data types – INTEGER, REAL, TEXT, DATE.

6.2 Simple SQL Statements (AO1)

-- Create a table
CREATE TABLE Students (
    StudentID INTEGER PRIMARY KEY,
    Name      TEXT,
    Age       INTEGER,
    Grade     TEXT
);

-- Insert a record
INSERT INTO Students (StudentID, Name, Age, Grade)
VALUES (101, 'Alice', 14, 'A');

-- Retrieve data
SELECT Name, Grade FROM Students WHERE Age > 13;

-- Update a record
UPDATE Students SET Grade = 'B' WHERE StudentID = 101;

-- Delete a record
DELETE FROM Students WHERE StudentID = 101;

6.3 Normalisation (brief)

For IGCSE you need only recognise that a table should avoid duplicate data – each piece of information is stored once. This reduces redundancy and the risk of update anomalies.


7 Boolean Logic & Logic Gates

7.1 Truth Tables

GateSymbolTruth Table
AND A B | A∧B
0 0 | 0
0 1 | 0
1 0 | 0
1 1 | 1
OR A B | A∨B
0 0 | 0
0 1 | 1
1 0 | 1
1 1 | 1
NOT ¬ A | ¬A
0 | 1
1 | 0
NAND A B | A↑B
0 0 | 1
0 1 | 1
1 0 | 1
1 1 | 0
NOR A B | A↓B
0 0 | 1
0 1 | 0
1 0 | 0
1 1 | 0
XOR A B | A⊕B
0 0 | 0
0 1 | 1
1 0 | 1
1 1 | 0

7.2 Using Logic in Programs

  • Combine conditions with AND, OR, NOT in IF statements.
  • De‑Morgan’s laws help simplify complex conditions.
  • Boolean variables can store the result of a logical expression for later reuse.

8 Check‑Your‑Understanding (Sample Questions)

  1. Convert the binary number 101101₂ to decimal. (AO1)
  2. Write pseudocode to read 10 integers and output the maximum value. (AO2)
  3. Explain why a high‑cohesion, low‑coupling design is easier to test. (AO3)
  4. Identify the error‑detection method used in a parity‑checked byte. (AO1)
  5. Given the SQL statement SELECT * FROM Students WHERE Grade = 'A';, what data will be returned? (AO2)

9 Exam‑Style Practice (AO1‑AO3)

Question 1 (AO1)

List and briefly describe the three layers of the TCP/IP model.

Question 2 (AO2)

Write a flowchart that reads a series of exam scores (terminated by a negative number) and outputs the average score.

Question 3 (AO3)

Evaluate the advantages and disadvantages of using a cloud‑based database versus a local file‑based system for a small business.


10 Quick Reference Tables

10.1 Number System Conversions

Binary → DecimalDecimal → Binary
Multiply each bit by 2ⁿ (n = position from right, starting at 0) and sum.Repeated division by 2; record remainders (bottom‑up).

10.2 Memory Sizes

PrefixBinary (2¹⁰ⁿ)Decimal (10ⁿ)
K (kibi)1 KB = 1 024 bytes1 kB = 1 000 bytes
M (mebi)1 MB = 1 048 576 bytes1 MB = 1 000 000 bytes
G (gibi)1 GB = 1 073 741 824 bytes1 GB = 1 000 000 000 bytes

10.3 Comparison of Compilers & Interpreters

FeatureCompilerInterpreter
Execution speedFast (pre‑compiled)Slower (run‑time translation)
PortabilityNeeds separate compilation per platformOften more portable if source is available
DebuggingAll syntax errors caught before runCan test piece‑by‑piece; runtime errors only appear when executed

Create an account or Login to take a Quiz

36 views
0 improvement suggestions

Log in to suggest improvements to this note.