Back to Computers

Subject Content - A-Levels Computers

Topic 1: Computer systems

1.1 Computer architecture

ContentLearners should:
1.1.1    Stored-program conceptKnow and understand:
• Definition
• Function
• Characteristics
• Operation
• Benefits
• Drawbacks
1.1.2    von Neumann architectureKnow and understand:
• Definition
• Function
• Characteristics
• Operation
• Benefits
• Drawbacks
1.1.3    Internal components of a computer system:
a.    Central processing unit (CPU)
b.    Memory:
   • Random access memory (RAM)
   • Read-only memory (ROM)
   • Cache
c.    Input/output
d.    Buses:
   • Address
   • Data
   • Control
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
Be able to:
• interpret and complete a diagrammatic representation of the internal components of a computer system based on von Neumann architecture
• develop an expression for the amount of addressable memory.
1.1.4    Components of the CPU:
a.    Control unit (CU)
b.    Arithmetic logic unit (ALU)
c.    General-purpose registers
d.    Special-purpose registers:
   • Program counter (PC)
   • Memory address register (MAR)
   • Memory buffer register (MBR)
   • Current instruction register (CIR)
   • Accumulator (ACC)
   • Stack pointer (SP)
   • Status register (SR)
e.    Clock
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
Be able to:
• interpret and complete a diagrammatic representation of the components of the CPU.
Learners should be familiar with and be able to use the CPU component symbols shown in Appendix 2: Symbols.
1.1.5    Fetch-decode-execute (FDE) cycle:
a.    Stages
b.    Role of components
c.    Use of read/write control signals
Know and understand:
• Definition
• Function
• Why needed
• Operation
Be able to:
• use register transfer notation to show how data passes between registers during the FDE cycle
• interpret and complete a diagrammatic representation of the transfer of data between components during the FDE cycle.
Learners should be familiar with and be able to use the register transfer notation shown in Appendix 2: Symbols.
1.1.6    Memory hierarchy:
a.    CPU registers
b.    Cache:
   • Level 1
   • Level 2
   • Level 3
c.    Main memory
d.    Secondary storage
Know and understand:
• Definition
• Function
• Characteristics
• Operation
• Benefits
• Drawbacks
Be able to:
• interpret and complete a diagrammatic representation of the memory hierarchy.
1.1.7    Data transmission:
a.    Serial
b.    Parallel
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Be able to:
• interpret and complete a diagrammatic representation of data transmission.

1.2 The operating system (OS)

ContentLearners should:
1.2.1    Role of the OS:
a.    User interface
b.    User management
c.    Peripheral management
d.    Process management
e.    Memory management
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
1.2.2    Multitasking:
a.    Time sharing
b.    Context switching
c.    Interrupt handling in multitasking
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Be able to:
• interpret and complete a diagrammatic representation of the interrupt handling process.
1.2.3    Process management:
a.    Process
b.    Process states
c.    Scheduling
d.    Scheduling algorithms:
   • Round robin (RR)
   • First-come, first-served (FCFS)
   • Shortest job first (SJF)
   • Multi-level queue
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Be able to:
• interpret and complete a diagrammatic representation of process states
• interpret and complete a diagrammatic representation of a scheduling algorithm.
1.2.4    Memory management:
a.    Operations:
   • Tracking memory allocation status
   • Determining storage requirements
   • Controlling memory usage
b.    Allocation techniques:
   • Paging
   • Segmentation
   • Virtual memory
c.    Stack frame
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Be able to:
• interpret and complete a diagrammatic representation of memory usage
• interpret and complete a diagrammatic representation of the contents of a call stack.

Topic 2: Data representation

2.1 Numbers

ContentLearners should:
2.1.1    Number bases:
a.    Binary
b.    Denary
c.    Hexadecimal
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
Be able to:
• convert unsigned integers between bases.
2.1.2    Units of measurement:
a.    Binary numbers:
   • bit (b)
   • nibble
   • byte (B)
b.    IEC binary prefixes:
   • kibi (Ki)
   • mebi (Mi)
   • gibi (Gi)
   • tebi (Ti)
c.    SI decimal prefixes:
   • kilo (K)
   • mega (M)
   • giga (G)
   • tera (T)
Know and understand:
• Definition
• Function
• Characteristics
• Operation
• Benefits
• Drawbacks
Be able to:
• use binary units of measurement to express data capacity and file sizes
• use decimal units of measurement to denote transmission speeds
• rank units of measurement in size order
• convert between units of measurement
• interpret and write expressions using units of measurement
• calculate the maximum number of states that can be represented by a given number of bits.
2.1.3    Two's complement representation of signed numbersKnow and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
Be able to:
• convert signed denary integers into two's complement signed binary and vice versa
• use negation to convert from one sign to another.
2.1.4    Fixed-point representation of signed fractional numbersKnow and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
Be able to:
• convert signed fractional denary numbers to fixed-point signed binary and vice versa
• work with halves, quarters and eighths.

2.2 Binary arithmetic

ContentLearners should:
2.2.1    Addition and subtractionKnow and understand:
• Definition
• Function
• Operation
Be able to:
• perform addition and subtraction on signed and unsigned binary numbers.
2.2.2    Bitwise manipulation:
a.    Logical shift
b.    Arithmetic shift
c.    Bit masks:
   • AND
   • OR
   • XOR
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
Be able to:
• perform binary shifts
• use a mask to check the status of bits in a binary pattern.
2.2.3    Overflow and underflowKnow and understand:
• Definition
• Function
• Characteristics

2.3 Text

ContentLearners should:
2.3.1    Character encoding systems:
a.    ASCII/extended ASCII
b.    UTF-8/Unicode
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Benefits
• Drawbacks

Topic 3: Networks and encryption

3.1 Network fundamentals

ContentLearners should:
3.1.1    Network components:
a.    Network interface card (NIC)
b.    Switch
c.    Home router
d.    Modem
e.    Wireless access point (WAP)
f.    Transmission media:
   • Copper
   • Wireless
   • Fibre
g.    Firewall
   • Hardware
   • Software
Know and understand:
• Definition
• Function
• Why needed
• Characteristics
• Operation
• Benefits
• Drawbacks
Be able to:
• interpret and complete a diagrammatic representation of a network.
3.1.2    Network components:
a.    Bandwidth
b.    Speed/transfer rate
c.    Latency
d.    Range
Know and understand:
• Definition
• Characteristics
Be able to:
• develop expressions involving file size, transfer rate and time.
3.1.3    Network addressing:
a.    Internet protocol (IP):
   • IPv4
   • IPv6
b.    Media access control (MAC)
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
Be able to:
• develop expressions involving network addresses.

3.2 Encryption

ContentLearners should:
3.2.1    Encryption fundamentalsKnow and understand:
• Definition
• Function
• Characteristics
• Why needed
• Benefits
• Drawbacks
3.2.2    Methods of encryption:
a.    Symmetric:
   • Known shared key
   • Key exchange
b.    Asymmetric:
   • Public/private key pair
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Be able to:
• interpret and complete a diagrammatic representation of the encryption/decryption process.
3.2.3    Monoalphabetic substitution cipherKnow and understand:
• Definition
• Function
• Characteristics
• Operation
• Benefits
• Drawbacks
Be able to:
• encrypt a plaintext message/decrypt a ciphertext message using a monoalphabetic substitution cipher.
3.2.4    Vernam cipher algorithmKnow and understand:
• Definition
• Function
• Characteristics
• Operation
• Benefits
• Drawbacks
Be able to:
• encrypt a plaintext message/decrypt a ciphertext message using a Vernam cipher.

Topic 4: Structuring data

4.1 Relational databases

ContentLearners should:
4.1.1    Entity-relationship model (ERM):
a.    Entity
b.    Attribute
c.    Key:
   • Primary
   • Foreign
   • Composite
d.    Relationship cardinality:
   • One-to-one (1:1)
   • One-to-many (1:M)
   • Many-to-many (M:M)
e.    Ways of representing:
   • Entity-relationship diagram (ERD)
   • Parenthetical notation
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
Be able to:
• interpret, complete, find and correct errors in an ERD
• interpret, complete, find and correct errors in a schema expressed in parenthetical notation.
Learners should be familiar with and be able to use the ERD symbols shown in Appendix 2: Symbols.
Learners' understanding of relational databases is assessed in Unit 1. Their ability to connect to and use an SQLite database is assessed in Unit 2.
4.1.2    Logical schema:
a.    Table/relation
b.    Column/attribute
c.    Row/tuple
d.    Data types
e.    Integrity constraints:
   • Entity
   • Referential
   • Domain
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
Learners' understanding of relational databases is assessed in Unit 1. Their ability to connect to and use an SQLite database is assessed in Unit 2.

4.2 Data structures

ContentLearners should:
4.2.1    Data structures:
a.    Array
b.    List
c.    Dictionary
d.    Record
e.    Tuple
f.    Set
Know and understand:
• Definition
• Function
• Characteristics
• Operation
• Benefits
• Drawbacks
Be able to:
• hand trace operations on one- and two-dimensional data structures
• show the contents of a data structure after operations have been performed
• perform common operations on sets.
Learners' understanding of data structures is assessed in Unit 1. Their ability to create and handle data structures in code is assessed in Unit 2.

4.3 Abstract data types (ADTs)

ContentLearners should:
4.3.1    Stack:
a.    Structure
b.    Operations:
   • Insert
   • Delete
   • Search
Know and understand:
• Definition
• Function
• Characteristics
• Operation
• Benefits
• Drawbacks
Be able to:
• hand trace operations on a stack
• show the contents of a stack after operations have been performed.
Learners' understanding of the stack ADT is assessed in Unit 1. Their ability to represent and handle a stack implemented as a fixed-length list is assessed in Unit 2.
4.3.2    Queue:
a.    Structure
b.    Operations:
   • Insert
   • Delete
   • Search
Know and understand:
• Definition
• Function
• Characteristics
• Operation
• Benefits
• Drawbacks
Be able to:
• hand trace operations on a queue
• show the contents of a queue after operations have been performed.
Learners' understanding of the queue ADT is assessed in Unit 1. Their ability to represent and handle a queue implemented as a fixed-length list is assessed in Unit 2.

Topic 5: Problem solving

5.1 Tools and techniques

ContentLearners should:
5.1.1    AlgorithmsKnow and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
Be able to:
• interpret, complete and develop algorithms expressed in words, diagrams, flowcharts and code
• analyse the efficiency of algorithms
• find and correct logic errors in algorithms.
Learners should be familiar with and be able to use the flowchart symbols shown in Appendix 2: Symbols.
Learners' ability to interpret and develop algorithms is assessed in Unit 1. Their ability to convert algorithms into code is assessed in Unit 2.
5.1.2    Trace tableKnow and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
Be able to:
• complete a trace table for an algorithm.
5.1.3    RecursionKnow and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
Be able to:
• hand trace the operation of a recursive algorithm.
Learners' understanding of recursion is assessed in Unit 1. Their ability to use recursion in code is assessed in Unit 2.

5.2 Searching and sorting algorithms

ContentLearners should:
5.2.1    Linear search algorithm:
a.    Unsorted array
b.    Sorted array
Know and understand:
• Definition
• Function
• Characteristics
• Operation
• Benefits
• Drawbacks
Be able to:
• hand trace the operation of a linear search algorithm.
Learners' understanding of how a linear search algorithm works is assessed in Unit 1. Their ability to implement a linear search in code is assessed in Unit 2.
5.2.2    Binary search algorithm:
a.    Iterative
b.    Recursive
Know and understand:
• Definition
• Function
• Characteristics
• Operation
• Benefits
• Drawbacks
Be able to:
• hand trace the operation of a binary search algorithm.
Learners' understanding of how a binary search algorithm works is assessed in Unit 1. Their ability to implement a binary search in code is assessed in Unit 2.
5.2.3    Bubble sort algorithmKnow and understand:
• Definition
• Function
• Characteristics
• Operation
• Benefits
• Drawbacks
Be able to:
• hand trace the operation of a bubble sort algorithm.
Learners' understanding of how a bubble sort algorithm works is assessed in Unit 1. Their ability to implement a bubble sort in code is assessed in Unit 2.
5.2.4    Insertion sort algorithmKnow and understand:
• Definition
• Function
• Characteristics
• Operation
• Benefits
• Drawbacks
Be able to:
• hand trace the operation of an insertion sort algorithm.
Learners' understanding of how an insertion sort algorithm works is assessed in Unit 1. Their ability to implement an insertion sort in code is assessed in Unit 2.

5.3 Boolean logic

ContentLearners should:
5.3.1    Boolean expressions:
a.    Boolean operators:
   • AND
   • OR
   • XOR
   • NOT
   • NAND
   • NOR
b.    Order of precedence
Know and understand:
• Definition
• Function
• Why needed
• Operation
Be able to:
• interpret and create Boolean expressions.
Learners should be familiar with and be able to use the Boolean algebraic notation shown in Appendix 2: Symbols.
5.3.2    Truth tableKnow and understand:
• Definition
• Function
• Why needed
• Operation
Be able to:
• interpret and complete a truth table for a given logical expression.

5.4 Programming paradigms

ContentLearners should:
5.4.1    Procedural programming paradigmKnow and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Learners' understanding of the procedural programming paradigm is assessed in Unit 1. Their ability to use procedural programming is assessed in Unit 2.
5.4.2    Declarative programming paradigmKnow and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Learners' understanding of the declarative programming paradigm is assessed in Unit 1. Their ability to use declarative programming is assessed in Unit 2.

Topic 6: Enabling technologies

6.1 Data science

ContentLearners should:
6.1.1    Big data:
a.    Five Vs (volume, velocity, variety, veracity, value)
b.    Infrastructure:
   • Collection
   • Storage
   • Processing
   • Modelling and analysis
   • Networking
   • Security
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Be able to:
• interpret and complete a diagrammatic representation of a big data system.
6.1.2    Tools and techniques of data science:
a.    Collection
b.    Storage
c.    Web scraping
d.    Cleaning
e.    Analysis
f.    Visualisation
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks

6.2 Artificial intelligence (AI)

ContentLearners should:
6.2.1    Categories of AI:
a.    Narrow
b.    General
c.    Super
Know and understand:
• Definition
• Characteristics
• Why needed
• Benefits
• Drawbacks
6.2.2    Machine learning (ML):
a.    Supervised
b.    Unsupervised
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Be able to:
• interpret and complete a diagrammatic representation of a supervised/unsupervised ML system.
6.2.3    Large language model (LLM):
a.    Context and query accuracy
b.    Knowledge limitations
c.    Bias/subjectivity
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Be able to:
• interpret and complete a diagrammatic representation of a LLM system.

6.3 Tools

ContentLearners should:
6.3.1    Integrated development environment (IDE):
a.    Text editor
b.    Autocomplete
c.    Syntax checker
d.    Debugger:
   • Breakpoints
   • Stepping
e.    Memory inspection
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Learners' understanding of features of an IDE is assessed in Unit 1. They are expected to use an IDE when writing program code in Unit 2.
6.3.2    Version control system (VCS)Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Learners are not expected to have experience of using a VCS.
6.3.3    Open-source technologiesKnow and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
6.3.4    Application programming interface (API)Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Learners' understanding of APIs is assessed in Unit 1. They are expected to use an API when working with SQLite databases in Unit 2.

Topic 7: Programming

7.1 Constructs

ContentLearners should:
7.1.1    Flow control constructs:
a.    Sequence
b.    Selection
c.    Count-controlled iteration
d.    Condition-controlled iteration
e.    Exception handling for built-in exceptions
Be able to:
• select and use appropriate flow control constructs.
Further details provided in the Programming Language Subset (PLS) document.
7.1.2    Variables and constants:
a.    Creation
b.    Assignment
c.    Access
Be able to:
• select and use appropriate variables and constants.
Further details provided in the Programming Language Subset (PLS) document.
7.1.3    Operators:
a.    Arithmetic
b.    Relational
c.    Boolean
d.    Bitwise
Be able to:
• select and use appropriate operators.
Further details provided in the Programming Language Subset (PLS) document.
7.1.4    Subprograms:
a.    Parameter
b.    Argument
c.    Function
d.    Procedure
Be able to:
• select and use appropriate subprograms.
Further details provided in the Programming Language Subset (PLS) document.

Topic 8: Organising and handling data

8.1 Data types and structures

ContentLearners should:
8.1.1    Data types:
a.    Integer
b.    Real
c.    Character
d.    Boolean
e.    String
Be able to:
• select and use appropriate data types
• convert between data types.
Further details provided in the Programming Language Subset (PLS) document.
8.1.2    Data structures:
a.    Array
b.    List
c.    Dictionary
d.    Record
e.    Tuple
f.    Set
Be able to:
• select and use one- and two-dimensional data structures
• select and use one- and two-dimensional lists as equivalent to one- and two-dimensional arrays
• convert between data structures.
Further details provided in the Programming Language Subset (PLS) document.
Learners' understanding of data structures is assessed in Unit 1. Their ability to create and handle data structures in code is assessed in Unit 2.

8.2 Data handling methods

ContentLearners should:
8.2.1    Methods to handle numeric data:
a.    Rounding
b.    Truncation
c.    Randomisation
d.    Data type conversions
Be able to:
• select and use appropriate methods for handling numeric data.
Further details provided in the Programming Language Subset (PLS) document.
8.2.2    Methods to handle string data:
a.    Length
b.    Indexing
c.    Formatting
d.    Examining
e.    Manipulating
Be able to:
• select and use appropriate methods for handling string data.
Further details provided in the Programming Language Subset (PLS) document.
8.2.3    Methods to handle text files:
a.    Open
b.    Read from
c.    Write to
d.    Append to
e.    Close
Be able to:
• select and use appropriate methods for handling text files.
Further details provided in the Programming Language Subset (PLS) document.
8.2.4    Methods to handle data structures:
a.    Create
b.    Insert
c.    Update
d.    Retrieve
e.    Delete
f.    Traverse
Be able to:
• select and use appropriate methods for handling data structures.
Further details provided in the Programming Language Subset (PLS) document.
Learners' understanding of data structures is assessed in Unit 1. Their ability to create and handle data structures in code is assessed in Unit 2.
8.2.5    Methods to represent and handle a stack implemented as a fixed-length list:
a.    Create
b.    Push
c.    Pop
d.    IsEmpty
e.    IsFull
f.    Size
Be able to:
• select and use appropriate methods to handle a stack implemented as a fixed-length list.
Further details provided in the Programming Language Subset (PLS) document.
Learners' understanding of the stack ADT is assessed in Unit 1. Their ability to create and handle a stack implemented as a fixed-length list is assessed in Unit 2.
8.2.6    Methods to represent and handle a queue implemented as a fixed-length list:
a.    Create
b.    Enqueue
c.    Dequeue
d.    IsEmpty
e.    IsFull
f.    Size
Be able to:
• select and use appropriate methods to handle a queue implemented as a fixed-length list.
Further details provided in the Programming Language Subset (PLS) document.
Learners' understanding of the queue ADT is assessed in Unit 1. Their ability to create and handle a queue implemented as a fixed-length list is assessed in Unit 2.
8.2.7    Methods to handle a set:
a.    Membership
b.    Union
c.    Intersection
d.    Difference
Be able to:
• select and use appropriate methods to handle a set.
Further details provided in the Programming Language Subset (PLS) document.
Learners' understanding of sets is assessed in Unit 1. Their ability to use set operations in code is assessed in Unit 2.

8.3 Relational databases

ContentLearners should:
8.3.1    Methods to administer an SQLite databaseBe able to:
• select and use appropriate methods to administer an SQLite database.
Further details provided in the Programming Language Subset (PLS) document.
Learners' understanding of relational databases is assessed in Unit 1. Their ability to administer an SQLite database is assessed in Unit 2.
8.3.2    Methods to manipulate data from an SQLite databaseBe able to:
• select and use appropriate methods to manipulate data from an SQLite database.
Further details provided in the Programming Language Subset (PLS) document.
Learners' understanding of relational databases is assessed in Unit 1. Their ability to manipulate an SQLite database is assessed in Unit 2.
8.3.3    Methods to retrieve data from an SQLite databaseBe able to:
• select and use appropriate methods to retrieve data from an SQLite database.
Further details provided in the Programming Language Subset (PLS) document.
Learners' understanding of relational databases is assessed in Unit 1. Their ability to query an SQLite database is assessed in Unit 2.
8.3.4    Methods to filter and refine data retrieved from an SQLite databaseBe able to:
• select and use appropriate methods to filter and refine data retrieved from an SQLite database.
Further details provided in the Programming Language Subset (PLS) document.
Learners' understanding of relational databases is assessed in Unit 1. Their ability to filter and refine data retrieved from an SQLite database is assessed in Unit 2.

Topic 9: Best practice

9.1 Program design

ContentLearners should:
9.1.1    Methods to produce correct outcomes:
a.    Problem decomposition into component parts
b.    Clear and appropriate logic
c.    Variables, constants, data types and data structures appropriate to the problem
d.    Programming constructs appropriate to the problem
Be able to:
• select and use appropriate methods to produce correct outcomes.
Further details provided in the Good Programming Practice Guide (GPPG).
9.1.2    Methods to implement good practice in program design:
a.    Modularity
b.    Separation of concerns
c.    Minimisation of side effects
d.    Scope isolation
e.    Fitness for purpose of input and output
f.    Efficient solutions in terms of execution time and memory usage
Be able to:
• select and use appropriate methods to design effective code.
Further details provided in the Good Programming Practice Guide (GPPG).
9.1.3    Methods to implement modularity in source code:
a.    Blocked code
b.    User-defined subprograms
c.    Built-in subprograms
d.    Libraries of subprograms
e.    Files
f.    Procedures
g.    Functions
Be able to:
• select and use appropriate methods to produce modular code.
Further details provided in the Programming Language Subset (PLS) document and Good Programming Practice Guide (GPPG).

9.2 Clean code

ContentLearners should:
9.2.1    Consistency:
a.    Use of white space
b.    Line breaks layout
c.    Naming conventions
d.    Fixed line length
Be able to:
• select and use appropriate methods to improve the consistency of code.
Further details provided in the Good Programming Practice Guide (GPPG).
9.2.2    Readability:
a.    Meaningful identifiers
b.    Informative comments
c.    Named constants
d.    Subprograms
Be able to:
• select and use appropriate methods to improve the readability of code.
Further details provided in the Good Programming Practice Guide (GPPG).
9.2.3    Methods to control the behaviour of program code:
a.    Boundary value analysis
b.    Exception handling
c.    Minimising nested conditionals
d.    Minimising loops
e.    Using guard clauses
f.    Managed conversion of data types
Be able to:
• select and use appropriate methods to control the behaviour of code.
Further details provided in the Programming Language Subset (PLS) document and Good Programming Practice Guide (GPPG).

9.3 Functionality

ContentLearners should:
9.3.1    Methods to ensure that code is fit for purpose, produces accurate results and meets requirements:
a.    Testing and debugging
b.    Reviewing and refining
Be able to:
• identify errors in program code
• correct errors in program code
• produce accurate outcomes
• refine solutions to meet requirements.
Further details provided in the Good Programming Practice Guide (GPPG).

Topic 10: Computational thinking and algorithms

10.1 Computational thinking

ContentLearners should:
10.1.1    AbstractionBe able to:
• use subprograms to hide implementation details.
10.1.2    DecompositionBe able to:
• use comment-first coding to describe an algorithm.
10.1.3    Pattern recognitionBe able to:
• use the same or similar solution/algorithm/subprogram in a different problem
• use the same or similar data structure in a different problem.
10.1.4    GeneralisationBe able to:
• use a solution/algorithm/subprogram for similar problems by changing input parameters.

10.2 Implementing algorithms

ContentLearners should:
10.2.1    Create programmed solutions from algorithms:
a.    Expressed in words
b.    Expressed in diagrams
c.    Expressed in flowcharts
Be able to:
• convert algorithms into code.

10.3 Search and sort algorithms

ContentLearners should:
10.3.1    Linear search algorithm:
a.    Worst-case on unsorted list
b.    Early exit when found on unsorted list
c.    Early exit when found on sorted list
d.    Early exit when not in list on sorted list
Be able to:
• implement and use an appropriate linear search algorithm.
Learners' understanding of how a linear search algorithm works is assessed in Unit 1. Their ability to amend and write a linear search in code is assessed in Unit 2.
10.3.2    Binary search algorithm:
a.    Iterative
b.    Recursive
Be able to:
• implement and use an appropriate binary search algorithm.
Learners' understanding of how a binary search algorithm works is assessed in Unit 1. Their ability to amend and write a binary search in code is assessed in Unit 2.
10.3.3    Bubble sort algorithm:
a.    Worst case
b.    Exit with no swaps
c.    Reduce upper bound on each pass
Be able to:
• implement and use an appropriate bubble sort algorithm.
Learners' understanding of how a bubble sort algorithm works is assessed in Unit 1. Their ability to amend and write a bubble sort in code is assessed in Unit 2.
10.3.4    In-place insertion sort algorithmBe able to:
• implement and use an in-place insertion sort algorithm.
Learners' understanding of how an in-place insertion sort algorithm works is assessed in Unit 1. Their ability to amend and write an insertion sort in code is assessed in Unit 2.

10.4 Recursion

ContentLearners should:
10.4.1    Recursive algorithmsBe able to:
• implement and use recursive algorithms.
Learners' understanding of recursion is assessed in Unit 1. Their ability to amend and write recursion in code is assessed in Unit 2.

Topic 11: Computer systems and data representation

11.1 Computer architecture

ContentLearners should:
11.1.1    Harvard architecture:
a.    Memory structure
b.    Difference between Harvard and von Neumann architecture
Know and understand:
• Definition
• Function
• Characteristics
• Operation
• Benefits
• Drawbacks
Be able to:
• interpret and complete a diagrammatic representation of the internal components of a computer system based on the Harvard architecture.
Learners should be familiar with and be able to use the CPU component symbols shown in Appendix 2: Symbols.
11.1.2    Complex instruction set (CISC) and reduced instruction set computer (RISC):
a.    Architecture
b.    Difference between RISC and CISC
Know and understand:
• Definition
• Function
• Characteristics
• Operation
• Benefits
• Drawbacks
11.1.3    Five-stage instruction pipelining:
a.    Stages:
   • Instruction fetch (IF)
   • Instruction decode (ID)
   • Execute (EX)
   • Memory Access (MEM)
   • Register write back (WB)
b.    Branch hazards
Know and understand:
• Definition
• Function
• Characteristics
• Operation
• Benefits
• Drawbacks
Be able to:
• interpret and complete a diagrammatic representation of the pipelining process.
11.1.4    Parallel processing:
a.    Multicore processors:
   • Multiple instruction multiple data (MIMD)
b.    Graphic processing units (GPUs):
   • Single instruction multiple data (SIMD)
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Be able to:
• identify and complete a diagrammatic representation of parallel processing.
11.1.5    Embedded systems:
a.    Hardware components:
   • Microprocessor
   • Microcontroller unit (MCU)
   • Memory
   • I/O interfaces and ports
   • Sensors:
     ○ Accelerometer
     ○ Vibration
     ○ Sound
     ○ Temperature
   • Actuators
   • Analogue-digital converter (ADC/DAC):
     ○ Sampling
     ○ Quantisation
     ○ Encoding
   • Power supply
b.    Software components:
   • Firmware
   • Operating system (OS)
   • Application software
   • Programming languages used to develop software for embedded systems
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Be able to:
• interpret and complete a design for an embedded system
• interpret and complete a diagrammatic representation of the ADC/DAC process.

11.2 The operating system

ContentLearners should:
11.2.1    Input/output (I/O) device management:
a.    Role of device drivers
b.    Basic I/O system (BIOS)
c.    Role of buffering
d.    Role of caching
e.    Interrupt handling in device management
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Be able to:
• interpret and complete a diagrammatic representation of I/O in a computer system.
11.2.2    Virtualisation:
a.    Containerisation
b.    Virtual machines
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Be able to:
• interpret and complete a diagrammatic representation of a containerised system
• interpret and complete a diagrammatic representation of a virtual machine.

11.3 Data representation

ContentLearners should:
11.3.1    Floating-point representation (IEEE-754)Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Be able to:
• convert fractional numbers into binary and vice versa using 16-bit half precision IEEE-754 standard (1-bit sign), 5-bit exponent (biased), and 10-bit significand.

Topic 12: Networks and cybersecurity

12.1 Networking

ContentLearners should:
12.1.1    Open systems interconnection (OSI) reference model:
a.    Layers
b.    Encapsulation/decapsulation
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
Be able to:
• interpret and complete a diagrammatic representation of encapsulation/decapsulation of packets flowing through the OSI protocol stack.
12.1.2    Protocol stacks:
a.    TCP/IP
b.    SSL/TLS
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
Be able to:
• interpret and complete a diagrammatic representation of encapsulation/decapsulation of packets flowing through the TCP/IP protocol stack
• interpret and complete a diagrammatic representation of the SSL/TLS handshake.
12.1.3    Packet switching:
a.    Packet components
b.    Internet router
c.    Protocols
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Learners are not required to study circuit switching.
12.1.4    Domain name system (DNS)Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Be able to:
• interpret and complete a diagrammatic representation of how the DNS works.

12.2 The Internet of Things (IoT)

ContentLearners should:
12.2.1    The IoT stack:
a.    Device hardware
b.    Device software:
   • Operating system
   • Applications
c.    Connectivity:
   • Networks
   • Protocols
d.    Cloud platform:
   • Data collection
   • Analytics
   • APIs
e.    Cloud applications
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Be able to:
• interpret and complete a diagrammatic representation of an IoT system.

12.3 Cybersecurity

ContentLearners should:
12.3.1    CIA triad modelKnow and understand:
• Definition
• Characteristics
• Why needed
12.3.2    RSA encryption algorithm:
a.    Prime numbers
b.    Key exchange
c.    Vulnerabilities
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Be able to:
• interpret and complete a diagrammatic representation of RSA encryption.
12.3.3    Error detection:
a.    Parity bit
b.    Two-dimensional parity block
c.    Checksum
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Be able to:
• calculate the parity bit for a given set of bits
• calculate the parity bits for a given two-dimensional parity block
• calculate the checksum for a given block of data.

12.4 Computing paradigms

ContentLearners should:
12.4.1    Cloud computing:
a.    Infrastructure
b.    Services
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
12.4.2    Edge computing
a.    Infrastructure
b.    Services
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks

Topic 13: Programming languages

13.1 Types of programming languages

ContentLearners should:
13.1.1    Object-oriented programming (OOP) paradigm:
a.    Concepts:
   • Abstraction
   • Class
   • Instantiation
   • Methods and attributes (public, private, protected)
   • Encapsulation
   • Composition
   • Inheritance
   • Polymorphism
b.    Unified modelling language (UML) class diagrams
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Be able to:
• interpret and complete UML class diagrams
• identify object-oriented programming (OOP) features implemented in code.
Learners should be familiar with and be able to use UML class notation shown in Appendix 2: Symbols.
Learners' understanding of the object-oriented programming (OOP) paradigm is assessed in Unit 3. Their ability to use object-oriented programming (OOP) is assessed in Unit 4.
13.1.2    Functional programming paradigm:
a.    Concepts:
   • Pure functions
   • First-class functions
   • Higher-order functions
   • Recursion
   • Immutable variables
   • Avoid side-effects
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Learners' understanding of the functional programming paradigm is assessed in Unit 3. Their ability to use functional programming is assessed in Unit 4.
13.1.3    Assembly language:
a.    Mnemonics
b.    Instructions:
   • Opcode
   • Operand
c.    Addressing modes:
   • Immediate
   • Direct
d.    Operations:
   • Arithmetic
   • Bitwise
   • Branch
   • Data movement
   • Halt
e.    Comments
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Be able to:
• read and write simple assembly language code
• trace the execution of a simple assembly language program.
Learners should be familiar with and able to use the assembly language instructions and operations shown in Appendix 3: Assembly language instruction set.

Topic 14: Structuring data

14.1 Abstract data types (ADTs)

ContentLearners should:
14.1.1    Linked list:
a.    Structure
b.    Ways to represent:
   • Classes
   • References
c.    Operations:
   • Insert
   • Delete
   • Search
   • Traverse
Know and understand:
• Definition
• Function
• Characteristics
• Operation
• Benefits
• Drawbacks
Be able to:
• hand trace operations on a linked list
• show the contents of a linked list after operations have been performed.
Learners' understanding of the linked list ADT is assessed in Unit 3. Their ability to implement and handle a linked list is assessed in Unit 4.
14.1.2    Hash table:
a.    Structure
b.    Ways to represent:
   • Classes
   • References
c.    Operations:
   • Insert
   • Delete
   • Search
   • Traverse
   • Calculate hash values
   • Handle collisions
   • Load factor and rehashing
Know and understand:
• Definition
• Function
• Characteristics
• Operation
• Benefits
• Drawbacks
Be able to:
• hand trace operations on a hash table
• show the contents of a hash table after operations have been performed
• calculate hash values and handle collisions.
Learners' understanding of the hash table ADT is assessed in Unit 3. Their ability to implement and handle a hash table is assessed in Unit 4.
14.1.3    Graph:
a.    Structure
b.    Ways to represent:
   • Adjacency matrix
   • Adjacency list
c.    Types:
   • Undirected
   • Directed
   • Weighted
d.    Operations:
   • Insert
   • Delete
   • Search
   • Traverse [breath, depth]
Know and understand:
• Definition
• Function
• Characteristics
• Operation
• Benefits
• Drawbacks
Be able to:
• hand trace operations on a graph
• show the contents of a graph after operations have been performed.
Learners' understanding of the graph ADT is assessed in Unit 3. Their ability to implement and handle a graph is assessed in Unit 4.
14.1.4    Tree:
a.    Structure
b.    Types:
   • Binary tree
   • Binary search tree
c.    Operations:
   • Insert
   • Delete
   • Search
   • Traverse [pre-order, in-order, post-order]
Know and understand:
• Definition
• Function
• Characteristics
• Operation
• Benefits
• Drawbacks
Be able to:
• hand trace operations on a tree
• show the contents of a tree after operations are performed.
Learners' understanding of the tree ADT is assessed in Unit 3. Their ability to implement and handle a tree is assessed in Unit 4.
14.1.5    Circular queue:
a.    Structure
b.    Operations:
   • Insert
   • Delete
   • Search
Know and understand:
• Definition
• Function
• Characteristics
• Operation
• Benefits
• Drawbacks
Be able to:
• hand trace operations on a circular queue
• show the contents of a circular queue after operations are performed.
Learners' understanding of the circular queue ADT is assessed in Unit 3. Their ability to implement and use a circular queue implemented as a fixed-length list is assessed in Unit 4.

Topic 15: Problem solving

15.1 Algorithm design

ContentLearners should:
15.1.1    Problem-solving techniques:
a.    Brute force/exhaustive
b.    Divide and conquer
c.    Greedy algorithms
d.    Heuristics
e.    Backtracking
f.    Recursion
g.    Tracing algorithms
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Be able to:
• complete a trace table for an algorithm.
Learners' understanding of problem-solving techniques is assessed in Unit 3. Their ability to use them when writing code is assessed in Unit 4.

15.2 Algorithms

ContentLearners should:
15.2.1    Merge sort algorithmKnow and understand:
• Definition
• Function
• Characteristics
• Operation
• Benefits
• Drawbacks
Be able to:
• hand trace the operation of a merge sort algorithm.
Learners' understanding of how the merge sort algorithm works is assessed in Unit 3. Their ability to implement a recursive merge sort in code is assessed in Unit 4.
15.2.2    Quick sort algorithmKnow and understand:
• Definition
• Function
• Characteristics
• Operation
• Benefits
• Drawbacks
Be able to:
• hand trace the operation of a quick sort algorithm.
Learners' understanding of how the quick sort algorithm works is assessed in Unit 3. Their ability to implement a recursive quick sort in code is assessed in Unit 4.
15.2.3    Shortest path algorithms:
a.    Dijkstra's algorithm
b.    A* algorithm
Know and understand:
• Definition
• Function
• Characteristics
• Operation
• Benefits
• Drawbacks
Be able to:
• hand trace the operation of a Dijkstra's shortest path algorithm.
Learners' understanding of how the Dijkstra's shortest path algorithm works is assessed in Unit 3. Their ability to implement the algorithm in code is assessed in Unit 4.

15.3 Algorithmic efficiency

ContentLearners should:
15.3.1    Big O notation:
a.    Time complexity:
   • Constant
   • Logarithmic
   • Linear
   • Linearithmic
   • Polynomial
   • Exponential
Know and understand:
• Definition
• Function
• Why needed
Be able to:
• analyse algorithms to establish best and worst Big O
• give the best and worst Big O time complexity for common algorithms
• determine the Big O time complexity for given code.

15.4 Boolean logic

ContentLearners should:
15.4.1    Boolean algebra:
a.    Commutative
b.    Associative
c.    Absorption
d.    Distributive
e.    De Morgan's
f.    Double negation
Know and understand:
• Definition
• Function
• Why needed
• Operation
Be able to:
• use Boolean algebra to manipulate Boolean expressions such as demonstrating that one expression is equivalent to another.
Learners should be familiar with and be able to use the Boolean algebraic notation shown in Appendix 2: Symbols.
15.4.2    Karnaugh mapKnow and understand:
• Definition
• Function
• Why needed
• Operation
• Benefits
• Drawbacks
Be able to:
• use Karnaugh maps to simplify Boolean algebraic expressions.

Topic 16: Emerging technologies and professional practice

16.1 Emerging technologies

ContentLearners should:
16.1.1    Encryption:
a.    Digital signatures and certificates
b.    Hash digest and use of public/private keys
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
16.1.2    BlockchainKnow and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
Be able to:
• interpret and complete a diagrammatic representation of a blockchain.
16.1.3    Quantum computing:
a.    Qubits
b.    Principles:
   • Superposition
   • Entanglement
   • Decoherence
   • Interference
c.    Threat
d.    Cryptography
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks
16.1.4    Deep learning:
a.    Neural networks:
   • Layers
   • Forward propagation
   • Back propagation
   • Weights
   • Bias
   • Activation function
Know and understand:
• Definition
• Function
• Characteristics
• Why needed
• Operation
• Benefits
• Drawbacks

16.2 Professionalism

ContentLearners should:
16.2.1    Responsible practice:
a.    Ethical issues
b.    Legal frameworks
c.    Codes of conduct
Know and understand:
• Definition
• Function
• Characteristics
• Why needed

Topic 17: Programming

17.1 Fundamental concepts

ContentLearners should:
17.1.1    Select and use appropriate operators and flow control constructsBe able to:
• select and use appropriate operators and flow control constructs.
17.1.2    Select and use appropriate data types, variables and constantsBe able to:
• select and use appropriate data types, variables and constants.
17.1.3    Select and use appropriate one- and two-dimensional data structuresBe able to:
• select and use appropriate one- and two-dimensional data structures.

17.2 Creating solutions

ContentLearners should:
17.2.1    Using computational thinking techniquesBe able to:
• select and use appropriate computational thinking techniques.
17.2.2    Using IDEs and other toolsBe able to:
• select and use appropriate tools.
17.2.3    Using libraries, files, modules and subprogramsBe able to:
• select and use appropriate libraries, files, modules and subprograms.

Topic 18: Representing and handling data

18.1 Data handling methods

ContentLearners should:
18.1.1    Methods to handle floating-point data:
a.    Decimal module
b.    Rounding
c.    Decimal class
d.    Data type conversions
e.    Exception handling
f.    Compare
Be able to:
• select and use appropriate methods for handling floating-point data.
Further details provided in the Programming Language Subset (PLS) document.
18.1.2    Methods to handle regular expressions (re):
a.    Finding
b.    Validating
Be able to:
• select and use appropriate methods for handling regular expressions.
Further details provided in the Programming Language Subset (PLS) document.
18.1.3    Methods to handle numerical arrays (NumPy):
a.    Array
b.    Arithmetic
c.    Rounding
d.    Shape
e.    Load and save text files
Be able to:
• select and use appropriate methods for handling numerical arrays.
Further details provided in the Programming Language Subset (PLS) document.
18.1.4    Methods to handle data analysis (Pandas):
a.    Load CSV
b.    Measures of central tendency
c.    Information about data
d.    Clean data
e.    Load and save text files
Be able to:
• select and use appropriate methods for handling data to be analysed.
Further details provided in the Programming Language Subset (PLS) document.

18.2 Methods to represent and handle ADTs

ContentLearners should:
18.2.1    Methods to represent and handle a circular queue, implemented as a fixed-length list:
a.    Create
b.    Enqueue
c.    Dequeue
d.    IsEmpty
e.    IsFull
Be able to:
• select and use appropriate methods to handle a circular queue, implemented as a fixed-length list.
Further details provided in the Programming Language Subset (PLS) document.
Learners' understanding of the circular queue ADT is assessed in Unit 3. Their ability to amend and write a circular queue implemented as a fixed-length list is assessed in Unit 4.
18.2.2    Methods to represent and handle a linked list:
a.    Represent:
   • Classes
   • References
b.    Handle:
   • Insert
   • Remove
   • Update
   • Find
   • Traverse
Be able to:
• select and use appropriate methods to represent a linked list
• select and use appropriate methods to handle a linked list.
Further details provided in the Programming Language Subset (PLS) document.
Learners' understanding of the linked list ADT is assessed in Unit 3. Their ability to amend and write a linked list is assessed in Unit 4.
18.2.3    Methods to represent and handle a hash table:
a.    Represent:
   • Classes
   • References
b.    Handle:
   • Calculate hash value
   • Insert
   • Remove
   • Find
   • Traverse
Be able to:
• select and use appropriate methods to represent a hash table
• select and use appropriate methods to handle a hash table.
Further details provided in the Programming Language Subset (PLS) document.
Learners' understanding of the hash table ADT is assessed in Unit 3. Their ability to amend and write a hash table is assessed in Unit 4.
18.2.4    Hash algorithmBe able to:
• select and use an appropriate hash algorithm.
Further details provided in the Programming Language Subset (PLS) document.
Learners' understanding of the concept of hashing is assessed in Unit 3. Their ability to amend and write a hash algorithm is assessed in Unit 4.
18.2.5    Methods to handle collisions in a hash table:
a.    Separate chaining
b.    Linear probing
c.    Rehashing
Be able to:
• select and use appropriate methods to handle collisions in a hash table.
Further details provided in the Programming Language Subset (PLS) document.
Learners' understanding of the hash table ADT is assessed in Unit 3. Their ability to amend and write code to handle collisions in a hash table is assessed in Unit 4.
18.2.6    Methods to represent a graph:
a.    Adjacency matrix
b.    Adjacency list
Be able to:
• select and use appropriate methods to represent a graph.
Further details provided in the Programming Language Subset (PLS) document.
Learners' understanding of the graph ADT is assessed in Unit 3. Their ability to amend and write code to represent a graph is assessed in Unit 4.
18.2.7    Methods to represent and handle a binary search tree:
a.    Represent:
   • Classes
   • References
b.    Handle:
   • Insert
   • Find
   • Traverse
Be able to:
• select and use appropriate methods to represent a binary search tree
• select and use appropriate methods to handle a binary search tree.
Further details provided in the Programming Language Subset (PLS) document.
Learners' understanding of the tree ADT is assessed in Unit 3. Their ability to amend and write binary search trees is assessed in Unit 4.
18.2.8    Recursive tree traversal algorithms:
a.    Pre-order traversal
b.    In-order traversal
c.    Post-order traversal
Be able to:
• select and use appropriate recursive algorithms to traverse a tree.
Further details provided in the Programming Language Subset (PLS) document.
Learners' understanding of the tree ADT is assessed in Unit 3. Their ability to amend and write recursive traversals is assessed in Unit 4.

Topic 19: Best practice

19.1 Program design

ContentLearners should:
19.1.1    Methods to produce correct outcomes:
a.    Problem decomposition into component parts
b.    Clear and appropriate logic
c.    Variables, constants, data types and data structures appropriate to the problem
d.    Programming constructs appropriate to the problem
Be able to:
• select and use appropriate methods to produce correct outcomes to complex problems.
Further details provided in the Good Programming Practice Guide (GPPG).
19.1.2    Methods to implement good practice in program design:
a.    Modularity
b.    Separation of concerns
c.    Minimisation of side effects
d.    Scope isolation
e.    Fitness for purpose of input and output
f.    Efficient solutions in terms of execution time and memory usage
Be able to:
• select and use appropriate methods to design effective code.
Further details provided in the Good Programming Practice Guide (GPPG).
19.1.3    Methods to implement modularity in source code:
a.    Blocked code
b.    User-defined subprograms
c.    Built-in subprograms
d.    Libraries of subprograms
e.    Files
f.    Procedures
g.    Functions
Be able to:
• select and use appropriate methods to produce modular code.
Further details provided in the Good Programming Practice Guide (GPPG).

19.2 Clean code

ContentLearners should:
19.2.1    Consistency:
a.    Use of white space
b.    Line breaks layout
c.    Naming conventions
d.    Fixed-line length
Be able to:
• select and use appropriate methods to promote code consistency.
Further details provided in the Good Programming Practice Guide (GPPG).
19.2.2    Readability:
a.    Meaningful identifiers
b.    Informative comments
c.    Named constants
d.    Subprograms
Be able to:
• use appropriate methods to promote readability of program code.
Further details provided in the Good Programming Practice Guide (GPPG).
19.2.3    Methods to control behaviour of program code:
a.    Boundary value analysis
b.    Exception handling
c.    Minimising nested conditionals
d.    Minimising loops
e.    Using guard clauses
f.    Managed conversion of data types
Be able to:
• select and use appropriate methods to control behaviour of code.
Further details provided in the Programming Language Subset (PLS) document and Good Programming Practice Guide (GPPG).

19.3 Functionality

ContentLearners should:
19.3.1    Methods to ensure that code is fit for purpose, produces accurate results and meets requirements:
a.    Testing and debugging
b.    Reviewing and refining
Be able to:
• identify errors in program code
• correct errors in program code
• produce accurate outcomes
• refine solutions to meet requirements.
Further details provided in the Good Programming Practice Guide (GPPG).

Topic 20: Additional programming paradigms

20.1 Object-oriented programming (OOP) and functional programming

ContentLearners should:
20.1.1    Methods for object-oriented programming (OOP):
a.    Classes
b.    Attributes
c.    Methods
d.    Objects (instance)
e.    Encapsulation
f.    Getters
g.    Setters
h.    Aggregation
i.    Composition
j.    Inheritance
k.    Polymorphism
Be able to:
• convert Unified Modelling Language (UML) class diagrams into code
• select appropriate methods for object-oriented programming
• use appropriate methods for object-oriented programming.
Further details provided in the Programming Language Subset (PLS) document.
Learners' understanding of the characteristics of OOP is assessed in Unit 3. Their ability to amend and write OOP code in Python is assessed in Unit 4.
20.1.2    Methods for functional programming:
a.    Pure functions
b.    First-class functions
c.    Higher-order functions
d.    Immutable variables
e.    Avoid side effects
f.    Lazy evaluation
g.    Lambda functions
h.    Recursion
i.    Map
j.    Filter
k.    Reduce
l.    List comprehension
m.    Dictionary comprehension
n.    Zip
Be able to:
• select appropriate methods for functional programming
• use appropriate methods for functional programming.
Further details provided in the Programming Language Subset (PLS) document.
Learners' understanding of the characteristics of functional programming is assessed in Unit 3. Their ability to amend and write functional code in Python is assessed in Unit 4.

Topic 21: Algorithms

21.1 Sorting algorithms

ContentLearners should:
21.1.1    Recursive merge sort algorithmBe able to:
• implement and use a recursive merge sort algorithm.
Learners' understanding of how the merge sort algorithm works is assessed in Unit 3. Their ability to implement a recursive merge sort in code is assessed in Unit 4.
21.1.2    Recursive quick sort algorithmBe able to:
• implement and use a recursive quick sort algorithm.
Learners' understanding of how the quick sort algorithm works is assessed in Unit 3. Their ability to implement a recursive quick sort algorithm in code is assessed in Unit 4.

21.2 Shortest path and compression

ContentLearners should:
21.2.1    Dijkstra's shortest path algorithmBe able to:
• implement and use Dijkstra's shortest path algorithm.
Learners' understanding of how the Dijkstra's shortest path algorithm works is assessed in Unit 3. Their ability to implement the algorithm in code is assessed in Unit 4.
21.2.2    Run-length encoding compression algorithmBe able to:
• implement and use a run-length encoding algorithm.