Standards in this Framework
| Standard | Description |
|---|---|
| A1.1.1.4 | Describe the functions and interactions of the main CPU components: Processors: single core processor, multi-core processor, co-processors |
| A1.1.2.2 | Describe the role of a GPU: Real-world scenarios may include video games, artificial intelligence (AI), large simulations and other applications that require graphics rendering and machine learning. |
| A1.1.4.1 | Explain the purposes of different types of primary memory: Random-access memory (RAM), read only memory (ROM), cache (L1, L2, L3), registers |
| A1.1.4.2 | Explain the purposes of different types of primary memory: The interaction of the CPU with different types of memory to optimize performance |
| A1.1.7.1 | Describe internal and external types of secondary memory storage: Internal hard drives: solid state drive (SSD), hard disk drive (HDD), embedded multimedia cards (eMMCs) |
| A1.1.7.2 | Describe internal and external types of secondary memory storage: External hard drives: SSD, HDD, optical drives, flash drives, memory cards, network attached storage (NAS) |
| A1.1.7.3 | Describe internal and external types of secondary memory storage: The scenarios in which the various types of drive are used |
| A1.3.1.1 | Describe the role of operating systems: Operating systems abstract hardware complexities to manage system resources |
| A1.3.2.1 | Describe the functions of an operating system: Maintaining system integrity while running operating systems’ background operations |
| A1.3.2.2 | Describe the functions of an operating system: Memory management, file system, device management, scheduling, security, accounting, graphical user interface (GUI), virtualization, networking |
| A1.4.1.1 | Evaluate the translation processes of interpreters and compilers: The mechanics and use-cases of each translation approach |
| A2.1.1.1 | Describe the purpose and characteristics of networks: Networks: local area network (LAN), wide area network (WAN), personal area network (PAN), virtual private network (VPN) |
| A2.2.1.1 | Describe the functions and practical applications of network topologies: Network topologies: star, mesh, hybrid |
| A2.3.1.1 | Describe different types of IP addressing: The distinction between IPv4 and IPv6 addressing |
| A2.3.1.2 | Describe different types of IP addressing: The differences between public IP addresses and private IP addresses, and between static IP addresses and dynamic IP addresses |
| A2.3.2.1 | Compare types of media for data transmission: Wired transmission via fibre optic cables and twisted pair cables; wireless transmission |
| A2.3.3.1 | Explain how packet switching is used to send data across a network: The process of segmenting data into packets with a routing header attached, and independently transmitting control information, allowing the data to be reassembled at the destination |
| A2.4.1.1 | Discuss the effectiveness of firewalls at protecting a network: The function of firewalls in inspecting and filtering incoming and outgoing traffic based on whitelists, blacklists and rules |
| A2.4.3.1 | Describe common network countermeasures: Content security policies, complex password policies, DDoS mitigation tools, email filtering solutions, encrypted protocols, input validation (filtering, whitelisting), intrusion detection systems (IDS), intrusion prevention systems (IPS), multifactor authentication (MFA), secure socket layer (SSL) certificate, transport layer security (TLS) certificate, update software, VPNs |
| A2.4.4.1 | Describe the process of encryption and digital certificates: The difference between symmetric and asymmetric cryptography |
| A4.4.2.1 | Discuss ethical aspects of the increasing integration of computer technologies into daily life: The importance of continually reassessing ethical guidelines as technology advances |
| B1.1.1.1 | Construct a problem specification: The specification of a problem may include a problem statement, constraints and limitations, objectives and goals, input specifications, output specifications, evaluation criteria. |
| B1.1.2.1 | Describe the fundamental concepts of computational thinking: Abstraction, algorithmic design, decomposition, pattern recognition |
| B1.1.3.1 | Explain how applying computational thinking to fundamental concepts is used to approach and solve problems in computer science: Computational thinking does not necessarily involve programming—it is a toolkit of available techniques for problem-solving. |
| B1.1.3.2 | Explain how applying computational thinking to fundamental concepts is used to approach and solve problems in computer science: Real-world examples may include software development, data analysis, machine learning, database design, network security. |
| B2.1.1.1 | Construct and trace programs using a range of global and local variables of various data types: Data types: Boolean value, char, decimal, integer, string |
| B2.1.2.1 | Construct programs that can extract and manipulate substrings: Writing of programs that accurately identify and extract substrings from given strings, demonstrating the ability to perform various manipulations, such as altering, concatenating or replacing |
| B2.1.3.3 | Describe how programs use common exception handling techniques: Exception handling constructs that effectively manage errors must include try/catch in Java, and try/except in Python, along with the finally block. |
| B2.1.4.1 | Construct and use common debugging techniques: Debugging techniques may include trace tables, breakpoint debugging, print statements and step-by-step code execution. |
| B2.2.1.1 | Compare static and dynamic data structures: The fundamental differences between static and dynamic data structures, including their underlying mechanisms for memory allocation and resizing |
| B2.2.2.1 | Construct programs that apply arrays and Lists: One-dimensional (1D) arrays, two-dimensional (2D) arrays, ArrayLists in Java |
| B2.2.2.2 | Construct programs that apply arrays and Lists: One-dimensional (1D) Lists and two-dimensional (2D) Lists in Python |
| B2.2.2.3 | Construct programs that apply arrays and Lists: Add, remove and traverse elements in a dynamic list |
| B2.3.1.1 | Construct programs that implement the correct sequence of code instructions to meet program objectives: The impact of instruction order on program functionality |
| B2.3.1.2 | Construct programs that implement the correct sequence of code instructions to meet program objectives: Ways to avoid errors, such as infinite loops, deadlock, incorrect output |
| B2.3.2.1 | Construct programs utilizing appropriate selection structures: Must include: if, else, else if (Java), elif (Python), to execute different code blocks based on specified conditions |
| B2.3.2.2 | Construct programs utilizing appropriate selection structures: Selection structures with or without Boolean operators (AND, OR, NOT) and/or relational operators (<, <=, >, >=, ==, !=) to control program flow effectively |
| B2.3.3.1 | Construct programs that utilize looping structures to perform repeated actions: Types of loops, including counted loops and conditional loops, and appropriate use of each type |
| B2.3.3.2 | Construct programs that utilize looping structures to perform repeated actions: Conditional statements within loops, using Boolean and/or relational operators to govern the loop’s execution |
| B2.3.4.1 | Construct functions and modularization: Functions to define reusable blocks of code with different inputs |
| B2.3.4.2 | Construct functions and modularization: Modularization to create well-structured, reusable and maintainable code |
| B2.3.4.3 | Construct functions and modularization: The principles of scope (local versus global) |
| B2.3.4.4 | Construct functions and modularization: The benefits of code modularization, applying this concept to various programming scenarios |
| B2.4.1.1 | Describe the efficiency of specific algorithms by calculating their Big O notation to analyse their scalability: The time and space complexities of algorithms and calculating Big O notation |
| B2.4.1.2 | Describe the efficiency of specific algorithms by calculating their Big O notation to analyse their scalability: Algorithm choice based on scalability and efficiency requirements |
| B2.4.2.1 | Construct and trace algorithms to implement a linear search and a binary search for data retrieval: The differences in efficiency between different methods of linear and binary search |
| B2.4.2.2 | Construct and trace algorithms to implement a linear search and a binary search for data retrieval: Use of search technique based on efficiency requirements—for example, searching a database for a sorted/indexed list of names to find a phone number, versus searching by the number to identify the name |
| B2.4.3.1 | Construct and trace algorithms to implement bubble sort and selection sort, evaluating their time and space complexities: The time and space complexities of each algorithm, denoted by their respective Big O notations |
| B2.4.3.2 | Construct and trace algorithms to implement bubble sort and selection sort, evaluating their time and space complexities: The advantages and disadvantages of each algorithm in terms of efficiency across various data sets |
| B2.4.4.1 | Explain the fundamental concept of recursion and its applications in programming: The fundamentals of recursion and its advantages and limitations |
| B2.4.4.2 | Explain the fundamental concept of recursion and its applications in programming: The utility of recursion in solving problems that can be broken down into smaller, similar sub-problems |
| B2.4.4.3 | Explain the fundamental concept of recursion and its applications in programming: Recursive algorithms, including but not limited to quicksort |
| B2.4.4.4 | Explain the fundamental concept of recursion and its applications in programming: The limitations of recursion, including complexity and memory usage |
| B2.4.4.5 | Explain the fundamental concept of recursion and its applications in programming: Situations that best suit the use of recursion, including fractal image creation, traversing binary trees, sorting algorithms |
| B2.4.5.1 | Construct and trace recursive algorithms in a programming language: Simple, non-branching recursive algorithms in programming only |
| B2.5.1.1 | Construct code to perform file-processing operations: Programs that manipulate text files |
| B2.5.1.2 | Construct code to perform file-processing operations: Opening a sequential file in various modes (read, write, append) |
| B2.5.1.3 | Construct code to perform file-processing operations: How to read from and write to files, append data to an existing file, and close a file once operations are completed |
| B2.5.1.4 | Construct code to perform file-processing operations: Classes for Java users may include Scanner, FileWriter, BufferedReader. |
| B2.5.1.5 | Construct code to perform file-processing operations: Functions for Python users may include open(), read(), readline(), write(), close(). |
| B3.1.1.1 | Evaluate the fundamentals of OOP: Model real-world entities using OOP concepts: classes, objects, inheritance, encapsulation, polymorphism |
| B3.1.1.2 | Evaluate the fundamentals of OOP: The advantages and disadvantages of using OOP in various programming scenarios |
| B3.1.2.1 | Construct a design of classes, their methods and behaviour: Classes and their methods, based on application requirements |
| B3.1.2.2 | Construct a design of classes, their methods and behaviour: The use of unified modelling language (UML) class diagrams to represent class relationships, attributes and methods, to aid effective software design and planning |
| B3.1.3.1 | Distinguish between static and non-static variables and methods: The differences between static and non-static variables and methods, including their usage and scope |
| B3.1.3.2 | Distinguish between static and non-static variables and methods: When to use instance variables instead of class variables, and how to apply these concepts effectively in code |
| B3.1.4.1 | Construct code to define classes and instantiate objects: How to define classes and create objects from those classes |
| B3.1.4.2 | Construct code to define classes and instantiate objects: The role of constructors in initializing an object's state, setting initial values for its attributes to define its condition or characteristics at the time of creation |
| B3.1.5.1 | Explain and apply the concepts of encapsulation and information hiding in OOP: The principles of encapsulation and information hiding |
| B3.1.5.2 | Explain and apply the concepts of encapsulation and information hiding in OOP: Apply access modifiers such as private and public |
| B3.1.5.3 | Explain and apply the concepts of encapsulation and information hiding in OOP: Controlling access to class members |
| B3.1.5.4 | Explain and apply the concepts of encapsulation and information hiding in OOP: The importance of limiting access to maintain the integrity and security of an object's state |
| B4.1.6.2 | Explain the core principles of ADTs: The underlying mechanics of hash tables, including hashing functions, collision resolution strategies and load factors |