Subject Content - A-Levels Computers
Topic 1: Computer systems
1.1 Computer architecture
| Content | Learners should: |
|---|---|
| 1.1.1 Stored-program concept | Know and understand: • Definition • Function • Characteristics • Operation • Benefits • Drawbacks |
| 1.1.2 von Neumann architecture | Know and understand: • Definition • Function • Characteristics • Operation • Benefits • Drawbacks |
| 1.1.3 Internal components of a computer system: a. Central processing unit (CPU) b. Memory: • Random access memory (RAM) • Read-only memory (ROM) • Cache c. Input/output d. Buses: • Address • Data • Control | Know and understand: • Definition • Function • Characteristics • Why needed • Operation Be able to: • interpret and complete a diagrammatic representation of the internal components of a computer system based on von Neumann architecture • develop an expression for the amount of addressable memory. |
| 1.1.4 Components of the CPU: a. Control unit (CU) b. Arithmetic logic unit (ALU) c. General-purpose registers d. Special-purpose registers: • Program counter (PC) • Memory address register (MAR) • Memory buffer register (MBR) • Current instruction register (CIR) • Accumulator (ACC) • Stack pointer (SP) • Status register (SR) e. Clock | Know and understand: • Definition • Function • Characteristics • Why needed • Operation Be able to: • interpret and complete a diagrammatic representation of the components of the CPU. Learners should be familiar with and be able to use the CPU component symbols shown in Appendix 2: Symbols. |
| 1.1.5 Fetch-decode-execute (FDE) cycle: a. Stages b. Role of components c. Use of read/write control signals | Know and understand: • Definition • Function • Why needed • Operation Be able to: • use register transfer notation to show how data passes between registers during the FDE cycle • interpret and complete a diagrammatic representation of the transfer of data between components during the FDE cycle. Learners should be familiar with and be able to use the register transfer notation shown in Appendix 2: Symbols. |
| 1.1.6 Memory hierarchy: a. CPU registers b. Cache: • Level 1 • Level 2 • Level 3 c. Main memory d. Secondary storage | Know and understand: • Definition • Function • Characteristics • Operation • Benefits • Drawbacks Be able to: • interpret and complete a diagrammatic representation of the memory hierarchy. |
| 1.1.7 Data transmission: a. Serial b. Parallel | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Be able to: • interpret and complete a diagrammatic representation of data transmission. |
1.2 The operating system (OS)
| Content | Learners should: |
|---|---|
| 1.2.1 Role of the OS: a. User interface b. User management c. Peripheral management d. Process management e. Memory management | Know and understand: • Definition • Function • Characteristics • Why needed |
| 1.2.2 Multitasking: a. Time sharing b. Context switching c. Interrupt handling in multitasking | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Be able to: • interpret and complete a diagrammatic representation of the interrupt handling process. |
| 1.2.3 Process management: a. Process b. Process states c. Scheduling d. Scheduling algorithms: • Round robin (RR) • First-come, first-served (FCFS) • Shortest job first (SJF) • Multi-level queue | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Be able to: • interpret and complete a diagrammatic representation of process states • interpret and complete a diagrammatic representation of a scheduling algorithm. |
| 1.2.4 Memory management: a. Operations: • Tracking memory allocation status • Determining storage requirements • Controlling memory usage b. Allocation techniques: • Paging • Segmentation • Virtual memory c. Stack frame | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Be able to: • interpret and complete a diagrammatic representation of memory usage • interpret and complete a diagrammatic representation of the contents of a call stack. |
Topic 2: Data representation
2.1 Numbers
| Content | Learners should: |
|---|---|
| 2.1.1 Number bases: a. Binary b. Denary c. Hexadecimal | Know and understand: • Definition • Function • Characteristics • Why needed Be able to: • convert unsigned integers between bases. |
| 2.1.2 Units of measurement: a. Binary numbers: • bit (b) • nibble • byte (B) b. IEC binary prefixes: • kibi (Ki) • mebi (Mi) • gibi (Gi) • tebi (Ti) c. SI decimal prefixes: • kilo (K) • mega (M) • giga (G) • tera (T) | Know and understand: • Definition • Function • Characteristics • Operation • Benefits • Drawbacks Be able to: • use binary units of measurement to express data capacity and file sizes • use decimal units of measurement to denote transmission speeds • rank units of measurement in size order • convert between units of measurement • interpret and write expressions using units of measurement • calculate the maximum number of states that can be represented by a given number of bits. |
| 2.1.3 Two's complement representation of signed numbers | Know and understand: • Definition • Function • Characteristics • Why needed • Operation Be able to: • convert signed denary integers into two's complement signed binary and vice versa • use negation to convert from one sign to another. |
| 2.1.4 Fixed-point representation of signed fractional numbers | Know and understand: • Definition • Function • Characteristics • Why needed • Operation Be able to: • convert signed fractional denary numbers to fixed-point signed binary and vice versa • work with halves, quarters and eighths. |
2.2 Binary arithmetic
| Content | Learners should: |
|---|---|
| 2.2.1 Addition and subtraction | Know and understand: • Definition • Function • Operation Be able to: • perform addition and subtraction on signed and unsigned binary numbers. |
| 2.2.2 Bitwise manipulation: a. Logical shift b. Arithmetic shift c. Bit masks: • AND • OR • XOR | Know and understand: • Definition • Function • Characteristics • Why needed • Operation Be able to: • perform binary shifts • use a mask to check the status of bits in a binary pattern. |
| 2.2.3 Overflow and underflow | Know and understand: • Definition • Function • Characteristics |
2.3 Text
| Content | Learners should: |
|---|---|
| 2.3.1 Character encoding systems: a. ASCII/extended ASCII b. UTF-8/Unicode | Know and understand: • Definition • Function • Characteristics • Why needed • Benefits • Drawbacks |
Topic 3: Networks and encryption
3.1 Network fundamentals
| Content | Learners should: |
|---|---|
| 3.1.1 Network components: a. Network interface card (NIC) b. Switch c. Home router d. Modem e. Wireless access point (WAP) f. Transmission media: • Copper • Wireless • Fibre g. Firewall • Hardware • Software | Know and understand: • Definition • Function • Why needed • Characteristics • Operation • Benefits • Drawbacks Be able to: • interpret and complete a diagrammatic representation of a network. |
| 3.1.2 Network components: a. Bandwidth b. Speed/transfer rate c. Latency d. Range | Know and understand: • Definition • Characteristics Be able to: • develop expressions involving file size, transfer rate and time. |
| 3.1.3 Network addressing: a. Internet protocol (IP): • IPv4 • IPv6 b. Media access control (MAC) | Know and understand: • Definition • Function • Characteristics • Why needed • Operation Be able to: • develop expressions involving network addresses. |
3.2 Encryption
| Content | Learners should: |
|---|---|
| 3.2.1 Encryption fundamentals | Know and understand: • Definition • Function • Characteristics • Why needed • Benefits • Drawbacks |
| 3.2.2 Methods of encryption: a. Symmetric: • Known shared key • Key exchange b. Asymmetric: • Public/private key pair | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Be able to: • interpret and complete a diagrammatic representation of the encryption/decryption process. |
| 3.2.3 Monoalphabetic substitution cipher | Know and understand: • Definition • Function • Characteristics • Operation • Benefits • Drawbacks Be able to: • encrypt a plaintext message/decrypt a ciphertext message using a monoalphabetic substitution cipher. |
| 3.2.4 Vernam cipher algorithm | Know and understand: • Definition • Function • Characteristics • Operation • Benefits • Drawbacks Be able to: • encrypt a plaintext message/decrypt a ciphertext message using a Vernam cipher. |
Topic 4: Structuring data
4.1 Relational databases
| Content | Learners should: |
|---|---|
| 4.1.1 Entity-relationship model (ERM): a. Entity b. Attribute c. Key: • Primary • Foreign • Composite d. Relationship cardinality: • One-to-one (1:1) • One-to-many (1:M) • Many-to-many (M:M) e. Ways of representing: • Entity-relationship diagram (ERD) • Parenthetical notation | Know and understand: • Definition • Function • Characteristics • Why needed • Operation Be able to: • interpret, complete, find and correct errors in an ERD • interpret, complete, find and correct errors in a schema expressed in parenthetical notation. Learners should be familiar with and be able to use the ERD symbols shown in Appendix 2: Symbols. Learners' understanding of relational databases is assessed in Unit 1. Their ability to connect to and use an SQLite database is assessed in Unit 2. |
| 4.1.2 Logical schema: a. Table/relation b. Column/attribute c. Row/tuple d. Data types e. Integrity constraints: • Entity • Referential • Domain | Know and understand: • Definition • Function • Characteristics • Why needed • Operation Learners' understanding of relational databases is assessed in Unit 1. Their ability to connect to and use an SQLite database is assessed in Unit 2. |
4.2 Data structures
| Content | Learners should: |
|---|---|
| 4.2.1 Data structures: a. Array b. List c. Dictionary d. Record e. Tuple f. Set | Know and understand: • Definition • Function • Characteristics • Operation • Benefits • Drawbacks Be able to: • hand trace operations on one- and two-dimensional data structures • show the contents of a data structure after operations have been performed • perform common operations on sets. Learners' understanding of data structures is assessed in Unit 1. Their ability to create and handle data structures in code is assessed in Unit 2. |
4.3 Abstract data types (ADTs)
| Content | Learners should: |
|---|---|
| 4.3.1 Stack: a. Structure b. Operations: • Insert • Delete • Search | Know and understand: • Definition • Function • Characteristics • Operation • Benefits • Drawbacks Be able to: • hand trace operations on a stack • show the contents of a stack after operations have been performed. Learners' understanding of the stack ADT is assessed in Unit 1. Their ability to represent and handle a stack implemented as a fixed-length list is assessed in Unit 2. |
| 4.3.2 Queue: a. Structure b. Operations: • Insert • Delete • Search | Know and understand: • Definition • Function • Characteristics • Operation • Benefits • Drawbacks Be able to: • hand trace operations on a queue • show the contents of a queue after operations have been performed. Learners' understanding of the queue ADT is assessed in Unit 1. Their ability to represent and handle a queue implemented as a fixed-length list is assessed in Unit 2. |
Topic 5: Problem solving
5.1 Tools and techniques
| Content | Learners should: |
|---|---|
| 5.1.1 Algorithms | Know and understand: • Definition • Function • Characteristics • Why needed • Operation Be able to: • interpret, complete and develop algorithms expressed in words, diagrams, flowcharts and code • analyse the efficiency of algorithms • find and correct logic errors in algorithms. Learners should be familiar with and be able to use the flowchart symbols shown in Appendix 2: Symbols. Learners' ability to interpret and develop algorithms is assessed in Unit 1. Their ability to convert algorithms into code is assessed in Unit 2. |
| 5.1.2 Trace table | Know and understand: • Definition • Function • Characteristics • Why needed • Operation Be able to: • complete a trace table for an algorithm. |
| 5.1.3 Recursion | Know and understand: • Definition • Function • Characteristics • Why needed • Operation Be able to: • hand trace the operation of a recursive algorithm. Learners' understanding of recursion is assessed in Unit 1. Their ability to use recursion in code is assessed in Unit 2. |
5.2 Searching and sorting algorithms
| Content | Learners should: |
|---|---|
| 5.2.1 Linear search algorithm: a. Unsorted array b. Sorted array | Know and understand: • Definition • Function • Characteristics • Operation • Benefits • Drawbacks Be able to: • hand trace the operation of a linear search algorithm. Learners' understanding of how a linear search algorithm works is assessed in Unit 1. Their ability to implement a linear search in code is assessed in Unit 2. |
| 5.2.2 Binary search algorithm: a. Iterative b. Recursive | Know and understand: • Definition • Function • Characteristics • Operation • Benefits • Drawbacks Be able to: • hand trace the operation of a binary search algorithm. Learners' understanding of how a binary search algorithm works is assessed in Unit 1. Their ability to implement a binary search in code is assessed in Unit 2. |
| 5.2.3 Bubble sort algorithm | Know and understand: • Definition • Function • Characteristics • Operation • Benefits • Drawbacks Be able to: • hand trace the operation of a bubble sort algorithm. Learners' understanding of how a bubble sort algorithm works is assessed in Unit 1. Their ability to implement a bubble sort in code is assessed in Unit 2. |
| 5.2.4 Insertion sort algorithm | Know and understand: • Definition • Function • Characteristics • Operation • Benefits • Drawbacks Be able to: • hand trace the operation of an insertion sort algorithm. Learners' understanding of how an insertion sort algorithm works is assessed in Unit 1. Their ability to implement an insertion sort in code is assessed in Unit 2. |
5.3 Boolean logic
| Content | Learners should: |
|---|---|
| 5.3.1 Boolean expressions: a. Boolean operators: • AND • OR • XOR • NOT • NAND • NOR b. Order of precedence | Know and understand: • Definition • Function • Why needed • Operation Be able to: • interpret and create Boolean expressions. Learners should be familiar with and be able to use the Boolean algebraic notation shown in Appendix 2: Symbols. |
| 5.3.2 Truth table | Know and understand: • Definition • Function • Why needed • Operation Be able to: • interpret and complete a truth table for a given logical expression. |
5.4 Programming paradigms
| Content | Learners should: |
|---|---|
| 5.4.1 Procedural programming paradigm | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Learners' understanding of the procedural programming paradigm is assessed in Unit 1. Their ability to use procedural programming is assessed in Unit 2. |
| 5.4.2 Declarative programming paradigm | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Learners' understanding of the declarative programming paradigm is assessed in Unit 1. Their ability to use declarative programming is assessed in Unit 2. |
Topic 6: Enabling technologies
6.1 Data science
| Content | Learners should: |
|---|---|
| 6.1.1 Big data: a. Five Vs (volume, velocity, variety, veracity, value) b. Infrastructure: • Collection • Storage • Processing • Modelling and analysis • Networking • Security | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Be able to: • interpret and complete a diagrammatic representation of a big data system. |
| 6.1.2 Tools and techniques of data science: a. Collection b. Storage c. Web scraping d. Cleaning e. Analysis f. Visualisation | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks |
6.2 Artificial intelligence (AI)
| Content | Learners should: |
|---|---|
| 6.2.1 Categories of AI: a. Narrow b. General c. Super | Know and understand: • Definition • Characteristics • Why needed • Benefits • Drawbacks |
| 6.2.2 Machine learning (ML): a. Supervised b. Unsupervised | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Be able to: • interpret and complete a diagrammatic representation of a supervised/unsupervised ML system. |
| 6.2.3 Large language model (LLM): a. Context and query accuracy b. Knowledge limitations c. Bias/subjectivity | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Be able to: • interpret and complete a diagrammatic representation of a LLM system. |
6.3 Tools
| Content | Learners should: |
|---|---|
| 6.3.1 Integrated development environment (IDE): a. Text editor b. Autocomplete c. Syntax checker d. Debugger: • Breakpoints • Stepping e. Memory inspection | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Learners' understanding of features of an IDE is assessed in Unit 1. They are expected to use an IDE when writing program code in Unit 2. |
| 6.3.2 Version control system (VCS) | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Learners are not expected to have experience of using a VCS. |
| 6.3.3 Open-source technologies | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks |
| 6.3.4 Application programming interface (API) | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Learners' understanding of APIs is assessed in Unit 1. They are expected to use an API when working with SQLite databases in Unit 2. |
Topic 7: Programming
7.1 Constructs
| Content | Learners should: |
|---|---|
| 7.1.1 Flow control constructs: a. Sequence b. Selection c. Count-controlled iteration d. Condition-controlled iteration e. Exception handling for built-in exceptions | Be able to: • select and use appropriate flow control constructs. Further details provided in the Programming Language Subset (PLS) document. |
| 7.1.2 Variables and constants: a. Creation b. Assignment c. Access | Be able to: • select and use appropriate variables and constants. Further details provided in the Programming Language Subset (PLS) document. |
| 7.1.3 Operators: a. Arithmetic b. Relational c. Boolean d. Bitwise | Be able to: • select and use appropriate operators. Further details provided in the Programming Language Subset (PLS) document. |
| 7.1.4 Subprograms: a. Parameter b. Argument c. Function d. Procedure | Be able to: • select and use appropriate subprograms. Further details provided in the Programming Language Subset (PLS) document. |
Topic 8: Organising and handling data
8.1 Data types and structures
| Content | Learners should: |
|---|---|
| 8.1.1 Data types: a. Integer b. Real c. Character d. Boolean e. String | Be able to: • select and use appropriate data types • convert between data types. Further details provided in the Programming Language Subset (PLS) document. |
| 8.1.2 Data structures: a. Array b. List c. Dictionary d. Record e. Tuple f. Set | Be able to: • select and use one- and two-dimensional data structures • select and use one- and two-dimensional lists as equivalent to one- and two-dimensional arrays • convert between data structures. Further details provided in the Programming Language Subset (PLS) document. Learners' understanding of data structures is assessed in Unit 1. Their ability to create and handle data structures in code is assessed in Unit 2. |
8.2 Data handling methods
| Content | Learners should: |
|---|---|
| 8.2.1 Methods to handle numeric data: a. Rounding b. Truncation c. Randomisation d. Data type conversions | Be able to: • select and use appropriate methods for handling numeric data. Further details provided in the Programming Language Subset (PLS) document. |
| 8.2.2 Methods to handle string data: a. Length b. Indexing c. Formatting d. Examining e. Manipulating | Be able to: • select and use appropriate methods for handling string data. Further details provided in the Programming Language Subset (PLS) document. |
| 8.2.3 Methods to handle text files: a. Open b. Read from c. Write to d. Append to e. Close | Be able to: • select and use appropriate methods for handling text files. Further details provided in the Programming Language Subset (PLS) document. |
| 8.2.4 Methods to handle data structures: a. Create b. Insert c. Update d. Retrieve e. Delete f. Traverse | Be able to: • select and use appropriate methods for handling data structures. Further details provided in the Programming Language Subset (PLS) document. Learners' understanding of data structures is assessed in Unit 1. Their ability to create and handle data structures in code is assessed in Unit 2. |
| 8.2.5 Methods to represent and handle a stack implemented as a fixed-length list: a. Create b. Push c. Pop d. IsEmpty e. IsFull f. Size | Be able to: • select and use appropriate methods to handle a stack implemented as a fixed-length list. Further details provided in the Programming Language Subset (PLS) document. Learners' understanding of the stack ADT is assessed in Unit 1. Their ability to create and handle a stack implemented as a fixed-length list is assessed in Unit 2. |
| 8.2.6 Methods to represent and handle a queue implemented as a fixed-length list: a. Create b. Enqueue c. Dequeue d. IsEmpty e. IsFull f. Size | Be able to: • select and use appropriate methods to handle a queue implemented as a fixed-length list. Further details provided in the Programming Language Subset (PLS) document. Learners' understanding of the queue ADT is assessed in Unit 1. Their ability to create and handle a queue implemented as a fixed-length list is assessed in Unit 2. |
| 8.2.7 Methods to handle a set: a. Membership b. Union c. Intersection d. Difference | Be able to: • select and use appropriate methods to handle a set. Further details provided in the Programming Language Subset (PLS) document. Learners' understanding of sets is assessed in Unit 1. Their ability to use set operations in code is assessed in Unit 2. |
8.3 Relational databases
| Content | Learners should: |
|---|---|
| 8.3.1 Methods to administer an SQLite database | Be able to: • select and use appropriate methods to administer an SQLite database. Further details provided in the Programming Language Subset (PLS) document. Learners' understanding of relational databases is assessed in Unit 1. Their ability to administer an SQLite database is assessed in Unit 2. |
| 8.3.2 Methods to manipulate data from an SQLite database | Be able to: • select and use appropriate methods to manipulate data from an SQLite database. Further details provided in the Programming Language Subset (PLS) document. Learners' understanding of relational databases is assessed in Unit 1. Their ability to manipulate an SQLite database is assessed in Unit 2. |
| 8.3.3 Methods to retrieve data from an SQLite database | Be able to: • select and use appropriate methods to retrieve data from an SQLite database. Further details provided in the Programming Language Subset (PLS) document. Learners' understanding of relational databases is assessed in Unit 1. Their ability to query an SQLite database is assessed in Unit 2. |
| 8.3.4 Methods to filter and refine data retrieved from an SQLite database | Be able to: • select and use appropriate methods to filter and refine data retrieved from an SQLite database. Further details provided in the Programming Language Subset (PLS) document. Learners' understanding of relational databases is assessed in Unit 1. Their ability to filter and refine data retrieved from an SQLite database is assessed in Unit 2. |
Topic 9: Best practice
9.1 Program design
| Content | Learners should: |
|---|---|
| 9.1.1 Methods to produce correct outcomes: a. Problem decomposition into component parts b. Clear and appropriate logic c. Variables, constants, data types and data structures appropriate to the problem d. Programming constructs appropriate to the problem | Be able to: • select and use appropriate methods to produce correct outcomes. Further details provided in the Good Programming Practice Guide (GPPG). |
| 9.1.2 Methods to implement good practice in program design: a. Modularity b. Separation of concerns c. Minimisation of side effects d. Scope isolation e. Fitness for purpose of input and output f. Efficient solutions in terms of execution time and memory usage | Be able to: • select and use appropriate methods to design effective code. Further details provided in the Good Programming Practice Guide (GPPG). |
| 9.1.3 Methods to implement modularity in source code: a. Blocked code b. User-defined subprograms c. Built-in subprograms d. Libraries of subprograms e. Files f. Procedures g. Functions | Be able to: • select and use appropriate methods to produce modular code. Further details provided in the Programming Language Subset (PLS) document and Good Programming Practice Guide (GPPG). |
9.2 Clean code
| Content | Learners should: |
|---|---|
| 9.2.1 Consistency: a. Use of white space b. Line breaks layout c. Naming conventions d. Fixed line length | Be able to: • select and use appropriate methods to improve the consistency of code. Further details provided in the Good Programming Practice Guide (GPPG). |
| 9.2.2 Readability: a. Meaningful identifiers b. Informative comments c. Named constants d. Subprograms | Be able to: • select and use appropriate methods to improve the readability of code. Further details provided in the Good Programming Practice Guide (GPPG). |
| 9.2.3 Methods to control the behaviour of program code: a. Boundary value analysis b. Exception handling c. Minimising nested conditionals d. Minimising loops e. Using guard clauses f. Managed conversion of data types | Be able to: • select and use appropriate methods to control the behaviour of code. Further details provided in the Programming Language Subset (PLS) document and Good Programming Practice Guide (GPPG). |
9.3 Functionality
| Content | Learners should: |
|---|---|
| 9.3.1 Methods to ensure that code is fit for purpose, produces accurate results and meets requirements: a. Testing and debugging b. Reviewing and refining | Be able to: • identify errors in program code • correct errors in program code • produce accurate outcomes • refine solutions to meet requirements. Further details provided in the Good Programming Practice Guide (GPPG). |
Topic 10: Computational thinking and algorithms
10.1 Computational thinking
| Content | Learners should: |
|---|---|
| 10.1.1 Abstraction | Be able to: • use subprograms to hide implementation details. |
| 10.1.2 Decomposition | Be able to: • use comment-first coding to describe an algorithm. |
| 10.1.3 Pattern recognition | Be able to: • use the same or similar solution/algorithm/subprogram in a different problem • use the same or similar data structure in a different problem. |
| 10.1.4 Generalisation | Be able to: • use a solution/algorithm/subprogram for similar problems by changing input parameters. |
10.2 Implementing algorithms
| Content | Learners should: |
|---|---|
| 10.2.1 Create programmed solutions from algorithms: a. Expressed in words b. Expressed in diagrams c. Expressed in flowcharts | Be able to: • convert algorithms into code. |
10.3 Search and sort algorithms
| Content | Learners should: |
|---|---|
| 10.3.1 Linear search algorithm: a. Worst-case on unsorted list b. Early exit when found on unsorted list c. Early exit when found on sorted list d. Early exit when not in list on sorted list | Be able to: • implement and use an appropriate linear search algorithm. Learners' understanding of how a linear search algorithm works is assessed in Unit 1. Their ability to amend and write a linear search in code is assessed in Unit 2. |
| 10.3.2 Binary search algorithm: a. Iterative b. Recursive | Be able to: • implement and use an appropriate binary search algorithm. Learners' understanding of how a binary search algorithm works is assessed in Unit 1. Their ability to amend and write a binary search in code is assessed in Unit 2. |
| 10.3.3 Bubble sort algorithm: a. Worst case b. Exit with no swaps c. Reduce upper bound on each pass | Be able to: • implement and use an appropriate bubble sort algorithm. Learners' understanding of how a bubble sort algorithm works is assessed in Unit 1. Their ability to amend and write a bubble sort in code is assessed in Unit 2. |
| 10.3.4 In-place insertion sort algorithm | Be able to: • implement and use an in-place insertion sort algorithm. Learners' understanding of how an in-place insertion sort algorithm works is assessed in Unit 1. Their ability to amend and write an insertion sort in code is assessed in Unit 2. |
10.4 Recursion
| Content | Learners should: |
|---|---|
| 10.4.1 Recursive algorithms | Be able to: • implement and use recursive algorithms. Learners' understanding of recursion is assessed in Unit 1. Their ability to amend and write recursion in code is assessed in Unit 2. |
Topic 11: Computer systems and data representation
11.1 Computer architecture
| Content | Learners should: |
|---|---|
| 11.1.1 Harvard architecture: a. Memory structure b. Difference between Harvard and von Neumann architecture | Know and understand: • Definition • Function • Characteristics • Operation • Benefits • Drawbacks Be able to: • interpret and complete a diagrammatic representation of the internal components of a computer system based on the Harvard architecture. Learners should be familiar with and be able to use the CPU component symbols shown in Appendix 2: Symbols. |
| 11.1.2 Complex instruction set (CISC) and reduced instruction set computer (RISC): a. Architecture b. Difference between RISC and CISC | Know and understand: • Definition • Function • Characteristics • Operation • Benefits • Drawbacks |
| 11.1.3 Five-stage instruction pipelining: a. Stages: • Instruction fetch (IF) • Instruction decode (ID) • Execute (EX) • Memory Access (MEM) • Register write back (WB) b. Branch hazards | Know and understand: • Definition • Function • Characteristics • Operation • Benefits • Drawbacks Be able to: • interpret and complete a diagrammatic representation of the pipelining process. |
| 11.1.4 Parallel processing: a. Multicore processors: • Multiple instruction multiple data (MIMD) b. Graphic processing units (GPUs): • Single instruction multiple data (SIMD) | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Be able to: • identify and complete a diagrammatic representation of parallel processing. |
| 11.1.5 Embedded systems: a. Hardware components: • Microprocessor • Microcontroller unit (MCU) • Memory • I/O interfaces and ports • Sensors: ○ Accelerometer ○ Vibration ○ Sound ○ Temperature • Actuators • Analogue-digital converter (ADC/DAC): ○ Sampling ○ Quantisation ○ Encoding • Power supply b. Software components: • Firmware • Operating system (OS) • Application software • Programming languages used to develop software for embedded systems | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Be able to: • interpret and complete a design for an embedded system • interpret and complete a diagrammatic representation of the ADC/DAC process. |
11.2 The operating system
| Content | Learners should: |
|---|---|
| 11.2.1 Input/output (I/O) device management: a. Role of device drivers b. Basic I/O system (BIOS) c. Role of buffering d. Role of caching e. Interrupt handling in device management | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Be able to: • interpret and complete a diagrammatic representation of I/O in a computer system. |
| 11.2.2 Virtualisation: a. Containerisation b. Virtual machines | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Be able to: • interpret and complete a diagrammatic representation of a containerised system • interpret and complete a diagrammatic representation of a virtual machine. |
11.3 Data representation
| Content | Learners should: |
|---|---|
| 11.3.1 Floating-point representation (IEEE-754) | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Be able to: • convert fractional numbers into binary and vice versa using 16-bit half precision IEEE-754 standard (1-bit sign), 5-bit exponent (biased), and 10-bit significand. |
Topic 12: Networks and cybersecurity
12.1 Networking
| Content | Learners should: |
|---|---|
| 12.1.1 Open systems interconnection (OSI) reference model: a. Layers b. Encapsulation/decapsulation | Know and understand: • Definition • Function • Characteristics • Why needed • Operation Be able to: • interpret and complete a diagrammatic representation of encapsulation/decapsulation of packets flowing through the OSI protocol stack. |
| 12.1.2 Protocol stacks: a. TCP/IP b. SSL/TLS | Know and understand: • Definition • Function • Characteristics • Why needed • Operation Be able to: • interpret and complete a diagrammatic representation of encapsulation/decapsulation of packets flowing through the TCP/IP protocol stack • interpret and complete a diagrammatic representation of the SSL/TLS handshake. |
| 12.1.3 Packet switching: a. Packet components b. Internet router c. Protocols | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Learners are not required to study circuit switching. |
| 12.1.4 Domain name system (DNS) | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Be able to: • interpret and complete a diagrammatic representation of how the DNS works. |
12.2 The Internet of Things (IoT)
| Content | Learners should: |
|---|---|
| 12.2.1 The IoT stack: a. Device hardware b. Device software: • Operating system • Applications c. Connectivity: • Networks • Protocols d. Cloud platform: • Data collection • Analytics • APIs e. Cloud applications | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Be able to: • interpret and complete a diagrammatic representation of an IoT system. |
12.3 Cybersecurity
| Content | Learners should: |
|---|---|
| 12.3.1 CIA triad model | Know and understand: • Definition • Characteristics • Why needed |
| 12.3.2 RSA encryption algorithm: a. Prime numbers b. Key exchange c. Vulnerabilities | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Be able to: • interpret and complete a diagrammatic representation of RSA encryption. |
| 12.3.3 Error detection: a. Parity bit b. Two-dimensional parity block c. Checksum | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Be able to: • calculate the parity bit for a given set of bits • calculate the parity bits for a given two-dimensional parity block • calculate the checksum for a given block of data. |
12.4 Computing paradigms
| Content | Learners should: |
|---|---|
| 12.4.1 Cloud computing: a. Infrastructure b. Services | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks |
| 12.4.2 Edge computing a. Infrastructure b. Services | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks |
Topic 13: Programming languages
13.1 Types of programming languages
| Content | Learners should: |
|---|---|
| 13.1.1 Object-oriented programming (OOP) paradigm: a. Concepts: • Abstraction • Class • Instantiation • Methods and attributes (public, private, protected) • Encapsulation • Composition • Inheritance • Polymorphism b. Unified modelling language (UML) class diagrams | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Be able to: • interpret and complete UML class diagrams • identify object-oriented programming (OOP) features implemented in code. Learners should be familiar with and be able to use UML class notation shown in Appendix 2: Symbols. Learners' understanding of the object-oriented programming (OOP) paradigm is assessed in Unit 3. Their ability to use object-oriented programming (OOP) is assessed in Unit 4. |
| 13.1.2 Functional programming paradigm: a. Concepts: • Pure functions • First-class functions • Higher-order functions • Recursion • Immutable variables • Avoid side-effects | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Learners' understanding of the functional programming paradigm is assessed in Unit 3. Their ability to use functional programming is assessed in Unit 4. |
| 13.1.3 Assembly language: a. Mnemonics b. Instructions: • Opcode • Operand c. Addressing modes: • Immediate • Direct d. Operations: • Arithmetic • Bitwise • Branch • Data movement • Halt e. Comments | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Be able to: • read and write simple assembly language code • trace the execution of a simple assembly language program. Learners should be familiar with and able to use the assembly language instructions and operations shown in Appendix 3: Assembly language instruction set. |
Topic 14: Structuring data
14.1 Abstract data types (ADTs)
| Content | Learners should: |
|---|---|
| 14.1.1 Linked list: a. Structure b. Ways to represent: • Classes • References c. Operations: • Insert • Delete • Search • Traverse | Know and understand: • Definition • Function • Characteristics • Operation • Benefits • Drawbacks Be able to: • hand trace operations on a linked list • show the contents of a linked list after operations have been performed. Learners' understanding of the linked list ADT is assessed in Unit 3. Their ability to implement and handle a linked list is assessed in Unit 4. |
| 14.1.2 Hash table: a. Structure b. Ways to represent: • Classes • References c. Operations: • Insert • Delete • Search • Traverse • Calculate hash values • Handle collisions • Load factor and rehashing | Know and understand: • Definition • Function • Characteristics • Operation • Benefits • Drawbacks Be able to: • hand trace operations on a hash table • show the contents of a hash table after operations have been performed • calculate hash values and handle collisions. Learners' understanding of the hash table ADT is assessed in Unit 3. Their ability to implement and handle a hash table is assessed in Unit 4. |
| 14.1.3 Graph: a. Structure b. Ways to represent: • Adjacency matrix • Adjacency list c. Types: • Undirected • Directed • Weighted d. Operations: • Insert • Delete • Search • Traverse [breath, depth] | Know and understand: • Definition • Function • Characteristics • Operation • Benefits • Drawbacks Be able to: • hand trace operations on a graph • show the contents of a graph after operations have been performed. Learners' understanding of the graph ADT is assessed in Unit 3. Their ability to implement and handle a graph is assessed in Unit 4. |
| 14.1.4 Tree: a. Structure b. Types: • Binary tree • Binary search tree c. Operations: • Insert • Delete • Search • Traverse [pre-order, in-order, post-order] | Know and understand: • Definition • Function • Characteristics • Operation • Benefits • Drawbacks Be able to: • hand trace operations on a tree • show the contents of a tree after operations are performed. Learners' understanding of the tree ADT is assessed in Unit 3. Their ability to implement and handle a tree is assessed in Unit 4. |
| 14.1.5 Circular queue: a. Structure b. Operations: • Insert • Delete • Search | Know and understand: • Definition • Function • Characteristics • Operation • Benefits • Drawbacks Be able to: • hand trace operations on a circular queue • show the contents of a circular queue after operations are performed. Learners' understanding of the circular queue ADT is assessed in Unit 3. Their ability to implement and use a circular queue implemented as a fixed-length list is assessed in Unit 4. |
Topic 15: Problem solving
15.1 Algorithm design
| Content | Learners should: |
|---|---|
| 15.1.1 Problem-solving techniques: a. Brute force/exhaustive b. Divide and conquer c. Greedy algorithms d. Heuristics e. Backtracking f. Recursion g. Tracing algorithms | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Be able to: • complete a trace table for an algorithm. Learners' understanding of problem-solving techniques is assessed in Unit 3. Their ability to use them when writing code is assessed in Unit 4. |
15.2 Algorithms
| Content | Learners should: |
|---|---|
| 15.2.1 Merge sort algorithm | Know and understand: • Definition • Function • Characteristics • Operation • Benefits • Drawbacks Be able to: • hand trace the operation of a merge sort algorithm. Learners' understanding of how the merge sort algorithm works is assessed in Unit 3. Their ability to implement a recursive merge sort in code is assessed in Unit 4. |
| 15.2.2 Quick sort algorithm | Know and understand: • Definition • Function • Characteristics • Operation • Benefits • Drawbacks Be able to: • hand trace the operation of a quick sort algorithm. Learners' understanding of how the quick sort algorithm works is assessed in Unit 3. Their ability to implement a recursive quick sort in code is assessed in Unit 4. |
| 15.2.3 Shortest path algorithms: a. Dijkstra's algorithm b. A* algorithm | Know and understand: • Definition • Function • Characteristics • Operation • Benefits • Drawbacks Be able to: • hand trace the operation of a Dijkstra's shortest path algorithm. Learners' understanding of how the Dijkstra's shortest path algorithm works is assessed in Unit 3. Their ability to implement the algorithm in code is assessed in Unit 4. |
15.3 Algorithmic efficiency
| Content | Learners should: |
|---|---|
| 15.3.1 Big O notation: a. Time complexity: • Constant • Logarithmic • Linear • Linearithmic • Polynomial • Exponential | Know and understand: • Definition • Function • Why needed Be able to: • analyse algorithms to establish best and worst Big O • give the best and worst Big O time complexity for common algorithms • determine the Big O time complexity for given code. |
15.4 Boolean logic
| Content | Learners should: |
|---|---|
| 15.4.1 Boolean algebra: a. Commutative b. Associative c. Absorption d. Distributive e. De Morgan's f. Double negation | Know and understand: • Definition • Function • Why needed • Operation Be able to: • use Boolean algebra to manipulate Boolean expressions such as demonstrating that one expression is equivalent to another. Learners should be familiar with and be able to use the Boolean algebraic notation shown in Appendix 2: Symbols. |
| 15.4.2 Karnaugh map | Know and understand: • Definition • Function • Why needed • Operation • Benefits • Drawbacks Be able to: • use Karnaugh maps to simplify Boolean algebraic expressions. |
Topic 16: Emerging technologies and professional practice
16.1 Emerging technologies
| Content | Learners should: |
|---|---|
| 16.1.1 Encryption: a. Digital signatures and certificates b. Hash digest and use of public/private keys | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks |
| 16.1.2 Blockchain | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks Be able to: • interpret and complete a diagrammatic representation of a blockchain. |
| 16.1.3 Quantum computing: a. Qubits b. Principles: • Superposition • Entanglement • Decoherence • Interference c. Threat d. Cryptography | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks |
| 16.1.4 Deep learning: a. Neural networks: • Layers • Forward propagation • Back propagation • Weights • Bias • Activation function | Know and understand: • Definition • Function • Characteristics • Why needed • Operation • Benefits • Drawbacks |
16.2 Professionalism
| Content | Learners should: |
|---|---|
| 16.2.1 Responsible practice: a. Ethical issues b. Legal frameworks c. Codes of conduct | Know and understand: • Definition • Function • Characteristics • Why needed |
Topic 17: Programming
17.1 Fundamental concepts
| Content | Learners should: |
|---|---|
| 17.1.1 Select and use appropriate operators and flow control constructs | Be able to: • select and use appropriate operators and flow control constructs. |
| 17.1.2 Select and use appropriate data types, variables and constants | Be able to: • select and use appropriate data types, variables and constants. |
| 17.1.3 Select and use appropriate one- and two-dimensional data structures | Be able to: • select and use appropriate one- and two-dimensional data structures. |
17.2 Creating solutions
| Content | Learners should: |
|---|---|
| 17.2.1 Using computational thinking techniques | Be able to: • select and use appropriate computational thinking techniques. |
| 17.2.2 Using IDEs and other tools | Be able to: • select and use appropriate tools. |
| 17.2.3 Using libraries, files, modules and subprograms | Be able to: • select and use appropriate libraries, files, modules and subprograms. |
Topic 18: Representing and handling data
18.1 Data handling methods
| Content | Learners should: |
|---|---|
| 18.1.1 Methods to handle floating-point data: a. Decimal module b. Rounding c. Decimal class d. Data type conversions e. Exception handling f. Compare | Be able to: • select and use appropriate methods for handling floating-point data. Further details provided in the Programming Language Subset (PLS) document. |
| 18.1.2 Methods to handle regular expressions (re): a. Finding b. Validating | Be able to: • select and use appropriate methods for handling regular expressions. Further details provided in the Programming Language Subset (PLS) document. |
| 18.1.3 Methods to handle numerical arrays (NumPy): a. Array b. Arithmetic c. Rounding d. Shape e. Load and save text files | Be able to: • select and use appropriate methods for handling numerical arrays. Further details provided in the Programming Language Subset (PLS) document. |
| 18.1.4 Methods to handle data analysis (Pandas): a. Load CSV b. Measures of central tendency c. Information about data d. Clean data e. Load and save text files | Be able to: • select and use appropriate methods for handling data to be analysed. Further details provided in the Programming Language Subset (PLS) document. |
18.2 Methods to represent and handle ADTs
| Content | Learners should: |
|---|---|
| 18.2.1 Methods to represent and handle a circular queue, implemented as a fixed-length list: a. Create b. Enqueue c. Dequeue d. IsEmpty e. IsFull | Be able to: • select and use appropriate methods to handle a circular queue, implemented as a fixed-length list. Further details provided in the Programming Language Subset (PLS) document. Learners' understanding of the circular queue ADT is assessed in Unit 3. Their ability to amend and write a circular queue implemented as a fixed-length list is assessed in Unit 4. |
| 18.2.2 Methods to represent and handle a linked list: a. Represent: • Classes • References b. Handle: • Insert • Remove • Update • Find • Traverse | Be able to: • select and use appropriate methods to represent a linked list • select and use appropriate methods to handle a linked list. Further details provided in the Programming Language Subset (PLS) document. Learners' understanding of the linked list ADT is assessed in Unit 3. Their ability to amend and write a linked list is assessed in Unit 4. |
| 18.2.3 Methods to represent and handle a hash table: a. Represent: • Classes • References b. Handle: • Calculate hash value • Insert • Remove • Find • Traverse | Be able to: • select and use appropriate methods to represent a hash table • select and use appropriate methods to handle a hash table. Further details provided in the Programming Language Subset (PLS) document. Learners' understanding of the hash table ADT is assessed in Unit 3. Their ability to amend and write a hash table is assessed in Unit 4. |
| 18.2.4 Hash algorithm | Be able to: • select and use an appropriate hash algorithm. Further details provided in the Programming Language Subset (PLS) document. Learners' understanding of the concept of hashing is assessed in Unit 3. Their ability to amend and write a hash algorithm is assessed in Unit 4. |
| 18.2.5 Methods to handle collisions in a hash table: a. Separate chaining b. Linear probing c. Rehashing | Be able to: • select and use appropriate methods to handle collisions in a hash table. Further details provided in the Programming Language Subset (PLS) document. Learners' understanding of the hash table ADT is assessed in Unit 3. Their ability to amend and write code to handle collisions in a hash table is assessed in Unit 4. |
| 18.2.6 Methods to represent a graph: a. Adjacency matrix b. Adjacency list | Be able to: • select and use appropriate methods to represent a graph. Further details provided in the Programming Language Subset (PLS) document. Learners' understanding of the graph ADT is assessed in Unit 3. Their ability to amend and write code to represent a graph is assessed in Unit 4. |
| 18.2.7 Methods to represent and handle a binary search tree: a. Represent: • Classes • References b. Handle: • Insert • Find • Traverse | Be able to: • select and use appropriate methods to represent a binary search tree • select and use appropriate methods to handle a binary search tree. Further details provided in the Programming Language Subset (PLS) document. Learners' understanding of the tree ADT is assessed in Unit 3. Their ability to amend and write binary search trees is assessed in Unit 4. |
| 18.2.8 Recursive tree traversal algorithms: a. Pre-order traversal b. In-order traversal c. Post-order traversal | Be able to: • select and use appropriate recursive algorithms to traverse a tree. Further details provided in the Programming Language Subset (PLS) document. Learners' understanding of the tree ADT is assessed in Unit 3. Their ability to amend and write recursive traversals is assessed in Unit 4. |
Topic 19: Best practice
19.1 Program design
| Content | Learners should: |
|---|---|
| 19.1.1 Methods to produce correct outcomes: a. Problem decomposition into component parts b. Clear and appropriate logic c. Variables, constants, data types and data structures appropriate to the problem d. Programming constructs appropriate to the problem | Be able to: • select and use appropriate methods to produce correct outcomes to complex problems. Further details provided in the Good Programming Practice Guide (GPPG). |
| 19.1.2 Methods to implement good practice in program design: a. Modularity b. Separation of concerns c. Minimisation of side effects d. Scope isolation e. Fitness for purpose of input and output f. Efficient solutions in terms of execution time and memory usage | Be able to: • select and use appropriate methods to design effective code. Further details provided in the Good Programming Practice Guide (GPPG). |
| 19.1.3 Methods to implement modularity in source code: a. Blocked code b. User-defined subprograms c. Built-in subprograms d. Libraries of subprograms e. Files f. Procedures g. Functions | Be able to: • select and use appropriate methods to produce modular code. Further details provided in the Good Programming Practice Guide (GPPG). |
19.2 Clean code
| Content | Learners should: |
|---|---|
| 19.2.1 Consistency: a. Use of white space b. Line breaks layout c. Naming conventions d. Fixed-line length | Be able to: • select and use appropriate methods to promote code consistency. Further details provided in the Good Programming Practice Guide (GPPG). |
| 19.2.2 Readability: a. Meaningful identifiers b. Informative comments c. Named constants d. Subprograms | Be able to: • use appropriate methods to promote readability of program code. Further details provided in the Good Programming Practice Guide (GPPG). |
| 19.2.3 Methods to control behaviour of program code: a. Boundary value analysis b. Exception handling c. Minimising nested conditionals d. Minimising loops e. Using guard clauses f. Managed conversion of data types | Be able to: • select and use appropriate methods to control behaviour of code. Further details provided in the Programming Language Subset (PLS) document and Good Programming Practice Guide (GPPG). |
19.3 Functionality
| Content | Learners should: |
|---|---|
| 19.3.1 Methods to ensure that code is fit for purpose, produces accurate results and meets requirements: a. Testing and debugging b. Reviewing and refining | Be able to: • identify errors in program code • correct errors in program code • produce accurate outcomes • refine solutions to meet requirements. Further details provided in the Good Programming Practice Guide (GPPG). |
Topic 20: Additional programming paradigms
20.1 Object-oriented programming (OOP) and functional programming
| Content | Learners should: |
|---|---|
| 20.1.1 Methods for object-oriented programming (OOP): a. Classes b. Attributes c. Methods d. Objects (instance) e. Encapsulation f. Getters g. Setters h. Aggregation i. Composition j. Inheritance k. Polymorphism | Be able to: • convert Unified Modelling Language (UML) class diagrams into code • select appropriate methods for object-oriented programming • use appropriate methods for object-oriented programming. Further details provided in the Programming Language Subset (PLS) document. Learners' understanding of the characteristics of OOP is assessed in Unit 3. Their ability to amend and write OOP code in Python is assessed in Unit 4. |
| 20.1.2 Methods for functional programming: a. Pure functions b. First-class functions c. Higher-order functions d. Immutable variables e. Avoid side effects f. Lazy evaluation g. Lambda functions h. Recursion i. Map j. Filter k. Reduce l. List comprehension m. Dictionary comprehension n. Zip | Be able to: • select appropriate methods for functional programming • use appropriate methods for functional programming. Further details provided in the Programming Language Subset (PLS) document. Learners' understanding of the characteristics of functional programming is assessed in Unit 3. Their ability to amend and write functional code in Python is assessed in Unit 4. |
Topic 21: Algorithms
21.1 Sorting algorithms
| Content | Learners should: |
|---|---|
| 21.1.1 Recursive merge sort algorithm | Be able to: • implement and use a recursive merge sort algorithm. Learners' understanding of how the merge sort algorithm works is assessed in Unit 3. Their ability to implement a recursive merge sort in code is assessed in Unit 4. |
| 21.1.2 Recursive quick sort algorithm | Be able to: • implement and use a recursive quick sort algorithm. Learners' understanding of how the quick sort algorithm works is assessed in Unit 3. Their ability to implement a recursive quick sort algorithm in code is assessed in Unit 4. |
21.2 Shortest path and compression
| Content | Learners should: |
|---|---|
| 21.2.1 Dijkstra's shortest path algorithm | Be able to: • implement and use Dijkstra's shortest path algorithm. Learners' understanding of how the Dijkstra's shortest path algorithm works is assessed in Unit 3. Their ability to implement the algorithm in code is assessed in Unit 4. |
| 21.2.2 Run-length encoding compression algorithm | Be able to: • implement and use a run-length encoding algorithm. |