AQA Level 1/Level 2 GCSE (9-1) in Computer Science
Official qualification regulated by Ofqual, awarded by AQA. Classified as a GCSE (9 to 1).
Course Syllabus & Study Modules
Complete breakdown of verified curriculum topics and learning objectives.
Arithmetic operations in a programming language
addition
- Identify the addition operator in a line of code.
- Evaluate a simple addition expression using given values.
- Explain that addition combines the values stored in operands to give a sum.
Arithmetic operations in a programming language
Be familiar with and be able to use:
- Identify each arithmetic operation listed under section 3.2.3.
- Write and run a short program that uses each listed operation.
- Record the operator symbols and output behaviour for the programming language being studied.
Arithmetic operations in a programming language
eg the calculation 11/2 would generate the following values:
- Explain how the calculation 11/2 can yield different values under real and integer division.
- Derive the quotient and remainder for a division example and verify them.
- Use a worked example as a model for reasoning rather than as a memorised fact.
Arithmetic operations in a programming language
Integer division, including remainders, is usually a two stage process and uses modular arithmetic:
- Explain that integer division keeps only the whole-number quotient.
- Calculate a remainder using modular arithmetic for given operands.
- Apply the two-stage process to a worked example and verify the remainder is less than the divisor.
Arithmetic operations in a programming language
integer division, including remainders.
- State the whole-number quotient produced by an integer division such as 11 DIV 2.
- State the remainder produced by a modulus operation such as 11 MOD 2.
- Distinguish integer division from real division when interpreting a calculation.
Arithmetic operations in a programming language
Integer division: the integer quotient of 11 divided by 2 (11 DIV 2) = 5
- State the value of 11 DIV 2 and explain why it is 5.
- Explain that DIV keeps the whole-number quotient and discards the fractional part.
- Distinguish DIV from ordinary division and from rounding in a given example.
Arithmetic operations in a programming language
multiplication
- Identify the multiplication operator in a program statement.
- Evaluate a multiplication expression accurately, including with negative values.
- Predict the value stored in a variable after a multiplication statement is executed.
Arithmetic operations in a programming language
real division
- Identify the real division operator in a program statement.
- Evaluate a real division expression and give the decimal result.
- Explain the difference between real division and integer division.
Arithmetic operations in a programming language
Remainder: the remainder when 11 is divided by 2 (11 MOD 2) = 1
- State the value of 11 MOD 2 and explain why it is 1.
- Calculate a remainder by subtracting quotient × divisor from the dividend.
- Use the relationship between DIV and MOD to check a result.
Arithmetic operations in a programming language
subtraction
- Identify the subtraction operator in a line of code.
- Evaluate a simple subtraction expression using given values.
- Explain why the order of operands changes the result of a subtraction.
Binary arithmetic
Answers will be a maximum of 8 bits in length and will not involve carrying beyond the 8th bit.
- Add two binary values and produce an answer of no more than 8 bits.
- Align operands correctly by place value before performing column addition.
- Recognise when a calculation would carry beyond the 8th bit and falls outside the published scope.
Binary arithmetic
Be able to add together up to three binary numbers.
- Add two binary numbers up to 8 bits correctly using carries.
- Add three binary numbers up to 8 bits correctly, tracking carries across columns.
- Verify a binary sum by converting the addends and result to denary.
Binary arithmetic
Be able to apply a binary shift to a binary number.
- Apply a left or right binary shift to an 8-bit number and write the resulting pattern.
- Explain how the number of places shifted relates to multiplication or division by a power of two.
- Check a shifted result by converting the original and new patterns to denary.
Binary arithmetic
Binary shifts can be used to perform simple multiplication/division by powers of 2.
- Apply a left shift to multiply a binary value by a power of two.
- Apply a right shift to divide a binary value by a power of two.
- Explain why shifting works only for powers of two and identify its limits.
Binary arithmetic
Describe situations where binary shifts can be used.
- State that a left shift by n places multiplies by 2ⁿ and a right shift divides by 2ⁿ.
- Apply a shift to a given binary pattern and calculate the resulting value.
- Identify at least two situations, such as fast scaling or bit extraction, where binary shifts are used.
Binary arithmetic
Students will be expected to understand and use only a logical binary shift.
- Apply a logical left shift to a binary pattern and state the resulting value.
- Apply a logical right shift to a binary pattern, discarding bits shifted off the end.
- Explain why vacated positions are filled with 0 in a logical shift.
Binary arithmetic
Students will be expected to use a maximum of 8 bits.
- Apply the 8-bit limit when setting out binary addition.
- Identify the range of an 8-bit unsigned number.
- Record any carry out of the most significant bit correctly.
Binary arithmetic
Students will need to be able to add together up to three binary numbers using a maximum of 8 bits per number.
- Add two or three 8-bit binary numbers column by column, carrying correctly.
- Handle column totals of up to 5 when carries and three addends combine.
- Determine the number of bits needed for the final sum, including any extra carry bit.
Binary arithmetic
Students will not need to understand or use fractional representations.
- Identify that fractional representations are outside the required scope of 3.3.4.
- Select revision material that focuses on whole-number binary arithmetic and logical shifts.
- Explain the difference between required whole-number work and out-of-scope fractional representations.
Binary arithmetic
Students will only be expected to add together a maximum of three 1s in a single column.
- Identify the maximum number of 1s that may appear in a single column under the published scope.
- Add columns containing up to three 1s, recording the correct sum bit and carry.
- Explain why a column total of 3 produces a carry of 1.
Boolean logic
. to represent the AND gate + to represent the OR gate ⊕ to represent the XOR gate Overbar to represent the NOT gate
- Identify the dot symbol as the AND gate in a Boolean expression.
- Identify the plus sign as the OR gate and the circled plus as the XOR gate.
- Recognise an overbar as representing the NOT gate applied to a term.
Boolean logic
A . B + C
- Identify the AND and OR operators in a Boolean expression written with dot and plus notation.
- Apply precedence to evaluate A . B + C as (A AND B) OR C.
- Substitute given input values and calculate the correct output for the expression.
Boolean logic
AND
- Identify the AND operator from its symbol, word or dot notation.
- Complete a truth table for a two-input AND gate correctly.
- Apply the AND rule to circuits with more than two inputs.
Boolean logic
Construct truth tables for simple logic circuits using combinations of NOT, AND, OR and XOR gates.
- Construct a complete truth table for a simple circuit combining NOT, AND, OR and XOR gates.
- Apply each gate's rule correctly to produce intermediate and final output columns.
- Verify a truth table has the correct number of rows and consistent outputs.
Boolean logic
Construct truth tables for the following logic gates:
- Determine the number of rows needed for a truth table from the number of inputs.
- List all input combinations in a systematic order without omission or repetition.
- Apply the correct logic-gate rule to complete the output column accurately.
Boolean logic
Create a logic circuit from a simple Boolean expression.
- Identify the inputs and operators in a simple Boolean expression.
- Select and draw the correct logic gates for each operator.
- Assemble the gates in the correct order and verify the output by tracing an input combination.
Boolean logic
Create and interpret simple Boolean expressions made up of NOT, AND, OR and XOR operations.
- State the output of NOT, AND, OR and XOR for given input values.
- Construct a simple Boolean expression from a described condition using the correct operators.
- Evaluate a compound Boolean expression by substituting values and applying precedence.
Boolean logic
Create the Boolean expression for a simple logic circuit.
- Identify the gates and connections in a simple logic circuit diagram.
- Write a Boolean expression using dot, plus and negation that matches the circuit.
- Use brackets to show the grouping produced by gates feeding other gates.
Boolean logic
Create, modify and interpret simple logic circuit diagrams.
- Create a simple logic circuit diagram from a given Boolean expression.
- Modify a circuit by changing a gate or connection and state the effect.
- Interpret a circuit by evaluating its output for given inputs.
Boolean logic
For example the expression (A AND B) OR (NOT C) would be represented as:
- Translate a worded Boolean expression into the correct symbols.
- Preserve brackets so the evaluation order is clear.
- Represent a NOT term using an overbar above the input.
Boolean logic
Interpret the results of simple truth tables.
- Read a simple truth table and identify which input combinations produce an output of 1
- Describe the input-output relationship in words and as a Boolean expression
- Match an observed truth-table pattern to the correct logic operation
Boolean logic
NOT
- Describe the effect of the NOT operator on a single Boolean input.
- Complete a two-row truth table for NOT.
- Distinguish NOT from two-input operators such as AND and OR.
Boolean logic
OR
- Identify the OR operator from its symbol, word or plus notation.
- Complete a truth table for a two-input OR gate correctly.
- Apply the OR rule to circuits with more than two inputs.
Boolean logic
Students do not need to know about or use NAND and NOR logic gates.
- Students do not need to know about or use NAND and NOR logic gates.
Boolean logic
Students should be able to construct simple logic circuit diagrams which contain up to three inputs.
- Draw NOT, AND and OR gates using correct standard symbols.
- Build a circuit of up to three inputs that matches a given Boolean expression.
- Label inputs and outputs and verify the circuit against test input combinations.
Boolean logic
Students should be able to construct truth tables which contain up to three inputs.
- Construct a truth table with up to three inputs containing all 2ⁿ input combinations
- Evaluate a Boolean expression row by row applying NOT, then AND, then OR
- Verify a completed truth table for completeness and correct output values
Boolean logic
Students will be expected to understand and use the following Boolean expression operators:
- Identify NOT, AND, OR and XOR and state whether each is unary or binary.
- Apply each operator to given Boolean inputs to produce the correct output.
- Combine operators correctly within a Boolean expression.
Boolean logic
Students will be expected to understand and use the following logic circuit symbols:
- Recognise the standard symbol for each required logic gate.
- Select the correct symbol when given a gate name.
- Distinguish visually similar symbols such as OR and XOR.
Boolean logic
Students will only need to use NOT, AND, OR and XOR gates within logic circuits.
- Identify NOT, AND, OR and XOR gates in a logic circuit diagram.
- State the output rule for each of the four required gates.
- Trace inputs and intermediate outputs through a circuit built only from these gates.
Boolean logic
XOR.
- State the output of an XOR operation for any given pair of binary inputs.
- Explain how XOR differs from OR and AND.
- Recognise the XOR gate symbol and its Boolean expression.
Boolean operations in a programming language
AND
- State the result of an AND expression for given operand values.
- Complete a truth table for A AND B.
- Explain why a program uses AND to require all conditions.
Boolean operations in a programming language
Be familiar with and be able to use:
- State the result of NOT, AND and OR for given Boolean inputs.
- Trace a compound Boolean condition with sample values to determine the overall result.
- Use Boolean operations correctly within a program condition in the stated language or pseudocode.
Boolean operations in a programming language
NOT
- Define NOT as a unary operator that reverses a Boolean value.
- Evaluate expressions combining NOT with AND and OR using correct precedence.
- Apply NOT to negate conditions in a program.
Boolean operations in a programming language
OR.
- State the result of an OR expression for given operand values.
- Complete a truth table for A OR B.
- Explain why a program uses OR to accept any of several conditions.
Boolean operations in a programming language
Students should be able to use these operators, and combinations of these operators, within conditions for iterative and selection structures.
- Evaluate a compound Boolean condition and state whether it is True or False.
- Select the correct operator (AND, OR, NOT) to express a given rule.
- Write a combined condition inside a selection or iteration structure that matches a stated requirement.
Character encoding
7-bit ASCII
- State that 7-bit ASCII uses 7 bits per character and gives 2⁷ = 128 codes.
- Identify characters that 7-bit ASCII can and cannot represent.
- Explain why 7-bit ASCII is limited compared with larger character sets.
Character encoding
convert character codes to characters.
- Identify the character represented by a given code in a stated character set.
- Explain that the decoded character depends on the character set used.
- Convert codes given in decimal, binary or hexadecimal into the correct character.
Character encoding
convert characters to character codes
- Identify the numeric code for a given character in a stated character set.
- Explain that character codes depend on the character set used.
- Record a character code accurately in decimal, binary or hexadecimal as required.
Character encoding
Describe the purpose of Unicode and the advantages of Unicode over ASCII.
- State the purpose of Unicode as assigning unique code points to characters.
- Explain why ASCII cannot represent many alphabets and symbols.
- Identify the advantage of Unicode over ASCII in terms of character range.
Character encoding
It is not necessary to be familiar with UTF-8, UTF-16 or other different versions of Unicode.
- Identify that specific Unicode versions such as UTF-8 and UTF-16 are outside the required content.
- Focus revision on Unicode's purpose and its shared codes with ASCII up to 127.
- Recognise when material goes beyond the specification scope and set it aside.
Character encoding
Know that Unicode uses the same codes as ASCII up to 127.
- State that Unicode uses the same code values as ASCII for characters numbered 0 to 127.
- Give an example of a character whose code is identical in ASCII and Unicode.
- Explain that the schemes differ above 127 because Unicode covers many more characters.
Character encoding
Students should be able to explain the need for data representation of different alphabets and of special symbols allowing a far greater range of characters.
- Explain why different alphabets require representation beyond a single limited scheme.
- Explain why special symbols must also be encoded.
- Describe how a broad encoding standard allows a far greater range of characters to be represented.
Character encoding
Students should be able to use a given character encoding table to:
- Use a supplied encoding table to find codes for characters and characters for codes.
- Encode and decode short strings accurately using the given table.
- Maintain correct code length and character order throughout.
Character encoding
Students should know that character codes are grouped and that they run in sequence. For example in ASCII ‘A’ is coded as 65, ‘B’ as 66, and so on, meaning that the codes for the other capital letters can be calculated once the code for ‘A’ is known. This pattern also applies to other groupings such as lower case letters and digits.
- Explain that character codes are grouped and run in sequence within each group.
- Use the ASCII code for ‘A’ (65) to calculate the code for another capital letter.
- Recognise that the same sequential pattern applies to lower case letters and digits.
Character encoding
Understand that character codes are commonly grouped and run in sequence within encoding tables.
- Describe how an encoding table maps characters to numeric codes.
- Explain that codes are grouped and run in sequence within a group.
- Use the sequential pattern to predict a code not directly shown in a table extract.
Character encoding
Understand what a character set is and be able to describe the following character encoding methods:
- Define a character set and explain its link to binary codes.
- Describe ASCII, Extended ASCII and Unicode in terms of bit width, character count and purpose.
- Explain why matching the encoding method is needed to decode text correctly.
Character encoding
Unicode.
- Describe Unicode as a character set covering many writing systems.
- Explain how code points are stored using an encoding such as UTF-8.
- Compare Unicode with 7-bit ASCII in terms of range and storage.
Classification of programming languages and translators
assembler.
- State that an assembler translates assembly language into machine code.
- Distinguish an assembler from a compiler and an interpreter.
- Recognise that assembly language is a low-level language tied to a processor's instruction set.
Classification of programming languages and translators
assemblers and compilers translate their input into machine code directly
- State that an assembler translates assembly language into machine code.
- State that a compiler translates a high-level program into machine code directly.
- Distinguish assembler and compiler output from interpreter behaviour.
Classification of programming languages and translators
compiler
- Define a compiler as a translator that converts a whole high-level program into machine code before execution.
- Explain why a compiled program can run without the compiler present.
- Compare a compiler with an interpreter in terms of output, speed and error reporting.
Classification of programming languages and translators
each line of assembly language is assembled into a single machine code instruction
- Identify the assembler as the translator for assembly language.
- Explain that each assembly line maps to a single machine code instruction.
- Compare assembly translation with high-level language translation in terms of instruction counts.
Classification of programming languages and translators
Explain the main differences between low-level and high-level languages.
- Describe the characteristics of low-level and high-level languages.
- Contrast the two levels across abstraction, portability, control and translation.
- Illustrate the differences with concrete examples of each level.
Classification of programming languages and translators
Explain the main differences between these three types of translator.
- Describe how a compiler, an interpreter and an assembler each translate code.
- Compare the three translators in terms of source language, translation method and output.
- Explain the consequences of each translation approach, such as error reporting and the need for the translator at run time.
Classification of programming languages and translators
high-level language.
- Define a high-level language in terms of abstraction from the machine.
- Give examples of high-level languages and their built-in constructs.
- Explain why high-level code needs a compiler or interpreter before it runs.
Classification of programming languages and translators
interpreter
- Define an interpreter as a translator that translates and executes source code one line at a time.
- Explain why an interpreter reports an error when it reaches a faulty line during execution.
- Compare an interpreter with a compiler in terms of output and speed of execution.
Classification of programming languages and translators
interpreters do not generate machine code directly (they call appropriate machine code subroutines within their own code to carry out statements).
- Explain how an interpreter executes a program statement by statement.
- Describe why an interpreter does not generate machine code directly.
- Compare interpreter and compiler translation approaches.
Classification of programming languages and translators
Know that machine code and assembly language are considered to be low-level languages and explain the differences between them.
- State that machine code and assembly language are both low-level languages.
- Describe how machine code is represented and executed directly by the processor.
- Explain at least two differences between machine code and assembly language, including the need for an assembler.
Classification of programming languages and translators
Know that there are different levels of programming language:
- State that programming languages exist at different levels.
- Distinguish high-level languages from low-level languages such as machine code and assembly language.
- Select the correct level for a described language or code sample.
Classification of programming languages and translators
low-level language
- Define a low-level language and give examples.
- Describe how assembly language is translated to machine code.
- Explain when a low-level language would be chosen despite its drawbacks.
Classification of programming languages and translators
Students should understand that most computer programs are written in high-level languages and be able to explain why this is the case.
- State that most programs are written in high-level languages.
- Explain at least two reasons why high-level languages are widely used.
- Describe the trade-off of needing translation before execution.
Classification of programming languages and translators
Students will need to know that:
- Identify the content that section 3.4.4 requires for both tiers.
- Explain how programming languages are classified.
- Describe the role of each named translator.
Classification of programming languages and translators
Understand that all programming code written in high-level or assembly languages must be translated.
- State that high-level and assembly code must be translated before execution.
- Match high-level languages to compilers or interpreters and assembly language to an assembler.
- Explain that translation produces machine code the processor can execute.
Classification of programming languages and translators
understand that assembly language has a 1:1 correspondence with machine code.
- State that assembly language has a 1:1 correspondence with machine code.
- Explain what the 1:1 correspondence means in terms of instructions.
- Identify the assembler as the translator from assembly to machine code.
Classification of programming languages and translators
understand that assembly language is often used to develop software for embedded systems and for controlling specific hardware components
- Explain why assembly language is suited to embedded systems.
- Describe how assembly language allows control of specific hardware components.
- Distinguish embedded systems from general-purpose computers.
Classification of programming languages and translators
Understand that machine code is expressed in binary and is specific to a processor or family of processors.
- State that machine code is expressed in binary.
- Explain that machine code is specific to a processor or family of processors.
- Relate processor specificity to the need to recompile for different hardware.
Classification of programming languages and translators
understand that processors execute machine code and that each type of processor has its own specific machine code instruction set
- State that processors execute machine code.
- Explain that each type of processor has its own specific machine code instruction set.
- Describe a consequence of differing instruction sets, such as a program not running on a different processor type.
Classification of programming languages and translators
Understand that there are three common types of program translator:
- Name the three common types of program translator.
- Describe what a compiler, an interpreter and an assembler each do.
- Explain a circumstance in which each type of translator is used.
Classification of programming languages and translators
Understand the advantages and disadvantages of low-level language programming compared with high-level language programming.
- State at least two advantages of low-level language programming.
- State at least two disadvantages of low-level language programming.
- Compare low-level and high-level languages by pairing advantages with corresponding disadvantages.
Classification of programming languages and translators
Understand when it would be appropriate to use each type of translator.
- Identify the three types of translator and describe what each one does.
- Explain why a compiler suits distributing finished software and an interpreter suits debugging.
- Select an appropriate translator for a given scenario and justify the choice.
Computer systems
Boolean logic
Computer systems
Classification of programming languages and translators
Computer systems
Hardware and software
Computer systems
Software classification
Computer systems
Systems architecture
Converting between number bases
Be able to convert in both directions between:
- Convert in both directions between decimal and binary.
- Convert in both directions between decimal and hexadecimal.
- Convert in both directions between binary and hexadecimal.
Converting between number bases
binary and decimal
- Convert a binary number to its decimal equivalent.
- Convert a decimal number to its binary equivalent.
- Verify a conversion by reversing the process.
Converting between number bases
binary and hexadecimal
- Convert a binary string into hexadecimal by grouping bits in fours from the right.
- Convert a hexadecimal value into binary by expanding each digit into four bits.
- Explain why hexadecimal is a compact shorthand for binary in computing contexts.
Converting between number bases
binary: 1111 1111
- Convert the binary value 1111 1111 into decimal by summing place values.
- Convert 255 back into 8-bit binary and check the result.
- Explain the significance of all bits being set in an 8-bit unsigned number.
Converting between number bases
decimal and hexadecimal.
- Convert a decimal number into hexadecimal using repeated division by 16.
- Convert a hexadecimal number into decimal using powers of 16.
- Explain the meaning of the hexadecimal digits A to F in terms of decimal values.
Converting between number bases
decimal: 255
- Convert the decimal number 255 into 8-bit binary using place values.
- Convert 1111 1111 back into decimal and confirm it equals 255.
- Explain why 255 uses all eight bits in an 8-bit unsigned representation.
Converting between number bases
hexadecimal: FF
- Convert a two-digit hexadecimal value to denary using place-value expansion.
- Convert a hexadecimal value to binary by replacing each digit with a 4-bit group.
- Explain why the letter F represents the value fifteen.
Converting between number bases
Students must be able to represent decimal values between 0 and 255 in binary.
- Convert a decimal value between 0 and 255 into an 8-bit binary pattern.
- Explain the place values used in an 8-bit binary number.
- Verify a binary conversion by summing the place values of the set bits.
Converting between number bases
Students must be able to represent decimal values between 0 and 255 in hexadecimal.
- Convert any decimal value from 0 to 255 into a two-digit hexadecimal value.
- Explain why the range 0–255 maps to two hexadecimal digits.
- Verify a hexadecimal answer by converting it back to decimal.
Converting between number bases
The following equivalent maximum values will be used:
- Identify the equivalent maximum values stated in the specification for each pair of number bases.
- Apply the stated maximum values to check the accuracy of a base conversion.
- Explain why a converted result exceeding the stated maximum indicates an error.
Converting between number bases
Understand how binary can be used to represent whole numbers.
- Convert a denary whole number into binary using place values.
- Convert a binary pattern into its denary value.
- Explain why binary is suited to representing whole numbers in a computer.
Converting between number bases
Understand how hexadecimal can be used to represent whole numbers.
- Explain how hexadecimal represents whole numbers using base 16 digits.
- Convert a whole number between decimal, binary and hexadecimal.
- Justify the use of hexadecimal as a compact form of binary.
Cyber security
Cyber security threats
Cyber security
Fundamentals of cyber security
Cyber security
Malicious code (malware)
Cyber security
Methods to detect and prevent cyber security threats
Cyber security
Social engineering
Cyber security threats
Explain what penetration testing is and what it is used for.
- Define penetration testing as authorised simulated attacking of a system.
- Explain the purposes of penetration testing, including finding and fixing vulnerabilities.
- Distinguish penetration testing from a real attack and from protective software.
Cyber security threats
malicious code (malware)
- Identify a malware type from a description of its behaviour.
- Explain how a named malware type spreads or causes harm.
- Select an appropriate defence or recovery measure against a given malware type.
Cyber security threats
misconfigured access rights
- Define access rights as permissions over files, folders and systems.
- Explain how a misconfiguration can allow unauthorised access or block legitimate use.
- Select the option that identifies misconfigured access rights rather than a different cyber threat.
Cyber security threats
Penetration testing is the process of attempting to gain access to resources without knowledge of usernames, passwords and other normal means of access.
- State that penetration testing is an attempt to gain access to resources.
- Explain that it is carried out without knowledge of usernames, passwords and other normal means of access.
- Distinguish penetration testing from legitimate access using valid credentials.
Cyber security threats
pharming
- Identify pharming from a description of a user being redirected to a fake site.
- Explain at least one method by which pharming redirects a user.
- Distinguish pharming from phishing in terms of how the victim is deceived.
Cyber security threats
Pharming is a cyber attack intended to redirect a website's traffic to a fake website.
- Define pharming as the redirection of web traffic to a fake site.
- Explain how pharming can occur without the user clicking a link.
- Distinguish pharming from phishing in a multiple-choice context.
Cyber security threats
removable media
- Identify examples of removable media.
- Explain how removable media can introduce malware or allow data to be copied.
- Select the option describing removable media as a cyber security threat rather than a network attack.
Cyber security threats
social engineering techniques
- Identify named social engineering techniques from a description of an attack.
- Distinguish phishing from pharming in a given scenario.
- Explain why user training reduces the risk of social engineering.
Cyber security threats
Students should understand the following two types of penetration testing:
- Identify the two types of penetration testing from the course materials.
- Describe what each of the two types involves.
- Explain how the two types differ.
Cyber security threats
Understand and be able to explain the following cyber security threats:
- Identify the four cyber security threats specified by AQA 8525.
- Explain how each threat can compromise a system.
- Describe appropriate mitigation measures for each threat.
Cyber security threats
unpatched and/or outdated software.
- Recognise unpatched and outdated software as a cyber security threat.
- Explain why leaving software unpatched creates an exploitable weakness.
- Distinguish this threat from other common cyber security threats.
Cyber security threats
weak and default passwords
- Distinguish a weak password from a default password.
- Explain why weak and default passwords allow unauthorised access.
- Recommend practical steps to reduce the risk from weak and default passwords.
Cyber security threats
when the person or team testing the system has knowledge of and possibly basic credentials for the target system, simulating an attack from inside the system (a malicious insider)
- Identify an insider penetration test from its description.
- Explain why prior knowledge and basic credentials place the test inside the system.
- Distinguish an insider test from an external attack.
Cyber security threats
when the person or team testing the system has no knowledge of any credentials for the target system, simulating an attack from outside the system (an external attack).
- Identify an external penetration test from its description.
- Explain why having no credentials places the test outside the system.
- Distinguish an external attack from an insider attack.
Data compression
Be able to calculate the number of bits required to store a piece of data compressed using Huffman coding.
- Read a code length for each character from a supplied Huffman tree.
- Compute frequency × code length for each character accurately.
- Sum the products to state the total bits required for the compressed data.
Data compression
Be able to calculate the number of bits required to store a piece of uncompressed data in ASCII.
- Calculate the total bits for a given text using a stated bits-per-character value.
- Count all characters, including spaces and punctuation, in a piece of data.
- Explain why the bits-per-character convention affects the result.
Data compression
Be able to interpret Huffman trees.
- Extract a character's code by tracing a root-to-leaf path in a given Huffman tree.
- Determine node and total frequencies from the tree structure.
- Decode a short bit string using a supplied Huffman tree.
Data compression
eg 0000011100000011
- Identify the runs of repeated bits in a given binary pattern.
- Encode a bit pattern using run-length encoding and decode it back.
- Explain when run-length encoding reduces data size and when it may not.
Data compression
Explain how data can be compressed using Huffman coding.
- Describe the steps used to build a Huffman tree from character frequencies.
- Explain why frequent characters receive shorter codes.
- Justify why Huffman coding allows the original data to be recovered exactly.
Data compression
Explain how data can be compressed using run length encoding (RLE).
- Encode a short sequence of data using run length encoding.
- Decode a run length encoded sequence back to the original data.
- Explain when RLE reduces size and when it may not.
Data compression
Explain what data compression is.
- State that data compression reduces the number of bits needed to store or transmit data.
- Identify that compression exploits redundancy such as repeated patterns.
- Select the option that correctly describes compression rather than deletion or format change.
Data compression
Represent data in RLE frequency/data pairs. Students could be given a bitmap representation and they would be expected to show the frequency and value pairs for each row,
- Produce frequency/data pairs for each row of a given bitmap.
- Keep frequency before value and start a new pair when the pixel value changes.
- Decode frequency/data pairs back into a bitmap to check the encoding is correct.
Data compression
Students should be familiar with carrying out calculations to determine the number of bits saved by compressing a piece of data using Huffman coding.
- Compute the uncompressed size of a piece of data using a fixed bit length.
- Compute the Huffman-compressed size from frequencies and code lengths.
- Determine the number of bits saved by subtracting the compressed size from the uncompressed size.
Data compression
Students should be familiar with the process of using a tree to represent the Huffman code.
- Describe the steps of building a Huffman tree from character frequencies.
- Explain why combining the two lowest frequencies produces efficient codes.
- Interpret a given Huffman tree to state a character's code or a node's frequency.
Data compression
Students should be familiar with the process of using frequency/data pairs to reduce the amount of data stored.
- Describe how a frequency/data pair represents a repeated run of data.
- Explain why frequency/data pairs can reduce the amount of data stored.
- Identify a situation where RLE gives little or no saving.
Data compression
Students should understand that it is common for data to be compressed and should be able to explain why it may be necessary or desirable to compress data.
- Explain why compressing data is necessary or desirable.
- Identify benefits such as reduced storage use and faster transmission.
- Select the option that gives a valid reason for compressing data.
Data compression
Understand why data may be compressed and that there are different ways to compress data.
- State at least two reasons why data is compressed.
- Explain how a smaller file size benefits storage or transmission.
- Recognise that more than one method of compression exists.
Data structures
An example of a record definition would be:
- Identify the record name and the individual fields in a given record definition.
- Explain why each field is given a particular data type.
- Describe how a record groups related data about one entity.
Data structures
Only one and two-dimensional arrays are required.
- Distinguish between one-dimensional and two-dimensional arrays by the number of indices used.
- Access and assign elements in 1D and 2D arrays correctly.
- Select an appropriate array dimension for a given simple problem within the required scope.
Data structures
RECORD Car make : String model : String reg : String price : Real noOfDoors : Integer ENDRECORD
- Identify the data type of each field in a record definition.
- Explain why a field is given a particular data type.
- Describe how a record groups related named fields under one type name.
Data structures
Understand the concept of data structures. It may be helpful to set the concept of a data structure in various contexts that students may already be familiar with. It may also be helpful to suggest/demonstrate how data structures could be used in a practical setting.
- Explain what a data structure is and why data is organised into structures.
- Describe the behaviour of a familiar structure such as a queue or stack.
- Justify how a chosen structure suits a practical setting.
Data structures
Use arrays (or equivalent) in the design of solutions to simple problems.
- Declare and size an array appropriately for a simple problem.
- Access and assign array elements correctly using indices.
- Process array elements with a loop within a designed solution.
Data structures
Use records (or equivalent) in the design of solutions to simple problems.
- Define a record with named fields and appropriate data types for a simple problem.
- Explain how records are stored and how individual fields are accessed or updated.
- Justify the choice of a record to group related data of different types.
Data types
Boolean
- State that a Boolean holds one of two values: true or false.
- Select Boolean for a condition with exactly two possible states.
- Distinguish Boolean from numeric and text data types when choosing a data type.
Data types
character
- Identify a character as a single stored symbol.
- Distinguish a character from a string by counting symbols.
- Explain that characters are stored using a character code such as ASCII or Unicode.
Data types
Depending on the actual programming language(s) being used, these data types may have other names. For example real numbers may be described as float. In exams we will use the general names given opposite.
- Identify which general data type a language-specific name such as float refers to.
- Explain that different programming languages may use different names for the same data types.
- Apply the specification's general data type names when answering exam questions.
Data types
integer
- Define an integer as a whole number with no fractional or decimal part.
- Recognise positive, negative and zero values as integers and reject fractional values.
- Select the integer data type correctly in a multiple-choice question.
Data types
real
- Identify a real value as a number that can hold a fractional part.
- Distinguish real from integer when selecting a data type for a given value.
- Justify choosing real for a value such as a price or a decimal measurement.
Data types
string.
- Define a string as a sequence of characters.
- Give examples of strings containing letters, digits and spaces.
- Explain how a string differs from a single character.
Data types
Understand and use the following appropriately:
- Describe the kind of value each listed data type stores.
- Select an appropriate data type for a given value or scenario.
- Justify a type choice by reference to the value and the operations required.
Data types
Understand the concept of a data type.
- State that a data type classifies the kind of value stored.
- Explain how a data type affects binary representation and permitted operations.
- Identify the data type of a given value such as a whole number, decimal, Boolean, character or string.
Efficiency of algorithms
Compare the efficiency of algorithms explaining how some algorithms are more efficient than others in solving the same problem.
- Compare two algorithms solving the same problem by the number of operations each performs as input size grows.
- Explain why one algorithm is more efficient than another using a concrete example.
- Justify a choice of algorithm for large inputs while noting relevant preconditions such as sorted data.
Efficiency of algorithms
Exam questions in this area will only refer to time efficiency.
- Explain that exam questions in this area refer only to time efficiency.
- Describe how the number of operations performed by an algorithm changes as input size grows.
- Use growth in operations to justify which of two algorithms is more time efficient.
Efficiency of algorithms
Formal comparisons of algorithmic efficiency are not required.
- Recognise that formal comparisons of algorithmic efficiency are outside the required scope.
- Explain efficiency qualitatively using examples and simple operation counts.
- Apply this scope limit when deciding what to study and how to answer.
Efficiency of algorithms
Understand that more than one algorithm can be used to solve the same problem.
- Explain that the same problem can be solved by more than one correct algorithm.
- Compare two algorithms for the same task by the number of steps each needs.
- Identify preconditions such as sorted data that affect which algorithm can be used.
Ethical, legal and environmental impacts of digital technology on wider society, including issues of privacy
autonomous vehicles.
- Explain ethical, legal, environmental and privacy issues raised by autonomous vehicles.
- Apply each issue to a concrete scenario and identify the groups affected.
- Reach and justify a judgement that weighs benefits against risks.
Ethical, legal and environmental impacts of digital technology on wider society, including issues of privacy
cloud storage
- Describe what cloud storage is and how data is held remotely and accessed over the internet.
- Explain at least one benefit and one drawback of cloud storage for users or organisations.
- Relate cloud storage to privacy, legal or environmental issues in wider society.
Ethical, legal and environmental impacts of digital technology on wider society, including issues of privacy
computer based implants
- Describe what a computer-based implant is and give an example.
- Explain a privacy or security concern arising from computer-based implants.
- Identify an ethical, legal or environmental impact of computer-based implants.
Ethical, legal and environmental impacts of digital technology on wider society, including issues of privacy
cyber security
- Define cyber security and its purpose.
- Distinguish between common cyber threats and defences.
- Explain how poor cyber security can affect privacy and legal obligations.
Ethical, legal and environmental impacts of digital technology on wider society, including issues of privacy
Ethical, legal and environmental impacts of digital technology
Ethical, legal and environmental impacts of digital technology on wider society, including issues of privacy
Exam questions will be taken from the following areas:
- Identify the areas listed under this heading as the source of exam questions in section 3.8.
- Explain ethical, legal and environmental impacts, including privacy, for each listed area with a concrete example.
- Use the list as a self-check to decide which areas still need revision.
Ethical, legal and environmental impacts of digital technology on wider society, including issues of privacy
Explain the current ethical, legal and environmental impacts and risks of digital technology on society. Where data privacy issues arise these should be considered.
- Explain a current ethical, legal and environmental impact or risk of digital technology on society.
- Explain how a data privacy issue arises and how it might be addressed.
- Develop each impact with a cause and consequence rather than a list.
Ethical, legal and environmental impacts of digital technology on wider society, including issues of privacy
hacking (unauthorised access to a computer system)
- Define hacking as unauthorised access to a computer system.
- Explain the impact of hacking on privacy and on the individual or organisation affected.
- Distinguish hacking from authorised access and describe its legal consequences.
Ethical, legal and environmental impacts of digital technology on wider society, including issues of privacy
mobile technologies
- Describe what mobile technologies are and how they connect to networks.
- Explain at least one ethical, legal, environmental and privacy impact of mobile technologies.
- Evaluate a benefit against a drawback of mobile technology use with a supported judgement.
Ethical, legal and environmental impacts of digital technology on wider society, including issues of privacy
Students should be aware that governments and security services often argue that they cannot keep their citizens safe from terrorism and other attacks unless they have access to private data.
- State the argument that governments and security services need access to private data for safety.
- Explain the link between access to private data and preventing terrorism and other attacks.
- Select the option that correctly represents the security viewpoint.
Ethical, legal and environmental impacts of digital technology on wider society, including issues of privacy
Students should be aware that ordinary citizens normally value their privacy and may not like it when governments or security services have too much access.
- State that ordinary citizens normally value their privacy.
- Explain why citizens may dislike governments or security services having too much access to private data.
- Select the option that correctly reflects citizens' concerns about privacy.
Ethical, legal and environmental impacts of digital technology on wider society, including issues of privacy
Students will be expected to understand and explain the general principles behind the issues rather than have detailed knowledge on specific issues.
- State the general principle behind each ethical, legal, environmental and privacy issue.
- Explain why each principle matters and who is affected.
- Use a brief example to illustrate a principle without relying on detailed case knowledge.
Ethical, legal and environmental impacts of digital technology on wider society, including issues of privacy
wearable technologies
- Describe what a wearable technology is and the data it collects.
- Explain a privacy concern arising from wearable technology.
- Identify an ethical, legal or environmental impact of wearable technology.
Ethical, legal and environmental impacts of digital technology on wider society, including issues of privacy
wireless networking
- Describe how wireless networking connects devices using radio signals.
- Explain ethical, legal, environmental and privacy impacts of wireless networking.
- Recommend a mitigation for a stated wireless privacy or security risk.
Fundamentals of algorithms
Efficiency of algorithms
Fundamentals of algorithms
Representing algorithms
Fundamentals of algorithms
Searching algorithms
Fundamentals of algorithms
Sorting algorithms
Fundamentals of computer networks
application layer
- State that the application layer is the top layer of the TCP/IP stack.
- Name at least two application-layer protocols and their purpose.
- Distinguish the application layer from the transport layer in a multiple-choice option.
Fundamentals of computer networks
Application layer: this is where the network applications, such as web browsers or email programs, operate.
- Identify the application layer as the top layer of the network model.
- Give examples of network applications that operate at the application layer.
- Explain that the application layer is where user-facing programs exchange data over a network.
Fundamentals of computer networks
authentication
- Define authentication as the verification of a user's or device's identity.
- Identify common authentication methods such as passwords, PINs and biometric checks.
- Distinguish authentication from other security measures such as encryption and firewalls.
Fundamentals of computer networks
bus.
- Describe how devices connect in a bus topology.
- Explain one advantage and one disadvantage of a bus topology.
- Identify the effect of a break in the backbone cable.
Fundamentals of computer networks
Define the term network protocol.
- State the definition of a network protocol.
- Identify examples of network protocols.
- Explain why protocols are necessary for network communication.
Fundamentals of computer networks
Define what a computer network is.
- State a clear definition of a computer network.
- Explain the purpose of connecting devices in a network.
- Give examples of resources that networked devices can share.
Fundamentals of computer networks
Describe the 4 layer TCP/IP model:
- Name the four layers of the TCP/IP model in order.
- Match a given protocol or task to the correct layer.
- Explain how data moves down and up the stack during transmission and receipt.
Fundamentals of computer networks
Describe the following common LAN topologies:
- Describe how devices are connected in a star topology.
- Describe how data travels in a bus topology and how devices identify their messages.
- Explain the effect of a component failure in each topology.
Fundamentals of computer networks
Describe the main types of computer network including:
- Identify a LAN, WAN, WLAN and PAN from a description of its area and connections.
- Explain the feature that distinguishes each network type.
- Select the correct network type for a given scenario.
Fundamentals of computer networks
Discuss the advantages and disadvantages of computer networks.
- State advantages of connecting devices in a network and explain the reason for each.
- State disadvantages of networks and explain the consequence of each.
- Weigh advantages against disadvantages to reach a balanced judgement.
Fundamentals of computer networks
Discuss the advantages and disadvantages of wireless networks as opposed to wired networks.
- State advantages of wireless networks compared with wired networks.
- State disadvantages of wireless networks compared with wired networks.
- Weigh both sides and reach a justified judgement for a given situation.
Fundamentals of computer networks
email protocols:
- Identify SMTP, IMAP and POP3 and state the role of each in email communication.
- Distinguish sending email from retrieving and synchronising email.
- Select the appropriate email protocol for a given scenario and justify the choice.
Fundamentals of computer networks
encryption
- State that encryption converts plaintext into ciphertext using a key.
- Explain that encrypted data cannot be understood without the correct key.
- Distinguish encryption from authentication when selecting an answer.
Fundamentals of computer networks
Ethernet
- Describe Ethernet as the standard for wired local area networks.
- Explain how Ethernet uses MAC addresses and cabling to connect devices.
- Distinguish Ethernet from wireless LAN technologies in a multiple-choice item.
Fundamentals of computer networks
Explain the following methods of network security:
- Describe how each named network security method works.
- Explain the protection each method provides against a network threat.
- Apply each method to a realistic network scenario with an example.
Fundamentals of computer networks
Explain the purpose and use of common network protocols including:
- State the purpose of each listed protocol in one sentence.
- Match each protocol to its layer in the TCP/IP model.
- Compare TCP and UDP in terms of reliability, ordering and typical uses.
- Describe a realistic scenario in which each protocol is used, such as HTTPS for secure web browsing or SMTP for sending email.
Fundamentals of computer networks
firewall
- State that a firewall monitors and controls network traffic.
- Explain that a firewall allows or blocks traffic according to rules.
- Distinguish a firewall from encryption as a network defence.
Fundamentals of computer networks
FTP (File Transfer Protocol)
- State that FTP stands for File Transfer Protocol and describe its purpose of transferring files across a network.
- Explain the client-server roles and the use of control and data connections in FTP.
- Justify the use of a secure variant of FTP when confidentiality is required.
Fundamentals of computer networks
Fundamentals of computer networks content
Fundamentals of computer networks
HTTP (Hypertext Transfer Protocol)
- State that HTTP is a protocol used to transfer web pages and resources between client and server.
- Explain that HTTP messages are unencrypted and identify the risk of interception.
- Distinguish HTTP from HTTPS and from non-web protocols in a multiple-choice context.
Fundamentals of computer networks
HTTPS (Hypertext Transfer Protocol Secure)
- State that HTTPS is HTTP transmitted over an encrypted connection.
- Explain how HTTPS protects data in transit and allows the client to verify the server.
- Select HTTPS rather than HTTP when a scenario requires secure web communication.
Fundamentals of computer networks
IMAP (Internet Message Access Protocol).
- State that IMAP is used to access email held on a server.
- Describe IMAP synchronising a mailbox across devices.
- Select IMAP when a scenario involves reading or managing received mail on a server.
Fundamentals of computer networks
internet layer
- State the main function of the internet layer in the TCP/IP stack.
- Explain how IP addresses and routers are used to forward packets between networks.
- Distinguish the internet layer from the link layer and the transport layer.
Fundamentals of computer networks
Internet layer: addresses and packages data for transmission. Routes the packets across the network.
- Identify that the internet layer addresses and packages data into packets.
- Explain that the internet layer routes packets across the network.
- Distinguish the internet layer's role from that of the transport layer.
Fundamentals of computer networks
IP (Internet Protocol)
- State that IP is a network-layer protocol providing addressing and routing.
- Explain how routers use destination IP addresses to forward packets between networks.
- Distinguish the role of IP from transport protocols such as TCP and UDP.
Fundamentals of computer networks
LAN – know that these are often owned and controlled/managed by a single person or organisation.
- Define a LAN as a network covering a small geographical area.
- Explain that a LAN is often owned and controlled or managed by a single person or organisation.
- Distinguish LAN ownership and management from WAN infrastructure.
Fundamentals of computer networks
LAN – know that these usually cover relatively small geographical areas.
- State that a LAN usually covers a relatively small geographical area.
- Give examples of LANs such as a home, school or office.
- Classify a described network as a LAN or WAN using its geographical scale.
Fundamentals of computer networks
Link layer: this is where the network hardware such as the NIC (network interface card) is located. OS device drivers also sit here.
- Identify the link layer as the location of network hardware such as the NIC.
- Explain that OS device drivers sit at the link layer and control the NIC.
- Distinguish link-layer local-link communication from higher-layer end-to-end delivery.
Fundamentals of computer networks
link layer.
- State the main function of the link layer in the TCP/IP stack.
- Explain how frames and MAC addresses are used to deliver data on a local network.
- Distinguish the link layer from the internet layer and the transport layer.
Fundamentals of computer networks
Local Area Network (LAN)
- Describe a LAN as a network covering a limited area such as a building.
- Explain how a LAN lets devices share resources such as files and printers.
- Distinguish a LAN from a WAN by area, ownership and range.
Fundamentals of computer networks
MAC address filtering.
- Describe how a router or access point uses a list of MAC addresses to permit or block devices.
- Distinguish between allowing only listed devices and blocking listed devices.
- Explain why MAC address filtering alone provides only limited security.
Fundamentals of computer networks
PAN – only Bluetooth needs to be considered.
- Describe a PAN as a network of one person's devices over a very short range.
- Select Bluetooth as the technology to consider for a PAN.
- Distinguish PAN scenarios from LAN and WAN scenarios using scale and ownership clues.
Fundamentals of computer networks
Personal Area Network (PAN)
- Describe a PAN as a network of one person's devices over a short range.
- Give a concrete example of devices connected in a PAN.
- Distinguish a PAN from a LAN by scale, range and ownership.
Fundamentals of computer networks
SMTP (Simple Mail Transfer Protocol)
- State that SMTP is used to send email.
- Describe SMTP transferring a message towards the recipient's mail server.
- Select SMTP when a scenario involves sending or relaying email.
Fundamentals of computer networks
star
- Describe how devices connect in a star topology.
- Explain one advantage and one disadvantage of a star topology.
- Identify the effect of a central device failure on a star network.
Fundamentals of computer networks
Students should be able to draw topology diagrams and describe the differences between the two topologies. They should also be able to select the most appropriate topology for a given scenario.
- Draw labelled diagrams of star and bus topologies.
- Describe the differences between star and bus topologies.
- Select and justify the most appropriate topology for a given scenario.
Fundamentals of computer networks
Students should be able to explain, using examples, what each of these security methods is and when each could be used.
- Define each named network security method accurately.
- Give a realistic example of when each method would be used.
- Justify the choice of a method for a given network situation.
Fundamentals of computer networks
Students should be able to name the layers and describe their main function(s) in a networking environment.
- Name each layer of the TCP/IP model accurately.
- Describe the main function of each layer in a networking environment.
- Associate a named protocol with the correct layer.
Fundamentals of computer networks
Students should know that wired networks can use different types of cable such as fibre and copper and when each would be appropriate.
- Identify copper and fibre as types of wired network cable and state the signal each carries.
- Describe a property of each cable type, such as cost, bandwidth, distance or interference.
- Select an appropriate cable for a given scenario and justify the choice from its properties.
Fundamentals of computer networks
Students should know what each protocol is used for (eg HTTPS provides an encrypted version of HTTP for more secure web transactions).
- State the purpose of HTTP and explain how HTTPS differs by adding encryption.
- Match at least three named protocols to their correct functions.
- Identify the correct protocol for a described network task in a multiple-choice item.
Fundamentals of computer networks
Students should understand how these methods can work together to provide a greater level of security.
- Explain how two or more network security methods work together.
- Give a concrete example of combined methods providing greater security.
- Explain why combined methods give greater protection than a single method alone.
Fundamentals of computer networks
Students should understand that Ethernet is a family of related protocols rather than a single protocol. They do not need to know the individual protocols that make up the Ethernet family.
- Explain that Ethernet is a family of related protocols rather than a single protocol.
- Describe the role of Ethernet in providing wired local network communication.
- Recognise that naming individual Ethernet protocols is outside the required scope.
Fundamentals of computer networks
Students should understand that MAC address filtering allows devices to access, or be blocked from accessing a network based on their physical address embedded within the device’s network adapter.
- Define MAC address filtering as a method of controlling network access.
- Explain that access is allowed or blocked based on the physical address embedded in the device's network adapter.
- Apply MAC address filtering to a scenario involving allowed and blocked devices.
Fundamentals of computer networks
Students should understand that Wi-Fi is a family of related protocols rather than a single protocol. They do not need to know the individual protocols that make up the Wi-Fi family but they should know that Wi-Fi is a trademark and that the generic term for networks of this nature is WLAN.
- Explain that Wi-Fi is a family of related protocols rather than a single protocol.
- State that Wi-Fi is a trademark and that WLAN is the generic term for such networks.
- Recognise that naming individual Wi-Fi protocols is outside the required scope.
Fundamentals of computer networks
TCP (Transmission Control Protocol)
- State that TCP provides reliable, ordered delivery of data.
- Describe how TCP uses packets, acknowledgements and retransmission.
- Distinguish TCP's role from IP addressing and from UDP's unreliable delivery.
Fundamentals of computer networks
Teachers should be aware that the link layer is sometimes referred to as the network access layer or network interface layer. However, students will not be expected to know these alternative layer names.
- Recognise that the network access layer and network interface layer are alternative names for the link layer.
- State that students are not expected to know these alternative layer names.
- Focus revision on the term 'link layer' and its contents rather than alternative names.
Fundamentals of computer networks
The capabilities of firewalls have changed dramatically in recent years and will continue to do so. Students should be aware that a firewall is a network security device that monitors incoming and outgoing network traffic and decides whether to allow or block specific traffic based on a defined set of security rules.
- Define a firewall as a network security device.
- Describe how a firewall monitors incoming and outgoing traffic and applies security rules to allow or block it.
- Explain that firewall capabilities have changed and will continue to change.
Fundamentals of computer networks
transport layer
- Identify the transport layer from a description of its function within the TCP/IP stack.
- Explain that the transport layer delivers data between processes on two hosts using port numbers.
- Distinguish the role of the transport layer from the roles of the network and link layers.
Fundamentals of computer networks
Transport layer: this layer sets up the communication between the two hosts and they agree settings such as the size of packets.
- Identify the transport layer as responsible for setting up communication between two hosts.
- Explain that the two hosts agree settings such as packet size during communication.
- Distinguish transport-layer connection setup from network-layer routing.
Fundamentals of computer networks
UDP (User Datagram Protocol)
- State that UDP is a connectionless transport-layer protocol.
- Explain that UDP does not guarantee delivery, ordering or retransmission.
- Justify the use of UDP for a real-time application such as live streaming or gaming.
Fundamentals of computer networks
Understand that networks can be wired or wireless.
- Identify whether a given network connection is wired or wireless.
- Compare advantages and limitations of wired and wireless connections.
- Recommend a suitable connection type for a described scenario with a reason.
Fundamentals of computer networks
Understand that the HTTP, HTTPS, SMTP, IMAP and FTP protocols operate at the application layer.
- Name the five protocols that operate at the application layer.
- Match each protocol to its purpose.
- Explain that these protocols govern how applications exchange data at the application layer.
Fundamentals of computer networks
Understand that the IP protocol operates at the internet layer.
- State that the IP protocol operates at the internet layer.
- Relate IP to its addressing and routing function within the stack.
- Identify the correct layer for IP compared with other named protocols.
Fundamentals of computer networks
Understand that the TCP and UDP protocols operate at the transport layer.
- State that TCP and UDP both operate at the transport layer.
- Explain one reliability feature of TCP and one consequence of UDP being connectionless.
- Select TCP or UDP for a described network scenario and justify the choice.
Fundamentals of computer networks
Understand the need for, and importance of, network security.
- Explain why a network needs security, referring to data in transit and connected devices.
- Describe the importance of network security by naming at least two consequences of a breach.
- Recognise that security measures reduce risk but do not remove it entirely.
Fundamentals of computer networks
WAN – know that the Internet is the biggest example of a WAN.
- State that the Internet is the biggest example of a WAN.
- Explain why the Internet qualifies as a WAN in terms of geographic scale.
- Distinguish a WAN from a LAN when selecting an answer.
Fundamentals of computer networks
WAN – know that these are often under collective or distributed ownership.
- Describe what a wide area network is and the geographical scale it covers.
- Explain why WANs are often under collective or distributed ownership.
- Distinguish WAN ownership from the typical single-organisation ownership of a LAN.
Fundamentals of computer networks
WAN – know that these usually cover a wide geographic area.
- State that a WAN usually covers a wide geographic area.
- Give examples of the geographic scale a WAN can span.
- Select the option describing a wide-area network rather than a local one.
Fundamentals of computer networks
Wi-Fi
- Identify Wi-Fi as a wireless technology for connecting devices to a local network.
- Explain that a wireless access point and radio waves enable the connection.
- Recognise that Wi-Fi requires security such as encryption and a passphrase.
Fundamentals of computer networks
Wide Area Network (WAN).
- Define a WAN as a network spanning a large geographical area.
- Identify that a WAN typically links separate sites using telecommunications infrastructure.
- Recognise the internet as the largest example of a WAN.
Fundamentals of cyber security
Be able to define the term cyber security and be able to describe the main purposes of cyber security.
- Define cyber security accurately.
- Describe the main purposes of cyber security, including protecting data confidentiality, integrity and availability.
- Relate a named security measure to the purpose it serves.
Fundamentals of cyber security
Students should know that cyber security consists of the processes, practices and technologies designed to protect networks, computers, programs and data from attack, damage or unauthorised access.
- State the three elements that make up cyber security.
- Identify the assets protected and the threats guarded against.
- Apply the definition to select the most complete option in a multiple-choice question.
Fundamentals of data representation
Binary Arithmetic
Fundamentals of data representation
Character Codes
Fundamentals of data representation
Character Encoding
Fundamentals of data representation
Converting between number bases
Fundamentals of data representation
Data compression
Fundamentals of data representation
Number bases
Fundamentals of data representation
Quantities of Bytes
Fundamentals of data representation
Representing images
Fundamentals of data representation
Representing sound
Fundamentals of data representation
Units of information
Hardware and software
Define the terms hardware and software and understand the relationship between them.
- Define hardware and software accurately.
- Classify given examples as hardware or software.
- Explain how hardware and software work together to perform tasks.
- Describe the consequences of missing hardware or missing software.
Input/output
Be able to obtain user input from the keyboard.
- Identify a correct keyboard input statement in a given program.
- Explain that input is stored as text and may need conversion.
- Predict the value stored in a variable after a specified input line runs.
Input/output
Be able to output data and information from a program to the computer display.
- Identify a correct display output statement in a program.
- Distinguish literal text from variable values in output.
- Predict the exact screen output produced by a given statement.
Malicious code (malware)
computer virus
- Define a computer virus as malicious code that attaches to a host program or file.
- Explain that a virus activates when the infected host is executed and replicates into other files.
- Distinguish a virus from other malware by its dependence on a host and user action.
Malicious code (malware)
Define the term malware.
- State that malware is software rather than hardware.
- Explain that malware is designed to be hostile or intrusive.
- Distinguish malware from accidental damage or a software bug.
Malicious code (malware)
Describe the following forms of malware:
- Match a described behaviour to the correct form of malware among virus, worm, trojan, ransomware, spyware and adware.
- Explain the defining feature that distinguishes each form of malware from the others.
- Select the malware type whose definition fits a given scenario without being misled by similar-sounding options.
Malicious code (malware)
Describe what malware is and how it can be protected against.
- State that malware is software intended to harm or gain unauthorised access to a computer system.
- Match named protection methods such as anti-malware, firewalls, updates, safe user behaviour and backups to the threats they reduce.
- Select the option that correctly distinguishes prevention of malware from recovery after infection.
Malicious code (malware)
Malware is an umbrella term used to refer to a variety of forms of hostile or intrusive software.
- Explain that malware is an umbrella term for many forms.
- Identify the shared hostile or intrusive purpose of those forms.
- Recognise that different forms behave differently while belonging to the same category.
Malicious code (malware)
spyware.
- Define spyware as malware that secretly collects user information.
- Explain that spyware transmits gathered data to a third party.
- Distinguish spyware from other malware types by its behaviour and purpose.
Malicious code (malware)
trojan
- Define a trojan as malware disguised as legitimate software that a user is tricked into installing.
- Explain that a trojan does not self-replicate and relies on deception to run.
- Describe harmful actions a trojan may perform, such as opening a backdoor or stealing data.
Methods to detect and prevent cyber security threats
automatic software updates.
- Identify automatic software updates as a method to prevent cyber security threats.
- Explain how installing patches closes a known vulnerability.
- Describe why automatic updating is more reliable than relying on users to update manually.
Methods to detect and prevent cyber security threats
biometric measures (particularly for mobile devices)
- Identify biometric measures used on mobile devices, such as fingerprint or face recognition.
- Explain how a captured biometric is compared with a stored template to grant access.
- Evaluate a strength and a limitation of biometric authentication.
Methods to detect and prevent cyber security threats
CAPTCHA (or similar)
- Describe how a CAPTCHA challenge is presented and judged.
- Explain which automated threats CAPTCHA helps to prevent.
- Distinguish CAPTCHA from encryption and identity confirmation.
Methods to detect and prevent cyber security threats
password systems
- Identify a password system as authentication using something the user knows.
- Explain why passwords should be stored as a salted hash rather than plain text.
- Evaluate a strength and a limitation of password systems and name a control that strengthens them.
Methods to detect and prevent cyber security threats
Understand and be able to explain the following security measures:
- Identify each security measure listed in the section and state its purpose.
- Explain how each measure detects or prevents a named cyber security threat.
- Evaluate a measure by stating a strength and a limitation.
Methods to detect and prevent cyber security threats
using email confirmations to confirm a user’s identity
- Describe the steps of an email confirmation process.
- Explain how email confirmation provides evidence of a genuine user.
- Evaluate the limits of email confirmation as an identity check.
Number bases
binary (base 2)
- Identify binary as a base 2 system using only the digits 0 and 1.
- Convert a denary integer to binary using place values or repeated division.
- Convert a binary integer to denary by summing the place values of the 1 digits.
Number bases
decimal (base 10)
- Identify decimal as base 10 and list its ten digits.
- Explain the place value of each column as a power of ten.
- Calculate the value of a decimal number by summing digit × place value.
Number bases
Explain why hexadecimal is often used in computer science.
- Describe the base-16 digit set and its values.
- Explain the four-bits-per-hex-digit relationship.
- Apply hex to a named computing context such as addresses or colour codes.
Number bases
hexadecimal (base 16).
- Identify hexadecimal as a base 16 system using digits 0–9 and letters A–F.
- Convert between denary and hexadecimal values using place values or division by 16.
- Explain how one hexadecimal digit corresponds to four binary bits.
Number bases
Students should be familiar with the idea that a bit pattern could represent different types of data including text, image, sound and integer.
- Describe how a bit pattern can represent text, image, sound and integer data.
- Explain that the meaning of a bit pattern depends on how it is interpreted.
- Give examples of the same bit pattern being interpreted as different data types.
Number bases
Understand that computers use binary to represent all data and instructions.
- Explain why computers use binary to represent information.
- Describe how both data and instructions are stored as binary patterns.
- Give an example showing that the same bit pattern can represent different things depending on context.
Number bases
Understand the following number bases:
- State the base and legal digits of decimal, binary and hexadecimal.
- Explain how place value in a base relates to powers of that base.
- Convert a small quantity between decimal, binary and hexadecimal representations.
Programming
Arithmetic operations in a programming language
Programming
Boolean operations in a programming language
Programming
Data structures
Programming
Data types
Programming
Exam questions will explicitly state in what form the response needs to be provided. This will be, for example, pseudo-code, program code or a flowchart, and students must respond as instructed. Where pseudo-code is an accepted method of response, students may present their answers to questions in any suitable format and do not need to use the AQA pseudo-code.
- Identify the response form explicitly stated in a programming exam question.
- Produce an answer in the requested form, such as pseudo-code, program code or a flowchart.
- Present pseudo-code in any suitable, clear format when pseudo-code is accepted.
Programming
Input/output
Programming
Programming concepts
Programming
Random number generation in a programming language
Programming
Relational operations in a programming language
Programming
Robust and secure programming
Programming
String handling operations in a programming language
Programming
Structured programming and subroutines (procedures and functions)
Programming
Students need a practical understanding of all the topics and skills in this section for the paper 1 exam. When they are writing computer programs in an exam they will need to ensure they use meaningful identifier names, use suitable data types and that all logic flow is clearly identifiable to examiners.
- Apply programming skills from section 3.2 by writing and tracing working programs.
- Select meaningful identifier names and appropriate data types for given values.
- Structure code so that all logic flow is clearly identifiable to an examiner.
Programming
Students need a theoretical understanding of all the topics in this section for the paper 1 exam even if the programming language(s) taught does not support all of the topics. Exams will always present algorithms using the current version of the AQA pseudo-code. The document can be found on the AQA website.
- Explain every topic in section 3.2 theoretically, including those your programming language does not support.
- Interpret algorithms written in the current AQA pseudo-code.
- Locate and use the current AQA pseudo-code document from the AQA website as a reference.
Programming
Use of arrays and records
Programming concepts
A theoretical understanding of condition(s) at either end of an iterative structure is required, regardless of whether they are supported by the language(s) being used.
- Explain the difference in behaviour between a condition at the start and at the end of a loop.
- Predict how many times a loop body executes given initial values.
- Describe how an end-tested loop could be emulated in a language that lacks one.
Programming concepts
An example of definite (count controlled) iteration would be:
- Identify a definite (count-controlled) loop from its fixed start and end values.
- Trace how many times the body of a count-controlled loop executes.
- Distinguish definite iteration from indefinite (condition-controlled) iteration.
Programming concepts
An example of indefinite (condition controlled) iteration with the condition at the start would be:
- Identify an example of indefinite iteration where the condition is tested at the start.
- Explain why an entry-controlled loop may execute its body zero times.
- Distinguish a WHILE loop from a REPEAT…UNTIL loop by when the condition is evaluated.
Programming concepts
An example of nested iteration would be:
- Identify an example in which one loop is contained inside another loop.
- Explain why a given structure is or is not nested iteration.
- Calculate the number of times inner instructions execute given outer and inner repetition counts.
Programming concepts
An example of nested selection would be:
- Identify a nested selection structure among given code examples.
- Explain why an inner condition is only evaluated when the outer condition is true.
- Distinguish nested selection from sequential selection and from combined conditions.
Programming concepts
assignment
- Identify the assignment operator used in AQA pseudocode.
- Trace the value held by a variable after one or more assignments.
- Distinguish an assignment statement from a comparison in a condition.
Programming concepts
constant declaration
- State that a constant is a named store whose value cannot change during execution.
- Explain that a constant is given its value at declaration and cannot be reassigned.
- Give a reason for using a constant, such as readability or easier maintenance.
Programming concepts
DO … Instructions here … WHILE NotSolved
- Identify a DO … WHILE structure as a post-condition loop.
- Explain why the body executes at least once.
- Trace the number of iterations for a given condition value.
Programming concepts
Examples of indefinite (condition controlled) iteration with the condition at the end would be:
- Identify the REPEAT … UNTIL structure as iteration with the condition at the end.
- Explain why a condition-at-the-end loop executes its body at least once.
- Compare condition-at-the-end iteration with condition-at-the-start iteration.
Programming concepts
FOR i ← 1 TO 5 … Instructions here … ENDFOR
- State how many times the body of the FOR loop executes.
- Identify the loop variable and its assigned start value.
- Explain why this loop is definite (count-controlled) iteration.
Programming concepts
Identifier names include names for variables, constants and subroutine names.
- Identify variable, constant and subroutine identifiers in a short program.
- Distinguish the role of each kind of identifier by how it is used.
- Suggest a suitable identifier of a stated kind for a given purpose.
Programming concepts
IF GameWon THEN … Instructions here … IF Score > HighScore THEN … Instructions here … ENDIF … Instructions here … ENDIF
- Trace the order in which the outer and inner conditions are evaluated.
- Explain the combined condition under which the inner instructions execute.
- Describe what happens to the inner test when the outer condition is false.
Programming concepts
iteration
- Distinguish count-controlled from condition-controlled iteration.
- Explain when a WHILE loop executes zero times and when a REPEAT...UNTIL loop executes at least once.
- Select an appropriate loop for a described repetition task.
Programming concepts
REPEAT … Instructions here … UNTIL Solved
- Describe the order of execution in a REPEAT … UNTIL loop.
- Explain when a REPEAT … UNTIL loop terminates.
- Justify why the loop body executes at least once.
Programming concepts
selection
- Describe how selection chooses between alternative code paths.
- Explain the difference between IF...THEN and IF...THEN...ELSE.
- Choose an appropriate selection structure for a described decision.
Programming concepts
Students should be able to write programs using these statement types. They should be able to interpret and write algorithms that include these statement types.
- Write a program that uses the section 3.2.2 statement types to solve a stated problem.
- Trace a supplied algorithm and state its output accurately.
- Explain how the statements combine to control the flow of a program.
Programming concepts
Students should know why named constants and variables are used.
- Distinguish a named variable from a named constant by whether the value is intended to change.
- Explain at least two reasons for using named constants and variables.
- Apply the distinction to a short example program.
Programming concepts
subroutine (procedure/function).
- Classify a given subroutine as a procedure or a function.
- Explain the difference between parameters and return values.
- Describe what happens to control flow when a subroutine is called.
Programming concepts
The three combining principles (sequence, iteration/repetition and selection/choice) are basic to all high-level imperative programming languages.
- Name the three combining principles and state what each means.
- Identify sequence, selection and iteration in a given program.
- Explain how combining the principles allows a program to express an algorithm.
Programming concepts
Use definite (count controlled) and indefinite (condition controlled) iteration, including indefinite iteration with the condition(s) at the start or the end of the iterative structure.
- Distinguish definite from indefinite iteration in a given scenario.
- Explain the effect of testing a condition at the start versus the end of a loop.
- Trace the number of executions of a loop body for a simple example.
Programming concepts
Use meaningful identifier names and know why it is important to use them.
- Select a meaningful identifier for a given variable, constant or subroutine.
- Explain why a meaningful identifier is preferable to an unclear one.
- Justify a choice of identifier by reference to readability and error reduction.
Programming concepts
Use nested selection and nested iteration structures.
- Identify nested selection and nested iteration in given code.
- Trace the order and number of executions in nested structures.
- Write a short nested structure with correct indentation.
Programming concepts
Use, understand and know how the following statement types can be combined in programs:
- Identify the statement types present in a given program and describe the role of each.
- Write a short program that combines several statement types to achieve a stated outcome.
- Trace the execution of a program line by line and state the effect on variables.
Programming concepts
variable declaration
- State that a variable is a named store whose value can change.
- Distinguish declaring a variable from assigning a value to it.
- Explain why a data type may be given when a variable is declared.
Programming concepts
WHILE NotSolved … Instructions here … ENDWHILE
- Explain how a WHILE loop tests its condition before each iteration.
- Trace how a Boolean flag such as NotSolved controls repetition and termination.
- Compare a pre-tested WHILE loop with a post-tested REPEAT…UNTIL loop.
Programming concepts
WHILE NotSolved … Instructions here ... FOR i ← 1 TO 5 … Instructions here … ENDFOR … Instructions here … ENDWHILE
- Trace the order in which the WHILE and FOR loops execute in the given pseudocode.
- State how many times the inner FOR loop runs per WHILE pass.
- Explain what must happen for the WHILE loop to terminate.
Random number generation in a programming language
Be able to use random number generation. Students will be expected to use random number generation within their computer programs. An understanding of how pseudo- random numbers are generated is not required.
- Use a random number function correctly within a program.
- Select a function call that produces values in a specified inclusive range.
- Apply a generated random value in output or a decision.
Relational databases
data type
- Identify an appropriate data type for a given database field.
- Explain why a chosen data type supports validation or correct comparison.
- Distinguish numeric, text, date/time and Boolean data types by their stored values.
Relational databases
Explain the concept of a database.
- Define a database as an organised collection of related data.
- Describe how tables, records and fields structure the data.
- Explain how keys link tables in a relational database and the benefits this brings.
Relational databases
Explain the concept of a relational database.
- Describe how a relational database stores data in linked tables of records and fields.
- Distinguish a primary key from a foreign key and state the role of each.
- Explain how keys create relationships that reduce duplication and allow combined queries.
Relational databases
field
- Identify a field as a single attribute column in a table.
- Distinguish a field from a record and from a table.
- Explain how a field has a data type and can act as a key.
Relational databases
foreign key.
- Define a foreign key and distinguish it from a primary key.
- Identify foreign keys in a given set of related tables.
- Explain how a foreign key links two tables and maintains referential integrity.
Relational databases
Note that whilst the terms entity, attribute and entity identifier are more commonly used when an abstract model of a database is being considered, the terms given here will be used for both implementations of and abstract models of databases.
- Identify the object described in a database statement as the thing stored, a property of it, or its unique identifier.
- Translate alternative database vocabulary into the specification's terms without changing the meaning.
- Apply one consistent vocabulary when describing both an abstract model and an implemented database.
Relational databases
primary key
- Identify a field that could act as a primary key in a given table.
- Explain why a chosen field uniquely identifies each record.
- Distinguish a primary key from a foreign key in a relational database.
Relational databases
record
- Define a record as one row of data for a single entity in a table.
- Distinguish a record from a field and from a table.
- Explain how a primary key uniquely identifies each record.
Relational databases
table
- Describe how records and fields are arranged in a relational database table.
- Distinguish a primary key from a foreign key by their roles.
- Select the option that matches a database definition precisely.
Relational databases
Understand that the use of a relational database facilitates the elimination of data inconsistency and data redundancy.
- Define data redundancy and data inconsistency.
- Explain how a relational database eliminates redundancy and inconsistency.
- Apply the concepts to an example of duplicated data being restructured into linked tables.
Relational databases
Understand the following database concepts:
- Identify the database concepts introduced by the specification heading.
- Define and exemplify each concept using a small linked-table example.
- Explain how the concepts combine to link tables and reduce duplication.
Relational databases and structured query language (SQL)
Database Concepts
Relational databases and structured query language (SQL)
Relational databases
Relational databases and structured query language (SQL)
Structured Query Language (SQL)
Relational operations in a programming language
Students should be able to use these operators within their own programs and be able to interpret them when used within algorithms. Note that different languages may use different symbols to represent these operators.
- Evaluate a relational comparison in an algorithm for given input values and state the resulting branch.
- Write a correct relational comparison within a program to control selection.
- Distinguish equality from assignment and select the correct symbol for the stated language.
Representing algorithms
Any exam question where students are given pseudo-code will use the AQA standard version.
- Recognise the AQA standard pseudo-code conventions when they appear in a question.
- Trace a short AQA-style algorithm line by line, tracking variable values.
- Reproduce AQA-style pseudo-code consistently when writing an algorithm.
Representing algorithms
Be aware that a computer program is an implementation of an algorithm and that an algorithm is not a computer program.
- Explain the relationship between an algorithm and a computer program.
- Identify a correct statement distinguishing an algorithm from a computer program.
- Justify why a given description treats an algorithm as separate from its implementation.
Representing algorithms
Decomposition means breaking a problem into a number of sub-problems, so that each sub- problem accomplishes an identifiable task, which might itself be further subdivided.
- Explain that each sub-problem must accomplish an identifiable task.
- Describe how a sub-problem might itself be further subdivided.
- Apply multi-level decomposition to a scenario by naming sub-problems and a further subdivision.
Representing algorithms
Determine the purpose of simple algorithms. Students should be able to use trace tables and visual inspection to determine how simple algorithms work and what their purpose is.
- Use a trace table to record how variable values change through a simple algorithm.
- Explain by visual inspection how sequence, selection and iteration combine to produce an output.
- State the purpose of a simple algorithm in a concise general sentence.
Representing algorithms
Exam questions will indicate the form of response expected. For example, pseudo-code, program code or a flowchart.
- Identify from a question which response form is required.
- Produce an algorithm as pseudo-code, program code or a flowchart as instructed.
- Convert a simple algorithm between the three representations accurately.
Representing algorithms
Explain simple algorithms in terms of their inputs, processing and outputs.
- Classify the steps of a simple algorithm as input, processing or output.
- Describe the processing performed by a simple algorithm using correct terminology.
- Explain a complete simple algorithm by linking its inputs, processing and outputs.
Representing algorithms
Students must be able to identify where inputs, processing and outputs are taking place within an algorithm.
- Identify the input, processing and output steps within a given algorithm.
- Justify the label given to a specific step using its function.
- Trace an algorithm to confirm where data enters, is transformed and leaves.
Representing algorithms
Understand and explain the term abstraction. Abstraction is the process of removing unnecessary detail from a problem.
- Define abstraction as the process of removing unnecessary detail from a problem.
- Identify which option correctly describes abstraction.
- Explain how abstraction is applied to a given problem.
Representing algorithms
Understand and explain the term algorithm. An algorithm is a sequence of steps that can be followed to complete a task.
- Define an algorithm as a sequence of steps that can be followed to complete a task.
- Identify which option correctly describes an algorithm.
- Explain why a given set of steps is or is not an algorithm.
Representing algorithms
Understand and explain the term decomposition.
- State that decomposition means breaking a problem into smaller sub-problems.
- Explain why decomposition helps when solving a complex problem.
- Apply decomposition to a simple scenario by identifying sensible sub-problems.
Representing algorithms
Use a systematic approach to problem solving and algorithm creation representing those algorithms using pseudo-code, program code and flowcharts.
- Apply a systematic approach by identifying inputs, processing and outputs before designing an algorithm.
- Create a correct algorithm and represent it accurately in pseudo-code, program code and a flowchart.
- Explain how each representation conveys the algorithm's logic, including selection and iteration.
Representing images
Calculate bitmap image file sizes based on the number of pixels and colour depth.
- Apply the formula file size in bits = number of pixels × colour depth to a given image.
- Derive the pixel count by multiplying image width by height.
- Convert a bit total into bytes and kilobytes and state the correct unit.
Representing images
Colour depth is the number of bits used to represent each pixel.
- State that colour depth is the number of bits used to represent each pixel.
- Calculate the number of colours from a given colour depth using 2ⁿ.
- Explain how increasing colour depth affects colours available and file size.
Representing images
colour depth.
- Define colour depth as bits per pixel.
- Calculate the number of colours from a given colour depth using 2ⁿ.
- Explain how colour depth affects file size and image quality.
Representing images
Convert a bitmap image into binary data. Given a simple bitmap, students should be able to write down a bit pattern that represents the image.
- Encode a simple black-and-white bitmap as a bit pattern using a stated convention.
- Calculate the number of bits needed for a given grid size and colour depth.
- Explain how colour depth determines the number of available colours.
Representing images
Convert binary data into a bitmap image. Given a binary pattern that represents a simple bitmap, students should be able to draw the resulting image as a series of pixels.
- Convert a binary pattern into a pixel grid using a stated row width.
- Apply a key mapping bit values to shades or colours.
- Identify the correct drawn image from a set of options for a given binary pattern.
Representing images
D = colour depth in bits.
- Define colour depth D as the number of bits per pixel.
- Calculate the number of colours available from a given colour depth using 2^D.
- Calculate the pixel-data storage of a bitmap using width × height × D.
Representing images
Describe how a bitmap represents an image using pixels and colour depth.
- State that a bitmap is a grid of pixels each holding a binary colour code.
- Define colour depth and calculate the number of colours from a given depth.
- Calculate bitmap storage from pixel count and colour depth, converting correctly between bits and bytes.
Representing images
Describe the following for bitmaps:
- Identify the bitmap sub-topics introduced by this heading in section 3.3.6.
- Describe how a bitmap stores an image as a grid of pixels with binary colour values.
- Explain how resolution and colour depth affect a bitmap image and its file size.
Representing images
Describe using examples how the number of pixels and colour depth can affect the file size of a bitmap image.
- Describe how increasing the number of pixels affects the file size of a bitmap image.
- Describe how increasing colour depth affects the file size of a bitmap image.
- Apply a worked example to calculate or compare bitmap file sizes from pixels and colour depth.
Representing images
H = image height
- State that H represents the image height in pixels.
- Calculate total pixels using W × H for a given image.
- Use H within the file-size formula W × H × colour depth.
Representing images
image size
- State the formula for bitmap image size in bits.
- Calculate the number of pixels from a given width and height.
- Convert a calculated bit total into bytes or kibibytes correctly.
Representing images
Know that the size of a bitmap image is measured in pixels (width x height).
- State that bitmap size is measured in pixels as width × height.
- Calculate the total number of pixels from given dimensions.
- Distinguish pixel dimensions from colour depth when calculating storage.
Representing images
Size = (bits) = W x H x D
- Apply the formula W × H × D to calculate image size in bits.
- Explain what W, H and D represent in an image.
- Distinguish a bit total from a byte total and choose the correct unit.
Representing images
Size = (bytes) = (W x H x D)/8
- Calculate image size in bytes using (W × H × D) ÷ 8.
- Explain why dividing by 8 converts bits to bytes.
- Present a file-size answer with the correct unit.
Representing images
Students only need to use colour depth and number of pixels within their calculations.
- Identify the two permitted inputs for bitmap file-size calculations.
- Explain why other image properties are outside the required calculation.
- Carry out a calculation using only pixel count and colour depth and convert the result to a stated unit.
Representing images
Students should be able to describe how higher numbers of pixels and higher colour depths can affect file size, and should also be able to use examples.
- Describe how higher numbers of pixels affect bitmap file size.
- Describe how higher colour depths affect bitmap file size.
- Use examples to compare file sizes at different pixel counts and colour depths.
Representing images
Students should be able to explain how bitmaps are made from pixels.
- Explain that a bitmap is formed by dividing an image into a grid of pixels.
- Describe how each pixel is given a binary colour code determined by the colour depth.
- Explain how pixel codes are stored and used to reconstruct the displayed image.
Representing images
Students should know that the term pixel is short for picture element. A pixel is a single point in an image.
- Recall that pixel is short for picture element.
- Define a pixel as a single point in an image.
- Recognise an accurate description of a pixel among multiple-choice options.
Representing images
The size of an image is expressed directly as width of image in pixels by height of image in pixels using the notation width x height.
- State an image size using the width x height notation with width first.
- Identify which value is width and which is height from a given image size.
- Calculate the total number of pixels by multiplying width by height.
Representing images
Understand what a pixel is and be able to describe how pixels relate to an image and the way images are displayed.
- State that a pixel is a single point in an image and that the word is short for picture element.
- Describe how an image is made up of a grid of pixels, each with a binary colour code.
- Explain how stored pixel codes are used to display an image and how pixel count affects detail and file size.
Representing images
W = image width
- State that W represents the image width in pixels.
- Calculate total pixels using W × H for a given image.
- Use W within the file-size formula W × H × colour depth.
Representing sound
Calculate sound file sizes based on the sampling rate and the sample resolution.
- Apply the formula sampling rate × resolution × channels × duration to find file size.
- Convert between bits, bytes and kilobytes correctly.
- Explain how changing sampling rate or resolution changes the calculated file size.
Representing sound
Describe the digital representation of sound in terms of:
- Explain how a continuous sound wave is converted into a series of stored samples.
- Define sampling rate in hertz and bit depth in bits, and relate each to accuracy and file size.
- Apply the relationship that n bits give 2ⁿ amplitude levels to a given example.
Representing sound
File size (bits) = rate x res x secs
- Apply the formula file size (bits) = rate × resolution × seconds to given values.
- Convert a bit total into bytes and larger storage units correctly.
- Explain how changing rate, resolution or duration affects the resulting file size.
Representing sound
rate = sampling rate
- Define sampling rate and state its unit as hertz.
- Distinguish sampling rate from resolution in the file-size formula.
- Explain how changing the sampling rate affects recording accuracy and file size.
Representing sound
res = sample resolution
- Identify res as the sample resolution in the sound file size formula.
- State that resolution is measured in bits per sample.
- Explain how changing resolution affects accuracy and file size.
Representing sound
Sample resolution is the number of bits per sample.
- Define sample resolution as the number of bits per sample.
- Distinguish sample resolution from sampling rate and explain the units of each.
- Explain how increasing sample resolution affects accuracy and file size.
Representing sound
sample resolution.
- Define sample resolution as the number of bits used per sample.
- Explain how sample resolution affects the precision of recorded amplitude.
- Describe how changing sample resolution affects the amount of data stored.
Representing sound
sampling rate
- Define sampling rate as the number of samples taken per second.
- State that sampling rate is measured in hertz (Hz).
- Explain how changing the sampling rate affects accuracy and the amount of data stored.
Representing sound
Sampling rate is the number of samples taken in a second and is usually measured in hertz (1 hertz = 1 sample per second).
- State that sampling rate is the number of samples taken per second, measured in hertz.
- Apply the equivalence that 1 hertz equals one sample per second to a given value.
- Distinguish sampling rate from bit depth when judging statements about sound representation.
Representing sound
secs = number of seconds
- Identify secs as the duration in seconds in the sound file size formula.
- Convert a duration in minutes to seconds before calculating.
- Apply secs correctly within the full file size calculation.
Representing sound
Students should understand that a sample is a measure of amplitude at a point in time.
- Define a sample as a measure of amplitude at a point in time.
- Distinguish amplitude from frequency in the context of sampling.
- Explain how successive samples approximate an analogue wave.
Representing sound
Understand that analogue signals are sampled to create the digital version of sound.
- Explain why an analogue sound signal must be sampled to be stored digitally.
- Describe how sample rate and resolution affect the stored digital sound.
- Calculate the number of samples taken for a given sample rate and duration.
Representing sound
Understand that sound is analogue and that it must be converted to a digital form for storage and processing in a computer.
- Explain why analogue sound must be converted to digital form for a computer.
- Describe how sampling and bit depth produce a digital representation of sound.
- Relate sample rate and bit depth to accuracy and file size.
Robust and secure programming
Be able to correct errors within algorithms and programs.
- Distinguish syntax, logic and runtime errors in a given algorithm or program.
- Apply a tracing or debugging method to locate a specific fault.
- Describe and justify a correction and explain how it would be verified by retesting.
Robust and secure programming
Be able to identify and categorise errors within algorithms and programs.
- Identify the line or construct containing an error in a given algorithm or program.
- Categorise the error as a syntax error or a logic error with supporting evidence.
- Propose a correction that removes the error and preserves the intended behaviour.
Robust and secure programming
Be able to select and justify the choice of suitable test data for a given problem.
- Identify the input requirements and validation rules for a given problem.
- Select appropriate normal, boundary, and erroneous test data.
- Justify the choice of each test data item by linking it to the problem's requirements.
Robust and secure programming
Be able to write simple authentication routines. Students should be able to write a simple authentication routine that uses a username and password. Students will only be required to use plain text usernames and passwords (ie students will not need to encrypt the passwords).
- Write a routine that stores a plain-text username and password and reads both from the user.
- Combine two comparisons with a logical AND so access is granted only when both match.
- Produce clear output that grants or denies access and explain how the routine works.
Robust and secure programming
Be able to write simple data validation routines. Students should be able to use data validation techniques to write simple routines that check the validity of data being entered by a user.
- Describe named data validation techniques and the rule each one tests.
- Write a simple routine that validates user input and re-prompts until it is valid.
- Explain how validation contributes to robust and secure programs.
Robust and secure programming
boundary (extreme)
- Identify the boundary (extreme) values for a given input range, including values just outside it.
- Explain why boundary testing is used to check comparison operators and range checks.
- Distinguish boundary data from normal and erroneous data when selecting test data.
Robust and secure programming
Boundary data would be for example:
- Identify the boundary values for a stated allowed range.
- Explain why values just outside a range are included as boundary data.
- Distinguish boundary data from normal data within the same range.
Robust and secure programming
checking if a string is empty
- Identify the condition used to test whether a string is empty.
- Explain why an empty-string check improves the robustness of a program.
- Describe the action a program should take when the check is true.
Robust and secure programming
checking if an entered string has a minimum length
- Describe how a minimum-length check measures and compares string length.
- Explain what happens to input that fails the minimum-length rule.
- Distinguish a length check from other simple validation routines.
Robust and secure programming
checking if data entered lies within a given range (eg between 1 and 10).
- State the condition used to check that a value lies within a given range.
- Classify values as accepted or rejected using the stated limits.
- Explain how a program should respond when a range check fails.
Robust and secure programming
erroneous data.
- Define erroneous data in the context of program testing.
- Give examples of erroneous data for a given problem.
- Explain how a program should respond to erroneous data.
Robust and secure programming
If the allowed range is 1 to 10, then boundary data is 0, 1, 10, 11, ie either side of the allowed boundary.
- Derive the four boundary values for an inclusive range such as 1 to 10.
- Classify each boundary value as valid or invalid for the stated range.
- Explain how boundary data exposes off-by-one errors in comparisons.
Robust and secure programming
logic error.
- Identify a logic error in a short algorithm or program.
- Explain why a logic error still allows the program to run.
- Describe how testing and tracing reveal a logic error.
Robust and secure programming
normal (typical)
- Identify a normal (typical) value for a given input field and explain why it is normal.
- Describe what a normal data test is intended to confirm about a program's behaviour.
- Distinguish normal data from boundary and erroneous data when selecting test data.
Robust and secure programming
syntax error
- Define a syntax error and state that it prevents successful translation.
- Identify syntax errors in short code examples and describe the correction needed.
- Distinguish syntax errors from logic and runtime errors in a given scenario.
Robust and secure programming
The following validation checks are examples of simple data validation routines:
- Explain that the listed checks are examples of simple validation routines.
- Describe the rule each example routine applies to input.
- Distinguish validation from verification when discussing input handling.
Robust and secure programming
Understand that there are different types of error:
- Distinguish between syntax, logic and runtime errors.
- Classify a given faulty program or scenario by error type.
- Select an appropriate correction strategy for each error type.
Robust and secure programming
Understand what is meant by testing in the context of algorithms and programs.
- Explain that testing compares actual outputs with expected outputs for chosen inputs.
- Identify normal, boundary and erroneous test data for a given problem.
- Describe the purpose and limits of testing for algorithms and programs.
Robust and secure programming
Understand what test data is and describe the following types of test data:
- Define test data and explain its purpose in checking a program.
- Classify given input values as normal, boundary or erroneous test data.
- Explain why each type of test data is needed to confirm a program is robust.
Searching algorithms
Compare and contrast linear and binary search algorithms.
- Describe step by step how linear search and binary search each locate a target.
- Explain the data requirements and efficiency consequences of each algorithm.
- Apply both algorithms to a given list and compare the items examined.
Searching algorithms
Students should know the advantages and disadvantages of both algorithms.
- Identify advantages and disadvantages of linear search.
- Identify advantages and disadvantages of binary search.
- Choose the more suitable algorithm for a described scenario and justify the choice.
Searching algorithms
Students should know the mechanics of the algorithm.
- Describe the sequence of steps a linear search performs on a list.
- State the conditions under which a linear search stops.
- Distinguish correct mechanics from incorrect descriptions in multiple-choice options.
Searching algorithms
Understand and explain how the binary search algorithm works.
- Explain the steps of binary search including the middle-item comparison.
- Describe how the search range is halved after each comparison.
- Identify correct and incorrect descriptions of binary search in multiple-choice options.
Searching algorithms
Understand and explain how the linear search algorithm works.
- Describe the steps a linear search performs on a given list.
- Explain what happens when the target is found and when it is not present.
- Apply a linear search to a short list and state the outcome.
Social engineering
blagging (pretexting)
- Define blagging (pretexting) as a social engineering technique using a false pretext.
- Explain how a fabricated identity or story persuades a victim to comply.
- Identify the information or access an attacker gains through blagging.
Social engineering
Blagging is the act of creating and using an invented scenario to engage a targeted victim in a manner that increases the chance the victim will divulge information or perform actions that would be unlikely in ordinary circumstances.
- Define blagging as using an invented scenario to engage a targeted victim.
- Explain how the fabricated scenario increases the chance of divulging information or unusual action.
- Apply the definition to a realistic example of a blagging attempt.
Social engineering
Define the term social engineering.
- State the definition of social engineering.
- Identify common social engineering techniques.
- Explain why social engineering targets people rather than systems.
Social engineering
Describe what social engineering is and how it can be protected against.
- Define social engineering as manipulation of people rather than machines.
- Give a realistic example of a social engineering attempt.
- Explain at least two measures that protect against social engineering.
Social engineering
Explain the following forms of social engineering:
- Define each of the four named social engineering forms.
- Describe the mechanism by which each form obtains information or access.
- Distinguish pharming from phishing and blagging from technical attacks.
Social engineering
phishing
- Describe how a phishing message deceives a recipient into revealing information.
- Explain the role of fake links or attachments in a phishing attack.
- Identify a practical way a user can reduce the risk of phishing.
Social engineering
Phishing is a technique of fraudulently obtaining private information, often using email or SMS.
- Define phishing as fraudulently obtaining private information.
- Identify email and SMS as common phishing channels.
- Explain how a phishing message tricks a victim into revealing data.
Social engineering
shouldering (or shoulder surfing).
- Describe how shouldering allows an attacker to capture information.
- Explain why physical proximity is central to a shouldering attack.
- Suggest a practical measure that reduces the risk of shouldering.
Social engineering
Shouldering is observing a person's private information over their shoulder eg cashpoint machine PIN numbers.
- Define shouldering as observing private information over a person's shoulder.
- Apply the concept to the cashpoint PIN example.
- Suggest a practical way to reduce the risk of shouldering.
Social engineering
Students should know that social engineering is the art of manipulating people so they give up confidential information.
- Recall that social engineering manipulates people to give up confidential information.
- Apply both parts of the definition to judge whether a scenario is social engineering.
- Select the fully correct option in a multiple-choice question about social engineering.
Software classification
application software is software that performs end-user tasks.
- State that application software is software that performs end-user tasks.
- Identify whether a named program is application software by checking if it performs an end-user task.
- Distinguish application software from system software such as the operating system.
Software classification
application software.
- Define application software by the user task it performs.
- Give and justify examples of application software.
- Distinguish application software from system software using purpose as the test.
Software classification
applications
- Identify application software from a list of programs by its purpose.
- Explain why a named program is classified as application software rather than system software.
- Give at least two examples of application software and state the user task each supports.
Software classification
Explain what is meant by:
- State the meaning of each software classification term named in the question.
- Distinguish system software from application software with accurate descriptions.
- Support each explanation with a relevant example where appropriate.
Software classification
Give examples of both types of software.
- Identify system software and give at least one valid example.
- Identify application software and give at least one valid example.
- Classify a named program correctly by explaining its function.
Software classification
input/output (I/O) devices
- Classify a named device as input, output or both.
- Explain how the operating system manages I/O devices using drivers.
- Apply the input/output distinction to an unfamiliar device in a scenario.
Software classification
memory
- State what memory is and what it holds while a computer runs.
- Explain how an operating system manages memory for running programs.
- Distinguish memory from secondary storage in a given scenario.
Software classification
processor(s)
- Describe how the OS schedules processes onto the processor(s).
- Explain why multitasking depends on the OS sharing processor time.
- Recognise that multi-core systems require the OS to allocate processes across cores.
Software classification
security.
- Identify that security is provided by system software, particularly the operating system.
- Describe how user accounts, passwords and access rights help protect a computer and its data.
- Explain the purpose of a named security feature in preventing unauthorised access.
Software classification
Students should understand that:
- Explain that the stem introduces a requirement to understand software classification rather than a fact to recall.
- Organise notes on software categories with a definition, purpose and example for each.
- Justify the classification of an unfamiliar program using its purpose.
Software classification
system software
- Define system software and state its role in managing hardware and providing a platform.
- Identify the operating system and utility programs as examples of system software.
- Distinguish system software from application software by justifying a program's primary purpose.
Software classification
system software manages the computer system resources and acts as a platform to run application software
- Explain how system software manages computer system resources.
- Explain how system software provides a platform for application software.
- Identify the operating system and utility programs as examples of system software.
Software classification
Understand that the OS handles management of the:
- Identify that the operating system manages the processor(s) among other resources.
- Distinguish OS management activities from application software functions.
- Explain how the OS allocates processor time to running processes.
Software classification
Understand the need for, and functions of, operating systems (OS) and utility programs.
- Explain why an operating system is needed on a computer system.
- Describe the functions an operating system performs, including resource management and a user interface.
- Identify utility programs and distinguish them from operating systems.
Sorting algorithms
Compare and contrast merge sort and bubble sort algorithms.
- Describe the method of bubble sort and of merge sort.
- Compare the efficiency and memory use of the two algorithms.
- Justify which algorithm suits a given situation using the comparison.
Sorting algorithms
Students should know the advantages and disadvantages of both algorithms.
- State an advantage of bubble sort and an advantage of merge sort.
- State a disadvantage of bubble sort and a disadvantage of merge sort.
- Relate each advantage or disadvantage to how the algorithm operates.
Sorting algorithms
Students should know the mechanics of the algorithm.
- State the order of the divide and merge stages in merge sort.
- Carry out the comparison and append steps correctly when merging two sorted sublists.
- Trace the full mechanics on a short list and confirm the sorted output.
Sorting algorithms
Understand and explain how the bubble sort algorithm works.
- Describe the sequence of comparisons and swaps in a bubble sort pass.
- Trace bubble sort on a short list and record the list after each pass.
- Explain why the algorithm stops when a pass makes no swaps.
Sorting algorithms
Understand and explain how the merge sort algorithm works.
- Describe the splitting stage of merge sort, including halving until single-item sublists remain.
- Explain how two sorted sublists are merged by comparing front items and appending leftovers.
- Trace merge sort on a short list and identify the fully sorted result after the final merge.
String handling operations in a programming language
concatenation
- State the result of concatenating given strings in a specified order.
- Trace a short expression combining literals and variables and give the exact output.
- Explain why explicit spaces or conversions may be needed when concatenating.
String handling operations in a programming language
convert character code to character
- Identify the character produced when a given integer character code is converted.
- Distinguish between codes that produce upper-case letters, lower-case letters and digit characters.
- Select the correct built-in function or result for converting a character code to a character.
String handling operations in a programming language
convert character to character code
- Identify the integer character code produced when a given single character is converted.
- Distinguish between the codes for upper-case letters, lower-case letters and digit characters.
- Select the correct built-in function or result for converting a character to its code.
String handling operations in a programming language
Expected string conversion operations:
- Identify the conversion operations available in a chosen programming language for changing a value to a string and a string to a number.
- Write and run a short program that converts a number to a string and a string to a number, and describe the output.
- Explain why keyboard input may need converting before it is used in arithmetic.
String handling operations in a programming language
integer to string
- Identify integer-to-string conversion and its purpose.
- Explain why conversion is needed before concatenation.
- Predict the resulting string for a given integer.
String handling operations in a programming language
length
- Identify what the length operation returns for a given string.
- Correctly count characters including spaces and punctuation.
- Apply length to a variable and state the resulting integer.
String handling operations in a programming language
position
- State what the position operation returns when applied to a string.
- Predict the index returned when searching for a character or substring in a given string.
- Explain how a not-found result is represented in a chosen programming language.
String handling operations in a programming language
real to string.
- Explain that converting a real to a string yields a text value representing the number.
- Identify a correct real-to-string conversion in a given code snippet.
- Distinguish real-to-string from string-to-real conversion.
String handling operations in a programming language
string conversion operations.
- State what a string conversion operation does to a value's data type.
- Select the correct conversion for joining a number to text or for doing arithmetic on digit text.
- Predict the data type produced by a given string conversion operation.
String handling operations in a programming language
string to integer
- Explain why a string must be converted to an integer before arithmetic.
- Predict the result and data type of converting a valid digit string to an integer.
- Recognise when a string cannot be converted to an integer and would cause an error.
String handling operations in a programming language
string to real
- Identify string-to-real conversion and its purpose.
- Select the correct target type for a decimal numeric string.
- Predict the outcome of converting a given numeric string to a real.
String handling operations in a programming language
substring
- Define a substring and explain how it is extracted from a string.
- Trace a short substring operation and state the exact characters returned.
- Choose the correct substring call for a specified target fragment.
String handling operations in a programming language
Understand and be able to use:
- Explain what common string handling operations do.
- Write and run code that applies string operations to given data.
- Check and interpret the output of string operations in a program.
Structured programming and subroutines (procedures and functions)
are only accessible within the subroutine.
- State where a local variable can be accessed in a program.
- Explain why code outside the subroutine cannot use a local variable.
- Distinguish scope from lifetime using a clear example.
Structured programming and subroutines (procedures and functions)
Describe the structured approach to programming.
- State that structured programming divides a program into modules or subroutines.
- Distinguish a procedure from a function by whether a value is returned.
- Identify how modules are called and how data passes through parameters.
Structured programming and subroutines (procedures and functions)
Describe the use of parameters to pass data within programs.
- Define a parameter and distinguish it from an argument.
- Explain how data is passed into a subroutine through its parameter list.
- Describe how parameters support reuse of a single subroutine with different data.
Structured programming and subroutines (procedures and functions)
Explain the advantages of the structured approach.
- Explain at least three distinct advantages of the structured approach with a consequence for each.
- Link reuse and independent testing to reduced development effort and quicker fault finding.
- Apply the advantages to a given programming scenario using named modules.
Structured programming and subroutines (procedures and functions)
Explain the advantages of using subroutines in programs.
- State several advantages of using subroutines in programs.
- Explain the mechanism behind each advantage, such as reuse avoiding duplication.
- Apply the advantages to a concrete example such as a routine called from several places.
Structured programming and subroutines (procedures and functions)
Know that subroutines may declare their own variables, called local variables, and that local variables usually:
- State that local variables are declared inside a subroutine and are accessible only there.
- Describe the lifetime of a local variable across a subroutine call.
- Distinguish local variables from global variables in terms of scope.
Structured programming and subroutines (procedures and functions)
only exist while the subroutine is executing
- State when a local variable is created and when it ceases to exist.
- Explain why each call of a subroutine has its own copy of a local variable.
- Distinguish the lifetime of a local variable from that of a global variable.
Structured programming and subroutines (procedures and functions)
Students should be able to describe how data is passed out of a subroutine using return values.
- Describe how a return statement passes data out of a subroutine to the caller.
- Explain the difference between a function that returns a value and a procedure that does not.
- Give an example showing a returned value being captured and used by the calling code.
Structured programming and subroutines (procedures and functions)
Students should be able to describe how data is passed to a subroutine using parameters.
- Define a parameter and distinguish it from an argument.
- Explain how arguments supplied at a call are matched to parameters.
- Describe why parameters make a subroutine reusable with different data.
Structured programming and subroutines (procedures and functions)
Students should be able to describe the structured approach including modularised programming, clear well-documented interfaces (local variables, parameters) and return values.
- Describe how structured programming uses modularised subroutines to break down a problem.
- Explain how parameters, return values and local variables form a clear, well-documented interface.
- Apply the structured approach to a simple example showing a subroutine with inputs and an output.
Structured programming and subroutines (procedures and functions)
Students should be able to use subroutines that require more than one parameter.
- Write a subroutine definition that declares more than one parameter.
- Write a call that supplies matching arguments in the correct order.
- Trace which value each parameter receives and the resulting output or return value.
Structured programming and subroutines (procedures and functions)
Teachers should be aware that the terms arguments and parameters are sometimes used but in examinable material we will use the term parameter to refer to both of these.
- Recognise that the specification uses parameter to cover both argument and parameter.
- Translate sources that use argument into the specification's term parameter.
- Use parameter consistently when describing subroutine inputs in exam answers.
Structured programming and subroutines (procedures and functions)
Understand the concept of subroutines. Students should know that a subroutine is a named ‘out of line’ block of code that may be executed (called) by simply writing its name in a program statement.
- Explain what a subroutine is, including that it is a named out-of-line block of code.
- Describe how a subroutine is executed by writing its name in a program statement.
- Identify a subroutine call in a short program listing and explain the resulting flow of control.
Structured programming and subroutines (procedures and functions)
Use local variables and explain why it is good practice to do so.
- Declare and use a local variable inside a subroutine in a short code example.
- Explain how the scope of a local variable limits where it can be accessed.
- Justify why using local variables is good practice compared with global variables.
Structured programming and subroutines (procedures and functions)
Use subroutines that return values to the calling routine.
- Explain how a function returns a value to the calling routine.
- Describe how the calling routine captures and uses the returned value.
- Distinguish a returning function from a procedure.
Structured query language (SQL)
Be able to use SQL to edit and delete data in a database using the commands.
- Select UPDATE or DELETE correctly for a described editing or deletion task.
- Write an UPDATE statement that sets one or more columns to new values for the rows matching a WHERE condition.
- Write a DELETE FROM statement that removes only the records matching a stated WHERE condition.
Structured query language (SQL)
Be able to use SQL to insert data into a relational database using the commands.
- Write an INSERT INTO statement that names the table and lists the columns to fill.
- Match each value in the VALUES clause to its column in the correct order and data type.
- Explain why an inserted record must respect data types and primary-key uniqueness.
Structured query language (SQL)
Be able to use SQL to retrieve data from a relational database, using the commands:
- Identify the columns and table named in a given SELECT statement.
- Predict which rows a WHERE condition returns from a small table.
- Recognise and correct errors in quoting and operators in a query.
Structured query language (SQL)
DELETE FROM table_name WHERE condition
- State the effect of a DELETE FROM statement with a WHERE clause on the rows of a table.
- Explain the difference between deleting rows and deleting a table.
- Select the correct outcome of a given DELETE statement from several options.
Structured query language (SQL)
Exam questions will require that data is extracted from no more than two tables for any one query.
- Explain that exam SQL retrieval questions involve no more than two tables.
- Write a retrieval query over a single table.
- Combine two tables in a query by matching a shared key column.
Structured query language (SQL)
FROM
- State that FROM names the table a query searches.
- Explain how FROM relates to the fields chosen by SELECT.
- Identify the source table in a given SQL statement.
Structured query language (SQL)
INSERT INTO table_name (column 1, column 2 …) VALUES (value 1, value 2 …)
- Apply the INSERT INTO template to build a valid statement for a given table.
- Check that the column list and value list correspond in number, order and type.
- Identify and correct errors in a faulty INSERT INTO statement.
Structured query language (SQL)
ORDER BY…ASC | DESC
- Explain the effect of ASC and DESC on the order of returned rows.
- Place ORDER BY correctly relative to WHERE in a statement.
- Predict the first and last rows produced by a given ORDER BY clause.
Structured query language (SQL)
SELECT
- State that SELECT lists the fields to be returned by a query.
- Explain the effect of using SELECT * in a query.
- Identify the fields returned by a given SELECT statement.
Structured query language (SQL)
UPDATE table_name SET column 1 = value 1, column 2 = value 2 ... WHERE condition
- Write an UPDATE statement in the correct clause order for a given table and condition.
- Set multiple columns in one UPDATE statement using comma-separated assignments.
- Apply a WHERE condition so that only the intended rows are edited.
Structured query language (SQL)
WHERE
- Identify the WHERE keyword and its purpose in a query.
- Explain that WHERE returns only rows meeting a condition.
- Predict the records returned by a simple WHERE condition on a small table.
Systems architecture
A bus is a collection of wires through which data/signals are transmitted from one component to another.
- State that a bus is a collection of wires.
- Describe a bus as transmitting data or signals from one component to another.
- Distinguish a bus from components such as the CPU and memory in a multiple-choice option.
Systems architecture
arithmetic logic unit
- Identify the ALU as the part of the CPU performing arithmetic and logical operations.
- Give examples of arithmetic and logical operations carried out by the ALU.
- Distinguish the ALU from the control unit and from storage in a multiple-choice option.
Systems architecture
Be aware of different types of secondary storage (solid state, optical and magnetic).
- Identify solid state, optical and magnetic storage types.
- Give an example device for each storage type.
- State a typical use and one trade-off for each storage type.
Systems architecture
bus.
- Define a bus as a set of wires carrying signals between components.
- Distinguish the data, address and control buses by the signals they carry.
- Explain how bus width and clock speed affect performance.
Systems architecture
Cache
- State what cache memory is and where it is located relative to the CPU.
- Explain how cache reduces the time the CPU waits for instructions and data.
- Distinguish between a cache hit and a cache miss and describe the levels of cache.
Systems architecture
cache size.
- Describe cache as small, fast memory holding frequently used instructions and data.
- Explain how a larger cache can reduce access time and improve performance.
- Distinguish cache size from RAM capacity, clock speed and core count as performance factors.
Systems architecture
clock
- State the function of the clock in a computer system.
- Explain how the clock synchronises the fetch–decode–execute cycle.
- Describe how clock speed can affect CPU performance.
Systems architecture
clock speed
- State the definition and unit of clock speed.
- Distinguish clock speed from other CPU and memory characteristics.
- Relate clock speed to CPU performance and recognise limiting factors.
Systems architecture
control unit
- State the function of the control unit within the CPU.
- Explain how the control unit coordinates the fetch–decode–execute cycle.
- Distinguish the role of the control unit from that of the ALU.
Systems architecture
decode: the instruction is decoded to work out what it is
- Identify decode as the stage that works out what the fetched instruction is.
- Explain that the control unit performs decoding.
- Distinguish decode from fetch and execute.
Systems architecture
Discuss the advantages and disadvantages of solid state, optical and magnetic storage.
- State at least one advantage and one disadvantage of solid state, magnetic and optical storage.
- Compare the three storage types on speed, capacity, cost and durability.
- Recommend a storage type for a given scenario and justify the choice.
Systems architecture
execute: the instruction is executed (carried out). This may include reading/ writing from/to main memory.
- State the position of the execute stage within the fetch–decode–execute cycle.
- Explain that execution carries out the decoded instruction and may involve reading from or writing to main memory.
- Give an example of an instruction carried out without accessing main memory.
Systems architecture
Explain the advantages and disadvantages of cloud storage when compared to local storage.
- Describe where cloud and local storage physically keep data.
- Explain at least one advantage and one disadvantage of each storage type with a reason.
- Compare the two storage types for a given user scenario and justify a choice.
Systems architecture
Explain the effect of the following on the performance of the CPU:
- Explain how clock speed affects the rate of instruction processing.
- Explain how cache size reduces waiting for main memory.
- Explain how the number of cores enables parallel processing and when this helps.
Systems architecture
Explain the operation of solid state, optical and magnetic storage.
- Explain how solid state storage uses electrical circuits to store data persistently.
- Explain how optical storage uses a laser and surface pattern to read and write data.
- Explain how magnetic storage uses a read/write head and magnetised platter to store data.
Systems architecture
Explain the role and operation of main memory and the following major components of a central processing unit (CPU) within the Von Neumann architecture:
- Describe the role of main memory in the Von Neumann architecture.
- Explain the function of the control unit, ALU, registers, and clock.
- Outline how buses connect the CPU and main memory.
- Apply the fetch-decode-execute cycle to a simple instruction.
Systems architecture
Explain the term cloud storage. Students should understand that cloud storage uses magnetic and/or solid state storage at a remote location.
- Explain that cloud storage holds data at a remote location.
- Identify that remote cloud hardware uses magnetic and/or solid state storage.
- Describe how data in cloud storage is accessed over a network.
Systems architecture
fetch: the next instruction is fetched to the CPU from main memory
- Identify fetch as the stage that brings the next instruction from main memory into the CPU.
- Describe the role of the program counter in supplying the instruction address.
- Distinguish fetch from decode and execute.
Systems architecture
Know what the different types of memory are used for and why they are required.
- Identify the purpose of registers, cache, RAM and ROM in a computer system.
- Explain why each type of memory is required in terms of speed, capacity, cost and volatility.
- Distinguish volatile from non-volatile memory when selecting an answer.
Systems architecture
Knowledge of specific registers is not required.
- Knowledge of specific registers is not required.
Systems architecture
Main memory will be considered to be any form of memory that is directly accessible by the CPU (except for cache and registers).
- State the definition of main memory as memory directly accessible by the CPU, excluding cache and registers.
- Identify RAM and ROM as examples of main memory.
- Explain why cache and registers are not classed as main memory under this definition.
Systems architecture
number of processor cores
- Define a processor core as an independent processing unit.
- Explain how multiple cores enable parallel processing and can improve performance.
- Identify the limitation that software and shared resources affect the benefit of more cores.
Systems architecture
RAM
- State that RAM is volatile and loses its contents when power is removed.
- Identify that RAM holds currently running programs and the data in use.
- Distinguish RAM from ROM and secondary storage in a multiple-choice question.
Systems architecture
register
- Define a register as a small, fast storage location inside the CPU.
- Identify the role of named registers such as the program counter and accumulator.
- Distinguish registers from main memory in terms of size, speed and function.
Systems architecture
Register.
- Define a register as a small, fast storage location inside the CPU.
- State the purpose of the program counter, memory address register, memory data register and accumulator.
- Explain why registers are faster than other types of memory.
Systems architecture
ROM
- State that ROM is non-volatile and retains its contents without power.
- Identify that ROM stores the start-up instructions used when a computer is switched on.
- Distinguish ROM from RAM and secondary storage in a multiple-choice question.
Systems architecture
Secondary storage is considered to be any non- volatile storage mechanism not directly accessible by the CPU.
- State the definition of secondary storage as non-volatile storage not directly accessible by the CPU.
- Identify valid examples of secondary storage such as HDD, SSD and USB flash drives.
- Explain why data on secondary storage must be loaded into main memory before the CPU can use it.
Systems architecture
Students must be able to give examples of embedded and non-embedded systems.
- State what an embedded system is and give a correct example.
- State what a non-embedded system is and give a correct example.
- Justify why a named device is classified as embedded or non-embedded.
Systems architecture
Students should be able to explain the terms volatile and non-volatile.
- Define volatile in terms of data being lost when power is removed.
- Define non-volatile in terms of data being retained when power is removed.
- Classify a named storage component as volatile or non-volatile and justify the choice.
Systems architecture
Students should be aware that SSDs use electrical circuits to persistently store data but will not need to know the precise details such as use of NAND gates.
- State that an SSD uses electrical circuits to store data.
- Explain that SSD storage is persistent, retaining data without power.
- Identify that precise details such as NAND gates are not required knowledge.
Systems architecture
The CPU continually reads instructions stored in main memory and executes them as required:
- State where instructions are stored before the CPU processes them.
- Describe the CPU as repeatedly fetching and executing instructions.
- Identify the register that tracks the next instruction address.
Systems architecture
Understand and explain the Fetch-Execute cycle.
- Describe the fetch stage and the role of the program counter, MAR, MDR and CIR.
- Explain how the control unit decodes an instruction.
- Explain how the execute stage carries out the operation and how the cycle repeats.
Systems architecture
Understand the differences between main memory and secondary storage.
- Compare main memory and secondary storage on volatility, speed, capacity and cost.
- Explain why secondary storage is required alongside volatile main memory.
- Describe how data moves from secondary storage into main memory for processing.
Systems architecture
Understand the differences between RAM and ROM.
- State the purpose of RAM and of ROM in a computer system.
- Explain how RAM and ROM differ in whether they can be written to.
- Explain how RAM and ROM differ in their behaviour when power is removed.
Systems architecture
Understand the different types of memory within a computer:
- Identify RAM, ROM, cache, registers and secondary storage from their properties.
- Distinguish volatile from non-volatile memory.
- Select the correct memory type for a given speed or purpose description.
Systems architecture
Understand the term embedded system and explain how an embedded system differs from a non-embedded system.
- Define the term embedded system and give a valid example.
- Explain at least two ways an embedded system differs from a non-embedded system.
- Select the correct description of an embedded system from given options.
Systems architecture
Understand why secondary storage is required.
- Explain that RAM is volatile and secondary storage is non-volatile.
- Describe why long-term storage of files and programs is required.
- Explain how programs and data move between secondary storage and RAM.
Units of information
A bit is either a 0 or a 1.
- State that a bit is either a 0 or a 1.
- Identify a bit as a single binary digit with two possible states.
- Distinguish a bit from a byte and explain why bits are grouped.
Units of information
a bit is the fundamental unit of information
- Explain why a bit is described as the fundamental unit of information.
- State that a bit holds a value of 0 or 1.
- Relate bits to larger units such as the byte and to the 2ⁿ combinations of n bits.
Units of information
a byte is a group of 8 bits.
- State that a bit is a single binary digit.
- Define a byte as a group of 8 bits.
- Explain that one byte can represent 256 different values from 0 to 255.
Units of information
b represents bit
- Identify that the symbol b represents a bit and B represents a byte.
- Convert between bits and bytes using the factor of 8.
- Apply correct units when comparing data rates and storage sizes.
Units of information
B represents byte
- State that B represents byte.
- Distinguish uppercase B (byte) from lowercase b (bit).
- Relate one byte to a group of 8 bits.
Units of information
Be able to compare quantities of bytes using the prefixes above.
- Convert byte quantities between kilo, mega, giga and tera using factors of 1,000
- Compare two or more storage quantities by expressing them in the same prefix
- Justify which of several storage values is largest or smallest after conversion
Units of information
giga, 1 GB is 1,000 Megabytes
- State the relationship 1 GB = 1,000 MB.
- Convert a given quantity between gigabytes and megabytes using a factor of 1,000.
- Select the correct conversion from multiple-choice options and justify the choice.
Units of information
kilo, 1 kB is 1,000 bytes
- State that 1 kB is 1,000 bytes.
- Convert a given number of bytes into kilobytes, megabytes or gigabytes using factors of 1,000.
- Select the correct power-of-10 value for a unit of information in a multiple-choice question.
Units of information
Know that quantities of bytes can be described using prefixes.
- State the decimal value of kilo, mega, giga and tera when applied to bytes.
- Convert a quantity of bytes into a larger prefixed unit by dividing.
- Convert a prefixed unit into bytes by multiplying and give the answer with its unit.
Units of information
Know that:
- Explain how the bit and byte relate within the Units of information topic
- State that a byte contains 8 bits
- Convert a quantity of bytes into a prefixed unit and back using the correct multiplier
Units of information
Know the names, symbols and corresponding values for the decimal prefixes:
- State the name, symbol and value of each decimal prefix from kilo to peta.
- Convert a quantity between prefixed units of information using powers of ten.
- Identify and correct an incorrectly written prefix symbol or value.
Units of information
mega, 1 MB is 1,000 kilobytes
- State the relationship 1 MB = 1,000 kB.
- Convert a given quantity between megabytes and kilobytes using a factor of 1,000.
- Select the correct conversion from multiple-choice options and justify the choice.
Units of information
Students might benefit from knowing that historically the terms kilobyte, megabyte, etc have often been used to represent powers of 2.
- Explain that kilobyte, megabyte and related terms have historically been used for powers of 2.
- Distinguish 1024-based binary usage from 1000-based decimal usage of the same unit names.
- Select and apply the appropriate convention when converting between units of information in a given task.
Units of information
tera, 1 TB is 1,000 Gigabytes.
- State that 1 TB equals 1,000 GB using the decimal prefix table
- Convert a given number of gigabytes to terabytes and back by dividing or multiplying by 1,000
- Select the correct conversion when comparing storage values expressed in different prefixes
Units of information
The International System of Units (SI units) kilo, mega and so forth refer to values based on powers of 10. When referring to powers of 2 the terms kibi, mebi and so forth would normally be used but students do not need to know these.
- State that SI prefixes such as kilo and mega are based on powers of 10.
- Convert between byte, kilobyte, megabyte and gigabyte using factors of 1,000.
- Recognise that binary prefixes such as kibi and mebi are not required knowledge for this qualification.
Regulatory & Verification Details
- Qualification Number (QN)
- 601/8301/9
- Regulated Status
- Available to learners
- Awarding Body
- AQA
- Qualification Type
- GCSE (9 to 1)
- Operational Start
- Sept 2016