Roadmap
Shared theory
Theory of computation
4.4.1.3–4.4.1.8 - Abstraction and information hiding
4.4.2.1 - Finite-state machines and Mealy output
4.4.2.2 - Sets, countability and Cartesian products
4.4.3.1 - BNF and syntax diagrams
4.4.4.4–4.4.4.7 - Tractability and limits of computation
Data representation
4.5.1.1–4.5.1.7 - Number systems, counting and measurement
4.5.2.1, 4.5.3.1–4.5.3.2 - Number bases and units of information
4.5.4.1–4.5.4.2 - Unsigned binary arithmetic
4.5.4.3 - Signed binary and two's complement
4.5.4.4 - Fixed-point and floating-point representation
4.5.4.5–4.5.4.6 - Rounding, absolute and relative errors
4.5.4.7–4.5.4.9 - Floating-point range, normalisation and limits
4.5.5.1–4.5.5.2 - Character digits, ASCII and Unicode
4.5.5.3 - Error checking and correction
4.5.6.1–4.5.6.3 - Bit patterns and analogue-to-digital conversion
4.5.6.4–4.5.6.6 - Bitmapped and vector graphics
4.5.6.7–4.5.6.8 - Digital sound and MIDI
4.5.6.9 - Lossless and lossy compression
Computer systems
4.6.1.1–4.6.1.3 - Hardware, software and system tools
4.6.1.4 - Operating-system responsibilities
4.6.2.1 - High-level and low-level languages
4.6.3.1 - Compilers, interpreters and assembly
4.6.4.1 - Logic gates and truth tables
4.6.5.1 - Boolean algebra and simplification
Computer organisation and architecture
4.7.1.1, 4.7.2.1 - Internal hardware and the stored-program concept
4.7.3.1–4.7.3.2 - Processor registers and the fetch-execute cycle
4.7.3.3–4.7.3.4 - Instruction sets and addressing modes
4.7.3.6–4.7.3.7 - Interrupts and processor performance
4.7.4.1 - Input and output devices
4.7.4.2 - Secondary storage technologies
Consequences of computing
4.8.1 - Computing's moral, social and cultural effects
4.8.1 - Law, ethical decisions and digital change
Communication and networking
4.9.1.1–4.9.1.2 - Transmission, bit rate and bandwidth
4.9.2.1–4.9.2.2 - Network topology and peer-to-peer or client-server models
4.9.2.3 - WiFi, access control and collision avoidance
4.9.3.1 - The Internet, packets, routing and DNS
4.9.3.2 - Firewalls, cryptography and malicious software
4.9.4.1 - TCP and IP layers, sockets and ports
4.9.4.2 - Web, mail, file-transfer and SSH protocols
4.9.4.3–4.9.4.6 - IP addresses, subnets and IPv6
4.9.4.7–4.9.4.9 - DHCP, NAT and port forwarding
4.9.4.10 - Client-server web applications, REST and data formats
4.9.4.11 - Thin-client and thick-client computing
Databases
4.10.1–4.10.2 - Relational data models, keys and entity relationships
4.10.3 - Database normalisation to third normal form
4.10.5 - Concurrent database access and integrity
Big Data
4.11.1 - Big Data, distribution and functional processing
4.11.1 - Fact-based models and graph schemas
Systematic problem solving
4.13.1.1–4.13.1.2 - Requirements, abstraction and iterative design
4.13.1.5 - Evaluating a solution against its requirements
Independent project skills
4.14.1.1–4.14.1.3, 4.14.4 - Independent projects, suitable problems and evidence
4.14.3.1, 4.14.5.1 - Project analysis and measurable objectives
4.14.3.2, 4.14.5.2 - Documented project design
4.14.2.1–4.14.2.2, 4.14.3.5–4.14.3.6, 4.14.5.4–4.14.5.5, 4.14.6 - Project testing, evaluation and evidence quality
6.1–6.2 - Authenticity, attribution and responsible assistance
Python route
Programming
4.1.1.1 - Data types and references (Python)
Locked
4.1.1.2, 4.1.1.3, 4.1.1.6 - Variables, constants and arithmetic (Python)
Locked
4.1.1.2, 4.1.1.4, 4.1.1.5 - Selection and Boolean conditions (Python)
Locked
4.1.1.2 - Definite, indefinite and nested iteration (Python)
Locked
4.1.1.7 - Strings, character codes and dates (Python)
Locked
4.1.1.8 - Random numbers and controlled simulations (Python)
Locked
4.1.1.9 - Exceptions and defensive input (Python)
Locked
4.1.1.10–4.1.1.12 - Subroutines, parameters and return values (Python)
Locked
4.1.1.13–4.1.1.14 - Local and global variable scope (Python)
Locked
4.1.1.15–4.1.1.16 - Stack frames and recursion (Python)
Locked
4.1.2.1–4.1.2.2 - Procedural design and hierarchy charts (Python)
Locked
4.1.2.3 - Classes, objects and encapsulation (Python)
Locked
4.1.2.3 - Inheritance, polymorphism and object relationships (Python)
Locked
Data structures
4.2.1.1–4.2.1.2 - Data structures and multidimensional arrays (Python)
Locked
4.2.1.3 - Text and binary files (Python)
Locked
4.2.1.4, 4.2.2.1 - Abstract data types and queues (Python)
Locked
4.2.3.1 - Stacks and their operations (Python)
Locked
4.2.4.1 - Graphs and adjacency representations (Python)
Locked
4.2.5.1 - Trees, rooted trees and binary trees (Python)
Locked
4.2.6.1, 4.2.7.1 - Hash tables and dictionaries (Python)
Locked
4.2.8.1 - Vectors, translation and dot products (Python)
Locked
Algorithms
4.3.1.1 - Breadth-first and depth-first graph traversal (Python)
Locked
4.3.2.1 - Tree traversals (Python)
Locked
4.3.3.1 - Reverse Polish and infix expressions (Python)
Locked
4.3.4.1–4.3.4.3 - Linear, binary and binary-tree search (Python)
Locked
4.3.5.1–4.3.5.2 - Bubble sort and merge sort (Python)
Locked
4.3.6.1 - Dijkstra's shortest-path algorithm (Python)
Locked
Theory of computation
4.4.1.1–4.4.1.2 - Solving problems and tracing algorithms (Python)
Locked
4.4.1.9–4.4.1.11 - Decomposition, composition and automation (Python)
Locked
4.4.2.3–4.4.2.4 - Regular expressions and regular languages (Python)
Locked
4.4.4.1–4.4.4.3 - Functions, growth and algorithm complexity (Python)
Locked
4.4.5.1 - Turing machines as a model of computation (Python)
Locked
Data representation
4.5.6.10 - Encryption, Caesar and Vernam ciphers (Python)
Locked
Computer organisation and architecture
4.7.3.5 - Machine-code and assembly operations (Python)
Locked
Databases
4.10.4 - SQL retrieval across related tables (Python)
Locked
4.10.4 - SQL table definitions and data changes (Python)
Locked
Functional programming
4.12.1.1–4.12.1.3 - Function types, first-class values and application (Python)
Locked
4.12.1.4–4.12.1.5 - Partial application and function composition (Python)
Locked
4.12.2.1 - Higher-order functions, map, filter and fold (Python)
Locked
4.12.3.1 - Functional lists, heads, tails and construction (Python)
Locked
Systematic problem solving
4.13.1.3–4.13.1.4 - Implementing, debugging and testing a solution (Python)
Locked
Independent project skills
4.14.3.3–4.14.3.4, 4.14.5.3 - Technical solutions, proficiency and coding style (Python)
Locked
C# route
Programming
4.1.1.1 - Data types and references (C#)
Locked
4.1.1.2, 4.1.1.3, 4.1.1.6 - Variables, constants and arithmetic (C#)
Locked
4.1.1.2, 4.1.1.4, 4.1.1.5 - Selection and Boolean conditions (C#)
Locked
4.1.1.2 - Definite, indefinite and nested iteration (C#)
Locked
4.1.1.7 - Strings, character codes and dates (C#)
Locked
4.1.1.8 - Random numbers and controlled simulations (C#)
Locked
4.1.1.9 - Exceptions and defensive input (C#)
Locked
4.1.1.10–4.1.1.12 - Subroutines, parameters and return values (C#)
Locked
4.1.1.13–4.1.1.14 - Local and global variable scope (C#)
Locked
4.1.1.15–4.1.1.16 - Stack frames and recursion (C#)
Locked
4.1.2.1–4.1.2.2 - Procedural design and hierarchy charts (C#)
Locked
4.1.2.3 - Classes, objects and encapsulation (C#)
Locked
4.1.2.3 - Inheritance, polymorphism and object relationships (C#)
Locked
Data structures
4.2.1.1–4.2.1.2 - Data structures and multidimensional arrays (C#)
Locked
4.2.1.3 - Text and binary files (C#)
Locked
4.2.1.4, 4.2.2.1 - Abstract data types and queues (C#)
Locked
4.2.3.1 - Stacks and their operations (C#)
Locked
4.2.4.1 - Graphs and adjacency representations (C#)
Locked
4.2.5.1 - Trees, rooted trees and binary trees (C#)
Locked
4.2.6.1, 4.2.7.1 - Hash tables and dictionaries (C#)
Locked
4.2.8.1 - Vectors, translation and dot products (C#)
Locked
Algorithms
4.3.1.1 - Breadth-first and depth-first graph traversal (C#)
Locked
4.3.2.1 - Tree traversals (C#)
Locked
4.3.3.1 - Reverse Polish and infix expressions (C#)
Locked
4.3.4.1–4.3.4.3 - Linear, binary and binary-tree search (C#)
Locked
4.3.5.1–4.3.5.2 - Bubble sort and merge sort (C#)
Locked
4.3.6.1 - Dijkstra's shortest-path algorithm (C#)
Locked
Theory of computation
4.4.1.1–4.4.1.2 - Solving problems and tracing algorithms (C#)
Locked
4.4.1.9–4.4.1.11 - Decomposition, composition and automation (C#)
Locked
4.4.2.3–4.4.2.4 - Regular expressions and regular languages (C#)
Locked
4.4.4.1–4.4.4.3 - Functions, growth and algorithm complexity (C#)
Locked
4.4.5.1 - Turing machines as a model of computation (C#)
Locked
Data representation
4.5.6.10 - Encryption, Caesar and Vernam ciphers (C#)
Locked
Computer organisation and architecture
4.7.3.5 - Machine-code and assembly operations (C#)
Locked
Databases
4.10.4 - SQL retrieval across related tables (C#)
Locked
4.10.4 - SQL table definitions and data changes (C#)
Locked
Functional programming
4.12.1.1–4.12.1.3 - Function types, first-class values and application (C#)
Locked
4.12.1.4–4.12.1.5 - Partial application and function composition (C#)
Locked
4.12.2.1 - Higher-order functions, map, filter and fold (C#)
Locked
4.12.3.1 - Functional lists, heads, tails and construction (C#)
Locked
Systematic problem solving
4.13.1.3–4.13.1.4 - Implementing, debugging and testing a solution (C#)
Locked
Independent project skills
4.14.3.3–4.14.3.4, 4.14.5.3 - Technical solutions, proficiency and coding style (C#)
Locked
Java route
Programming
4.1.1.1 - Data types and references (Java)
Locked
4.1.1.2, 4.1.1.3, 4.1.1.6 - Variables, constants and arithmetic (Java)
Locked
4.1.1.2, 4.1.1.4, 4.1.1.5 - Selection and Boolean conditions (Java)
Locked
4.1.1.2 - Definite, indefinite and nested iteration (Java)
Locked
4.1.1.7 - Strings, character codes and dates (Java)
Locked
4.1.1.8 - Random numbers and controlled simulations (Java)
Locked
4.1.1.9 - Exceptions and defensive input (Java)
Locked
4.1.1.10–4.1.1.12 - Subroutines, parameters and return values (Java)
Locked
4.1.1.13–4.1.1.14 - Local and global variable scope (Java)
Locked
4.1.1.15–4.1.1.16 - Stack frames and recursion (Java)
Locked
4.1.2.1–4.1.2.2 - Procedural design and hierarchy charts (Java)
Locked
4.1.2.3 - Classes, objects and encapsulation (Java)
Locked
4.1.2.3 - Inheritance, polymorphism and object relationships (Java)
Locked
Data structures
4.2.1.1–4.2.1.2 - Data structures and multidimensional arrays (Java)
Locked
4.2.1.3 - Text and binary files (Java)
Locked
4.2.1.4, 4.2.2.1 - Abstract data types and queues (Java)
Locked
4.2.3.1 - Stacks and their operations (Java)
Locked
4.2.4.1 - Graphs and adjacency representations (Java)
Locked
4.2.5.1 - Trees, rooted trees and binary trees (Java)
Locked
4.2.6.1, 4.2.7.1 - Hash tables and dictionaries (Java)
Locked
4.2.8.1 - Vectors, translation and dot products (Java)
Locked
Algorithms
4.3.1.1 - Breadth-first and depth-first graph traversal (Java)
Locked
4.3.2.1 - Tree traversals (Java)
Locked
4.3.3.1 - Reverse Polish and infix expressions (Java)
Locked
4.3.4.1–4.3.4.3 - Linear, binary and binary-tree search (Java)
Locked
4.3.5.1–4.3.5.2 - Bubble sort and merge sort (Java)
Locked
4.3.6.1 - Dijkstra's shortest-path algorithm (Java)
Locked
Theory of computation
4.4.1.1–4.4.1.2 - Solving problems and tracing algorithms (Java)
Locked
4.4.1.9–4.4.1.11 - Decomposition, composition and automation (Java)
Locked
4.4.2.3–4.4.2.4 - Regular expressions and regular languages (Java)
Locked
4.4.4.1–4.4.4.3 - Functions, growth and algorithm complexity (Java)
Locked
4.4.5.1 - Turing machines as a model of computation (Java)
Locked
Data representation
4.5.6.10 - Encryption, Caesar and Vernam ciphers (Java)
Locked
Computer organisation and architecture
4.7.3.5 - Machine-code and assembly operations (Java)
Locked
Databases
4.10.4 - SQL retrieval across related tables (Java)
Locked
4.10.4 - SQL table definitions and data changes (Java)
Locked
Functional programming
4.12.1.1–4.12.1.3 - Function types, first-class values and application (Java)
Locked
4.12.1.4–4.12.1.5 - Partial application and function composition (Java)
Locked
4.12.2.1 - Higher-order functions, map, filter and fold (Java)
Locked
4.12.3.1 - Functional lists, heads, tails and construction (Java)
Locked
Systematic problem solving
4.13.1.3–4.13.1.4 - Implementing, debugging and testing a solution (Java)
Locked
Independent project skills
4.14.3.3–4.14.3.4, 4.14.5.3 - Technical solutions, proficiency and coding style (Java)
Locked
VB.NET route
Programming
4.1.1.1 - Data types and references (VB.NET)
Locked
4.1.1.2, 4.1.1.3, 4.1.1.6 - Variables, constants and arithmetic (VB.NET)
Locked
4.1.1.2, 4.1.1.4, 4.1.1.5 - Selection and Boolean conditions (VB.NET)
Locked
4.1.1.2 - Definite, indefinite and nested iteration (VB.NET)
Locked
4.1.1.7 - Strings, character codes and dates (VB.NET)
Locked
4.1.1.8 - Random numbers and controlled simulations (VB.NET)
Locked
4.1.1.9 - Exceptions and defensive input (VB.NET)
Locked
4.1.1.10–4.1.1.12 - Subroutines, parameters and return values (VB.NET)
Locked
4.1.1.13–4.1.1.14 - Local and global variable scope (VB.NET)
Locked
4.1.1.15–4.1.1.16 - Stack frames and recursion (VB.NET)
Locked
4.1.2.1–4.1.2.2 - Procedural design and hierarchy charts (VB.NET)
Locked
4.1.2.3 - Classes, objects and encapsulation (VB.NET)
Locked
4.1.2.3 - Inheritance, polymorphism and object relationships (VB.NET)
Locked
Data structures
4.2.1.1–4.2.1.2 - Data structures and multidimensional arrays (VB.NET)
Locked
4.2.1.3 - Text and binary files (VB.NET)
Locked
4.2.1.4, 4.2.2.1 - Abstract data types and queues (VB.NET)
Locked
4.2.3.1 - Stacks and their operations (VB.NET)
Locked
4.2.4.1 - Graphs and adjacency representations (VB.NET)
Locked
4.2.5.1 - Trees, rooted trees and binary trees (VB.NET)
Locked
4.2.6.1, 4.2.7.1 - Hash tables and dictionaries (VB.NET)
Locked
4.2.8.1 - Vectors, translation and dot products (VB.NET)
Locked
Algorithms
4.3.1.1 - Breadth-first and depth-first graph traversal (VB.NET)
Locked
4.3.2.1 - Tree traversals (VB.NET)
Locked
4.3.3.1 - Reverse Polish and infix expressions (VB.NET)
Locked
4.3.4.1–4.3.4.3 - Linear, binary and binary-tree search (VB.NET)
Locked
4.3.5.1–4.3.5.2 - Bubble sort and merge sort (VB.NET)
Locked
4.3.6.1 - Dijkstra's shortest-path algorithm (VB.NET)
Locked
Theory of computation
4.4.1.1–4.4.1.2 - Solving problems and tracing algorithms (VB.NET)
Locked
4.4.1.9–4.4.1.11 - Decomposition, composition and automation (VB.NET)
Locked
4.4.2.3–4.4.2.4 - Regular expressions and regular languages (VB.NET)
Locked
4.4.4.1–4.4.4.3 - Functions, growth and algorithm complexity (VB.NET)
Locked
4.4.5.1 - Turing machines as a model of computation (VB.NET)
Locked
Data representation
4.5.6.10 - Encryption, Caesar and Vernam ciphers (VB.NET)
Locked
Computer organisation and architecture
4.7.3.5 - Machine-code and assembly operations (VB.NET)
Locked
Databases
4.10.4 - SQL retrieval across related tables (VB.NET)
Locked
4.10.4 - SQL table definitions and data changes (VB.NET)
Locked
Functional programming
4.12.1.1–4.12.1.3 - Function types, first-class values and application (VB.NET)
Locked
4.12.1.4–4.12.1.5 - Partial application and function composition (VB.NET)
Locked
4.12.2.1 - Higher-order functions, map, filter and fold (VB.NET)
Locked
4.12.3.1 - Functional lists, heads, tails and construction (VB.NET)
Locked
Systematic problem solving
4.13.1.3–4.13.1.4 - Implementing, debugging and testing a solution (VB.NET)
Locked
Independent project skills
4.14.3.3–4.14.3.4, 4.14.5.3 - Technical solutions, proficiency and coding style (VB.NET)
Locked