The Cambridge AS & A‑Level Computer Science syllabus is divided into two parts:
Each unit is linked to the three Assessment Objectives (AO1–AO3):
| AO | What is assessed |
|---|---|
| AO1 | Knowledge & understanding of concepts, terminology and theory. |
| AO2 | Application of knowledge – writing, interpreting and debugging code, solving problems. |
| AO3 | Analysis, design and evaluation – choosing appropriate solutions, justifying decisions, producing diagrams. |
| Unit | Key Concepts | Typical Example |
|---|---|---|
| 1 – Data Representation |
| Convert 101101₂ to decimal → 45₁₀. |
| 2 – Data Structures & Algorithms |
| Binary search on a sorted array of 1 000 000 elements takes ≤ 20 comparisons. |
| 3 – Computer Architecture |
| Explain why a 5‑stage pipeline can increase throughput. |
| 4 – Operating Systems |
| Round‑Robin with a quantum of 20 ms gives each process equal CPU time. |
| 5 – Networks & the Internet |
| Calculate the number of hosts in a /24 IPv4 subnet (254 usable). |
| 6 – Security & Ethics |
| Explain why a 2048‑bit RSA key is considered secure for now. |
| 7 – Databases |
| Write an SQL query to list all students with a GPA ≥ 3.5. |
| 8 – Software Development Life‑Cycle (SDLC) |
| Draw a simple class diagram for a library system. |
| 9 – Programming Fundamentals (Java/Python/VB) |
| Write a Python function that reads a text file and counts word frequencies. |
| 10 – Testing & Evaluation |
| Design test cases for a function that returns the maximum of three integers. |
| 11 – Multimedia & Compression |
| Explain why JPEG is unsuitable for archiving line‑art images. |
| 12 – Ethical, Legal & Environmental Issues |
| Discuss the ethical implications of facial‑recognition technology. |
| Unit | Key Concepts |
|---|---|
| 13 – User‑Defined Data Types | Records/structs, enums, classes, abstract data types (ADTs), composite vs non‑composite types, mathematical view, design considerations. |
| 14 – File Organisation & Access | Serial, sequential, random access; indexing, hashing, B‑trees, file formats (binary vs text). |
| 15 – Floating‑Point Representation | IEEE 754 single & double precision, rounding modes, overflow/underflow, error analysis. |
| 16 – Protocols & Switching | TCP, UDP, HTTP, FTP, circuit‑switched vs packet‑switched networks, routing algorithms (Dijkstra, Bellman‑Ford). |
| 17 – Processor Families & Virtual Machines | RISC vs CISC, pipelining depth, superscalar, Java Virtual Machine (JVM) architecture, bytecode interpretation vs JIT. |
| 18 – Advanced OS Concepts | Virtual memory, demand paging, page‑replacement policies (LRU, FIFO), deadlock detection & avoidance. |
| 19 – Encryption & Security Protocols | Symmetric ciphers (AES, DES), asymmetric (RSA, ECC), hash functions (SHA‑2), SSL/TLS handshake. |
| 20 – Artificial Intelligence Basics | Search strategies (BFS, DFS, A*), knowledge representation, simple neural‑network concepts, machine‑learning categories. |
Primitive types (int, char, float…) store a single low‑level value. Real‑world entities, however, consist of several related attributes that must travel together through a program. User‑defined types provide:
Student instead of a list of four variables).| Form | Typical Use | Key Characteristics |
|---|---|---|
| Record / struct | Simple aggregation of fields; no behaviour. | Fixed layout, fields may be of different primitive types; value semantics in C‑like languages. |
| Enumeration (enum) | Limited set of named constant values. | Improves readability, prevents invalid values; underlying integral type. |
| Class / object | Data + associated behaviour. | Supports encapsulation, inheritance, polymorphism; reference semantics in Java/Python/VB. |
| Abstract Data Type (ADT) | Specification of operations without exposing representation. | Implemented by a class, module or library; emphasises interface over implementation. |
struct holding an int and a float, a class that contains an array or another object).enum or a typedef alias.| Concept | Java | Python | Visual Basic .NET |
|---|---|---|---|
| Record / struct | public class Point { | from collections import namedtuple | Public Structure Point |
| Enum | public enum Year { FRESHMAN, SOPHOMORE, JUNIOR, SENIOR } | from enum import Enum | Public Enum Year |
| Class with encapsulation | public class Student { | class Student: | Public Class Student |
Formally, a composite user‑defined type is the Cartesian product of its component types:
\[
T = T1 \times T2 \times \dots \times T_n
\]
Example – the Student class (Java version):
\[
\text{Student} = \text{int} \times \text{String} \times \text{double} \times \text{Year}
\]
(x, y), a date, a bank‑account record).Vector class that can add, scale, compute magnitude).Java (JUnit 5)
public class PointTest {@Test
void creation() {
Point p = new Point(3, 4);
assertEquals(3, p.x);
assertEquals(4, p.y);
}
}
Python (unittest)
import unittestfrom collections import namedtuple
Point = namedtuple('Point', ['x', 'y'])
class TestPoint(unittest.TestCase):
def test_creation(self):
p = Point(3, 4)
self.assertEqual(p.x, 3)
self.assertEqual(p.y, 4)
if name == 'main':
unittest.main()
Visual Basic .NET (MSTest)
Imports Microsoft.VisualStudio.TestTools.UnitTesting
Public Class PointTests
Public Sub TestCreation()
Dim p As New Point(3, 4)
Assert.AreEqual(3, p.X)
Assert.AreEqual(4, p.Y)
End Sub
End Class
| AO | What the exam expects for Unit 13 | Suggested practice |
|---|---|---|
| AO1 | Define records, enums, classes, ADTs; give syntax for Java, Python, VB; explain abstraction, encapsulation, type safety. | Flash‑cards of language declarations; short written answers describing the purpose of each construct. |
| AO2 | Write a correct declaration, instantiate the type, access fields/methods, and use it in a small algorithm. | Write a BankAccount class (deposit, withdraw, balance check) in all three languages; then write a driver program that processes a list of accounts. |
| AO3 | Choose the most appropriate user‑defined type for a scenario, justify the choice, and produce a UML class diagram or data‑flow diagram. | Scenario: “Store information about a library book, including title, author, ISBN, and availability”. • Sketch a UML class diagram. • Explain why a class (not a struct) is preferred (behaviour such as borrow/return). |
enum called Suit for a deck of cards and explain why using an enum is safer than an int.Point objects, initialise them with coordinates (i, i²) and print the distance of each point from the origin.| From → To | Method |
|---|---|
| Binary → Decimal | Sum of 2ⁿ for each ‘1’ bit. |
| Decimal → Hexadecimal | Divide by 16, record remainders, read upwards. |
| Octal ↔ Binary | Group binary digits in sets of three. |
| Algorithm | Time | Space |
|---|---|---|
| Linear search | O(n) | O(1) |
| Binary search | O(log n) | O(1) |
| Bubble sort | O(n²) | O(1) |
| Merge sort | O(n log n) | O(n) |
| Algorithm | Key Feature | Typical Use‑case |
|---|---|---|
| FCFS | First‑come, first‑served | Batch systems |
| Round‑Robin | Time‑slice (quantum) sharing | Interactive time‑sharing |
| Priority | Higher‑priority jobs run first | Real‑time systems |
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.