Roadmap

Paper 1: Principles of Computer Science

Topic 1: Computational thinking

1.1.1-1.1.2 - Decomposition, abstraction and subprograms
1.2.1 - Control flow, input and output
1.2.2 - Variables, constants and data structures
1.2.3 - Operators in algorithms
1.2.4 - Trace tables and algorithm outputs
1.2.5 - Program errors and logic correction
1.2.6 - Search and sorting algorithms
1.2.7 - Algorithm testing and efficiency
1.3.1 - Truth tables and Boolean logic

Topic 2: Data

2.1.1-2.1.3 - Binary states, unsigned and signed integers
2.1.4-2.1.5 - Binary arithmetic, shifts and overflow
2.1.6 - Hexadecimal
2.2.1 - Character encoding with ASCII
2.2.2 - Bitmap images
2.2.3 - Digital sound
2.2.4 - Limits of binary representation
2.3.1 - Storage units and file-size calculations
2.3.2 - Lossy and lossless compression
Locked

Topic 3: Computers

3.1.1 - Von Neumann architecture and fetch-decode-execute
Locked
3.1.2 - Secondary storage
Locked
3.1.3 - Embedded systems
Locked
3.2.1 - Operating systems
Locked
3.2.2 - Utility software
Locked
3.2.3 - Robust software and vulnerability detection
Locked
3.3.1 - High- and low-level languages
Locked
3.3.2 - Compilers and interpreters
Locked

Topic 4: Networks

4.1.1-4.1.2 - Network purposes, LANs and WANs
Locked
4.1.3 - Internet structure, IP addresses and routers
Locked
4.1.4 - Wired and wireless performance
Locked
4.1.5 - Transmission calculations
Locked
4.1.6 - Network and email protocols
Locked
4.1.7 - The four-layer TCP-IP model
Locked
4.1.8 - Bus, star and mesh topologies
Locked
4.2.1 - Network vulnerabilities and protection
Locked

Topic 5: Issues and impact

5.1.1 - Environmental impacts of digital technology
Locked
5.2.1 - Personal data, privacy and consent
Locked
5.2.2 - AI, machine learning and robotics
Locked
5.2.3 - Intellectual-property protection
Locked
5.3.1 - Malware, vulnerabilities and social engineering
Locked
5.3.2 - Protecting systems and data
Locked

Paper 2: Application of Computational Thinking

Foundations

6.3.1–6.3.2 – Values, variables and constants
Locked
6.4.1 – User input and output
Locked
6.5.1 – Arithmetic in programs
Locked
6.5.2–6.5.3 – Comparisons and Boolean logic
Locked
6.2.2 – Sequence and selection
Locked

Control flow and data

6.2.2 – Count-controlled loops
Locked
6.3.1 – One-dimensional lists
Locked
6.2.2 – Condition-controlled loops and iteration
Locked
6.3.3 – String positions and substrings
Locked
6.3.3 – Processing and formatting strings
Locked
6.4.3 – Validate input
Locked
6.3.1 – Records and two-dimensional lists
Locked

Subprograms and program reasoning

6.6.1 – Built-in and library subprograms
Locked
6.6.2 – Functions, procedures and parameters
Locked
6.6.3 – Local and global variables
Locked
6.2.1 – Identify program components
Locked
6.1.1 – Decompose and abstract a problem
Locked
6.1.2 – Read, analyse and refine programs
Locked
6.1.3 – Turn algorithms into Python
Locked

Quality and debugging

6.1.4 – Make programs readable
Locked
6.1.5 – Find and fix program errors
Locked
6.1.6 – Test and refine a program
Locked
6.1.6 – Compare program efficiency
Locked

Files and complete programs

6.4.2 – Read CSV text files
Locked
6.4.2 – Write and append CSV text files
Locked
6.4.4 – Authenticate with a lookup
Locked
6.6.1 – Turtle graphics
Locked
6.1.1–6.1.6 – Build, test and refine a complete program
Locked