Solve-Learn-Repeat
Master all 20 sub-topics across 8 chapters with 3,869+ practice questions — interactive MCQs, fill-in-the-blanks, creative activities, short & long answer questions, and key exam takeaways covering the full Cambridge 9618 syllabus.
Data Representation
User-defined Data Types
Why user-defined types are necessary. Define and use non-composite types (enumerated, pointer) and composite types (set, record, class/object). Choose and design an appropriate user-defined type for a given problem.
File Organisation and Access
Methods of file organisation: serial, sequential (using a key field), random (using a record key). Methods of file access: sequential access for serial/sequential files, direct access for sequential/random files. Hashing algorithms to read from and write data to a random/sequential file.
Floating-point Numbers, Representation and Manipulation
Format of binary floating-point real numbers using two's complement form. Effects of changing the allocation of bits to mantissa and exponent. Convert binary floating-point real numbers to denary and vice versa. Normalise floating-point numbers. Consequences of binary representation being an approximation (underflow, overflow, rounding errors).
Communication and Internet Technologies
Protocols
Why protocols are essential for computer communication. Protocol implementation as a stack, where each layer has its own functionality. TCP/IP protocol suite: four layers (Application, Transport, Internet, Link) and the purpose/function of each layer when a message is sent from one host to another. HTTP, FTP, POP3, IMAP, SMTP, BitTorrent (peer-to-peer file sharing) and their purposes.
Circuit Switching and Packet Switching
Circuit switching: benefits, drawbacks, where applicable. Packet switching: benefits, drawbacks, where applicable. Function of a router in packet switching. How packet switching is used to pass messages across a network, including the internet.
Hardware and Virtual Machines
Processors, Parallel Processing and Virtual Machines
RISC vs CISC processors (differences, interrupt handling on each). Importance/use of pipelining and registers in RISC processors. Four basic computer architectures: SISD, SIMD, MISD, MIMD. Characteristics of massively parallel computers. Concept of a virtual machine — examples of its role, benefits and limitations.
Boolean Algebra and Logic Circuits
Truth tables for logic circuits including half adders and full adders (may include gates with more than two inputs). Flip-flops (SR, JK): draw logic circuit, derive truth table, role of flip-flops as data storage elements. Boolean algebra using De Morgan's laws; simplify a logic circuit/expression. Karnaugh maps (K-map): benefits and use to solve logic problems.
System Software
Purposes of an Operating System (OS)
How an OS maximises the use of resources. How the user interface hides the complexities of the hardware. Process management: multi-tasking, the concept of a process, process states (running, ready, blocked), scheduling routines (round robin, shortest job first, first come first served, shortest remaining time), kernel as interrupt handler for low-level scheduling. Virtual memory, paging and segmentation for memory management; paging vs segmentation; page replacement; disk thrashing.
Translation Software
How an interpreter executes programs without producing a translated version. Stages in the compilation of a program: lexical analysis, syntax analysis, code generation and optimisation. Expressing the grammar of a language using syntax diagrams or Backus-Naur Form (BNF) notation. Reverse Polish Notation (RPN) for evaluation of expressions.
Security
Security
Cyber security threats: malware (viruses, worms, trojans, spyware, ransomware, key loggers, rootkits); social engineering (phishing, pharming, shoulder surfing, blagging, shouldering); brute-force, dictionary, DoS, DDoS, SQL injection; insecure data management. Security methods: anti-malware, firewalls (packet-filtering, stateful inspection, application-layer); user access rights, biometrics, two-factor authentication. Encryption: symmetric vs asymmetric, Caesar cipher, Vernam cipher, one-time pads. SSL/TLS for secure web traffic. Digital signatures and digital certificates. Data integrity: checksums, parity checks. Penetration testing. Security policies and best practices.
Artificial Intelligence (AI)
Artificial Intelligence (AI)
How graphs can be used to aid AI: purpose and structure of a graph; use A* and Dijkstra's algorithms to perform searches on a graph (candidates will not be required to write algorithms to set up, access, or perform searches on graphs). How artificial neural networks have helped with machine learning. Deep Learning, Machine Learning and Reinforcement Learning: reasons for using these methods; machine learning categories (supervised, unsupervised). Back propagation of errors and regression methods in machine learning.
Computational Thinking and Problem-solving
Searching Algorithms
Linear and binary searching methods. Write algorithms (Cambridge pseudocode and Python) to implement both iterative and recursive binary search. Conditions necessary for the use of a binary search (sorted, directly addressable structure). How the performance of each search varies according to the number of data items — worst-case comparisons, Big O (linear: O(n), binary: O(log n)). Tracing a binary search on a trace table. Debugging common off-by-one and bounds errors.
Sorting Algorithms
Bubble sort and insertion sort methods. Write algorithms in Cambridge pseudocode and Python. Performance variation depends on the initial order of data and the number of items — best, average, and worst case for each. Tracing the algorithms on a trace table. Standard optimisations (early termination flag in bubble sort; in-place shifting in insertion sort).
Abstract Data Types (ADT)
Write algorithms to find, insert and delete items in a linked list, binary tree, stack and queue. Graph as an example of an ADT — key features and justification for use. Implementing ADTs from built-in types or other ADTs (stack, queue, linked list, dictionary, binary tree). Pointers and dynamic data structures in pseudocode.
Comparing Algorithms (Big O)
Comparing algorithms using Big O notation for time and space complexity. Common complexity classes: O(1), O(log n), O(n), O(n log n), O(n²), O(2ⁿ). Best, average, and worst case analysis. Trade-offs between time and space. Justifying the choice of algorithm for a given problem.
Recursion
Essential features of recursion. How recursion is expressed in Python (defining functions that call themselves, base case vs inductive step). Writing and tracing recursive algorithms in Python — classic examples (factorial, Fibonacci, binary search, tree traversal). When the use of recursion is beneficial. What a compiler has to do to translate recursive programming code: use of stacks and unwinding. Aligned with Paper 4 Practical (Python console mode) and Paper 3 theory.
Further Programming
Programming Paradigms
What is meant by a programming paradigm. Characteristics of: Low-level programming (writing low-level code using addressing modes: immediate, direct, indirect, indexed, relative) — covered for Paper 3 theory only, excluded from Paper 4 practical; Imperative/Procedural programming (assumed knowledge of Structural Programming from AS 11.3; writing imperative code with variables, constructs, procedures and functions) — demonstrated in Python; Object-Oriented Programming — OOP terminology (objects, properties/attributes, methods, classes, inheritance, polymorphism, containment/aggregation, encapsulation, getters, setters, instances), designing appropriate classes, writing OOP code — demonstrated in Python; Declarative programming — writing facts and rules based on supplied information, writing code to satisfy a goal using facts and rules — covered for Paper 3 theory only, excluded from Paper 4 practical.
File Handling
File-processing operations in Python: open a file in read, write and append modes and close it; read a record from a text file and write a record to a text file; perform file-processing operations on serial and sequential text files. Worked examples with open(), read(), readline(), readlines(), write(), writelines() and the with-statement context manager. Aligned with Paper 4 Practical (Python console mode).
Random Files
Random (direct / relative) file processing in Python: using seek() and tell() to position the file pointer; reading and writing fixed-length records; direct access by record number; serial, sequential and random file organisations compared. Worked examples with binary file modes ('rb', 'wb', 'r+b') and struct.pack() / struct.unpack() for fixed-width records. Aligned with Paper 4 Practical (Python console mode).
Exception Handling
What an exception is, the importance of exception handling, and when it is appropriate to use it. Writing Python program code using try / except / else / finally to handle built-in exceptions (ValueError, TypeError, ZeroDivisionError, FileNotFoundError, IndexError, KeyError) and user-defined exceptions. Raising exceptions with raise and creating custom exception classes that inherit from Exception. Aligned with Paper 4 Practical (Python console mode).