Please enable JavaScript to use CodeHS

Standards Framework

for IB Computer Science SL

47

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
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.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