Please enable JavaScript to use CodeHS

Standards Framework

for IB Computer Science SL

170

Standards in this Framework

Standard Description
A1.1.1.1 Describe the functions and interactions of the main CPU components: Units: arithmetic logic unit (ALU), control unit (CU)
A1.1.1.2 Describe the functions and interactions of the main CPU components: Registers: instruction register (IR), program counter (PC), memory address register (MAR), memory data register (MDR), accumulator (AC)
A1.1.1.3 Describe the functions and interactions of the main CPU components: Buses: address, data, control
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.1.5 Describe the functions and interactions of the main CPU components: A diagrammatic representation of the relationship between the specified CPU components
A1.1.2.1 Describe the role of a GPU: The architecture that allows graphics processing units (GPUs) to handle specific tasks and makes them suitable for complex computations
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.4.3 Explain the purposes of different types of primary memory: The relevance of the terms “cache miss” and “cache hit”
A1.1.5.1 Describe the fetch, decode and execute cycle: The basic operations a CPU performs to execute a single instruction in machine language
A1.1.5.2 Describe the fetch, decode and execute cycle: The interaction between memory and registers via the three buses: address, data, control
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.1.8.1 Describe the concept of compression: The differences between lossy compression methods and lossless compression methods
A1.1.8.2 Describe the concept of compression: Run-length encoding and transform coding
A1.1.9.1 Describe the different types of services in cloud computing: Services: software as a service (SaaS), platform as a service (PaaS), infrastructure as a service (IaaS)
A1.1.9.2 Describe the different types of services in cloud computing: The differences between the approaches of SaaS, PaaS, and IaaS in various real-world scenarios, recognizing that different degrees of control and flexibility influence resource management and resource availability
A1.2.1.1 Describe the principal methods of representing data: The representation of integers in binary and hexadecimal
A1.2.1.2 Describe the principal methods of representing data: Conversion of binary and hexadecimal integers to decimal, and vice versa
A1.2.1.3 Describe the principal methods of representing data: Conversion of integers from binary to hexadecimal, and vice versa
A1.2.2.1 Explain how binary is used to store data: The fundamentals of binary encoding and the impact on data storage and retrieval
A1.2.2.2 Explain how binary is used to store data: The mechanisms by which data such as integers, strings, characters, images, audio and video are stored in binary form
A1.2.3.1 Describe the purpose and use of logic gates: The purpose and use of logic gates
A1.2.3.2 Describe the purpose and use of logic gates: The functions and applications of logic gates in computer systems
A1.2.3.3 Describe the purpose and use of logic gates: The role of logic gates in binary computing
A1.2.3.4 Describe the purpose and use of logic gates: Boolean operators: AND, OR, NOT, NAND, NOR, XOR, XNOR
A1.2.4.1 Construct and analyse truth tables: Truth tables to predict the output of simple logic circuits
A1.2.4.2 Construct and analyse truth tables: Truth tables to determine outputs from inputs for a problem description
A1.2.4.3 Construct and analyse truth tables: Truth tables and their relationship to a Boolean expression, with inputs and outputs
A1.2.4.4 Construct and analyse truth tables: Truth tables derived from logic diagrams to aid the simplification of logical expressions
A1.2.4.5 Construct and analyse truth tables: Karnaugh maps and algebraic simplification to simplify output expressions
A1.2.5.1 Construct logic diagrams: Logic diagrams to demonstrate how logic gates are connected and interact in a circuit.
A1.2.5.2 Construct logic diagrams: Use of standard gate symbols for AND, OR, NOT, NAND, NOR, XOR and XNOR gates
A1.2.5.3 Construct logic diagrams: Inputs processed diagrammatically to produce outputs
A1.2.5.4 Construct logic diagrams: Combinations of these gates to perform more complex logical operations
A1.2.5.5 Construct logic diagrams: Boolean algebra rules to simplify complex logic diagrams and expressions
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.3.3.1 Compare different approaches to scheduling: Managing the execution of processes by allocating CPU time to optimize system performance
A1.3.3.2 Compare different approaches to scheduling: First-come first-served, round robin, multilevel queue scheduling, priority scheduling
A1.3.4.1 Evaluate the use of polling and interrupt handling: Event frequency, CPU processing overheads, power source (battery or mains), event predictability, controlled latency, security concerns
A1.3.4.2 Evaluate the use of polling and interrupt handling: Real-world scenarios may include keyboard and mouse inputs, network communications, disk input/output operations, embedded systems, real-time systems.
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.1.2.1 Describe the purpose, benefits and limitations of modern digital infrastructures: Modern digital infrastructure: the internet, cloud computing, distributed systems, edge computing, mobile networks
A2.1.2.2 Describe the purpose, benefits and limitations of modern digital infrastructures: Examples where specific networks are used may include the worldwide web (WWW), cryptocurrency blockchains, smart traffic lights, a school.
A2.1.3.1 Describe the function of network devices: Gateways, hardware firewalls, modems, network interface cards, routers, switches, wireless access points
A2.1.3.2 Describe the function of network devices: How devices map to the layers of the TCP/IP model
A2.1.4.1 Describe the network protocols used for transport and application: Protocols: transmission control protocol (TCP), user datagram protocol (UDP), hypertext transfer protocol (HTTP), hypertext transfer protocol secure (HTTPS), dynamic host configuration protocol (DHCP)
A2.2.1.1 Describe the functions and practical applications of network topologies: Network topologies: star, mesh, hybrid
A2.2.1.2 Describe the functions and practical applications of network topologies: Factors to consider must include reliability, transmission speed, scalability, data collisions, cost.
A2.2.1.3 Describe the functions and practical applications of network topologies: Examples may include home and small office settings, where reliability is paramount, and the use of networks in larger settings (e.g. corporations, government departments, college campuses).
A2.2.3.1 Compare and contrast networking models: Client-server and peer-to-peer models
A2.2.3.2 Compare and contrast networking models: The respective benefits and drawbacks of client-server and peer-to-peer models
A2.2.3.3 Compare and contrast networking models: Real-world applications may include web browsing, email services, online banking, file sharing, VoIP services, blockchain.
A2.2.4.1 Explain the concepts and applications of network segmentation: Segmentation for network performance and security, to reduce congestion, to manage network resources efficiently
A2.2.4.2 Explain the concepts and applications of network segmentation: Network segmentation must include the uses and roles of segmenting, subnetting and virtual local area networks (VLANs).
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.1.3 Describe different types of IP addressing: The role of network address translation (NAT) to minimize the use of IP addresses and to facilitate communication between private internal networks and the public internet
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.2.2 Compare types of media for data transmission: The advantages and disadvantages of these three types of data transmission
A2.3.2.3 Compare types of media for data transmission: Factors to consider must include bandwidth, complexity of installation, cost, range, susceptibility to interference, attenuation, reliability, security.
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.3.3.2 Explain how packet switching is used to send data across a network: The role that switches and routers play in packet switching
A2.3.4.1 Explain how static routing and dynamic routing move data across local area networks: The process of static routing, and its advantages and disadvantages
A2.3.4.2 Explain how static routing and dynamic routing move data across local area networks: The process of dynamic routing, and its advantages and disadvantages (explanation of a specific routing protocol is not required)
A2.3.4.3 Explain how static routing and dynamic routing move data across local area networks: Factors to consider must include configuration, maintenance, complexity, resource usage, convergence, scalability, network size.
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.1.2 Discuss the effectiveness of firewalls at protecting a network: The strengths and limitations of firewalls
A2.4.1.3 Discuss the effectiveness of firewalls at protecting a network: The role of NAT to enhance network security
A2.4.4.1 Describe the process of encryption and digital certificates: The difference between symmetric and asymmetric cryptography
A2.4.4.2 Describe the process of encryption and digital certificates: The role of digital certificates in establishing secure network connections
A2.4.4.3 Describe the process of encryption and digital certificates: The use of public and private keys in asymmetric cryptography
A2.4.4.4 Describe the process of encryption and digital certificates: The significance of encryption key management
A3.1.1.1 Explain the features, benefits and limitations of a relational database.:Features: composite keys, foreign keys, primary keys, relationships, tables
A3.1.1.2 Explain the features, benefits and limitations of a relational database: Benefits of databases: community support, concurrency control, data consistency, data integrity, data retrieval, reduced data duplication, reduced redundancy, reliable transaction processing, scalability, security features
A3.1.1.3 Explain the features, benefits and limitations of a relational database: Limitations of databases: “big data” scalability issues, design complexity, hierarchical data handling, rigid schema, object-relational impedance mismatch, unstructured data handling
A3.2.1.1 Describe database schemas: Conceptual schema, logical schema, physical schema
A3.2.1.2 Describe database schemas: Abstract definitions of the data structure and organization of the data at different levels
A3.2.2.1 Construct ERDs: The significance of entity relationship diagrams (ERDs) in crafting organized, efficient database designs tailored for specific applications
A3.2.2.2 Construct ERDs: The relationships between different data entities within a database
A3.2.2.3 Construct ERDs: The roles of cardinality and modality in defining relationships in ERDs
A3.2.3.1 Outline the different data types used in relational databases: The importance of data type consistency
A3.2.3.2 Outline the different data types used in relational databases: The potential effects of choosing the wrong data type
A3.2.4.1 Construct tables for relational databases: The relationship between tables using primary keys, foreign keys, composite keys and concatenated keys
A3.2.4.2 Construct tables for relational databases: The importance of well-defined tables in ensuring data integrity
A3.2.5.1 Explain the difference between normal forms: First normal form (1NF), second normal form (2NF), third normal form (3NF)
A3.2.5.2 Explain the difference between normal forms: The terms atomicity, unique identification, functional dependencies, partial-key dependencies, non-key/transitive dependencies
A3.2.5.3 Explain the difference between normal forms: Normalization issues can encompass data duplication, missing data, and a range of dependency concerns, including data dependencies, composite key dependencies, transitive dependencies, and multi-valued dependencies.
A3.2.6.1 Construct a database normalized to 3NF for a range of real-world scenarios: Examples may include library management, hospital management, e-commerce platforms, school management, employee management, inventory management, police crime reporting
A3.2.7.1 Evaluate the need for denormalizing databases: The advantages and disadvantages of normalizing and denormalizing databases
A3.2.7.2 Evaluate the need for denormalizing databases: Situations where denormalization can enhance performance, particularly in read-intensive applications
A3.2.7.3 Evaluate the need for denormalizing databases: The balance between straightforward query structures and the risk of data redundancy in denormalized schemas
A3.3.1.1 Outline the differences between data language types within SQL: Data language types must include data definition language (DDL) and data manipulation language (DML)
A3.3.1.2 Outline the differences between data language types within SQL: SQL statements to define data structures or to manipulate data
A3.3.2.1 Construct queries between two tables in SQL: Queries must include joins, relational operators, filtering, pattern matching, and ordering data
A3.3.2.2 Construct queries between two tables in SQL: SQL commands: SELECT, DISTINCT, FROM, WHERE, BETWEEN, ORDER BY, GROUP BY, HAVING, ASC, DESC, JOIN, LIKE with % wildcard, AND, OR, NOT (note: Syntax may vary in different database systems)
A3.3.3.1 Explain how SQL can be used to update data in a database: Insert new records (INSERT INTO), modify data (UPDATE SET), remove data (DELETE)
A3.3.3.2 Explain how SQL can be used to update data in a database: The performance implications of updating data in indexed columns, and how indexes might need to be rebuilt or reorganized following significant data modifications
A4.1.1.1 Describe the types of machine learning and their applications in the real world: The different approaches to machine learning algorithms and their unique characteristics
A4.1.1.2 Describe the types of machine learning and their applications in the real world: Deep learning (DL), reinforcement learning (RL), supervised learning, transfer learning (TL), unsupervised learning (UL)
A4.1.1.3 Describe the types of machine learning and their applications in the real world: Real-world applications of machine learning may include market basket analysis, medical imaging diagnostics, natural language processing, object detection and classification, robotics navigation, sentiment analysis.
A4.1.2.1 Describe the hardware requirements for various scenarios where machine learning is deployed: The hardware configurations for different machine learning scenarios, considering factors such as processing, storage and scalability
A4.1.2.2 Describe the hardware requirements for various scenarios where machine learning is deployed: Hardware configurations for machine learning ranging from standard laptops to advanced infrastructure
A4.1.2.3 Describe the hardware requirements for various scenarios where machine learning is deployed: Advanced infrastructure must include application-specific integrated circuits (ASICs), edge devices, field-programmable gate arrays (FPGAs), GPUs, tensor processing units (TPUs), cloud-based platforms, high-performance computing (HPC) centres.
A4.4.1.1 Discuss the ethical implications of machine learning in real-world scenarios: Ethical issues may include accountability, algorithmic fairness, bias, consent, environmental impact, privacy, security, societal impact, transparency.
A4.4.1.2 Discuss the ethical implications of machine learning in real-world scenarios: The challenges posed by biases in training data
A4.4.1.3 Discuss the ethical implications of machine learning in real-world scenarios: The ethics of using machine learning in online communication may include concerns about misinformation, bias, online harassment, anonymity, privacy.
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
A4.4.2.2 Discuss ethical aspects of the increasing integration of computer technologies into daily life: The potential implications of emerging technologies such as quantum computing, augmented reality, virtual reality and the pervasive use of AI on society, individual rights, privacy and equity
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.
B1.1.4.1 Trace flowcharts for a range of programming algorithms: Use of standard flowchart symbols to depict processes, decisions and flows of control
B1.1.4.2 Trace flowcharts for a range of programming algorithms: Standard flowchart symbols: Connector, Decision, Flowline, Input/Output, Process/Operation, Start/End
B1.1.4.3 Trace flowcharts for a range of programming algorithms: Flowcharts for execution flow, to track changes in variables and to determine output
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.1 Describe how programs use common exception handling techniques: Potential points of failure in a program must include unexpected inputs, resource unavailability, logic errors.
B2.1.3.2 Describe how programs use common exception handling techniques: The role of exception handling in developing programs
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.1.2 Compare static and dynamic data structures: The advantages and disadvantages of each type in various scenarios, considering factors such as speed, memory usage, flexibility
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.2.3.1 Explain the concept of a stack as a “last in, first out” (LIFO) data structure: Must include fundamental operations such as push, pop, peek and isEmpty
B2.2.3.2 Explain the concept of a stack as a “last in, first out” (LIFO) data structure: How stack operations impact both performance and memory usage
B2.2.3.3 Explain the concept of a stack as a “last in, first out” (LIFO) data structure: An appropriate stack for a specific problem
B2.2.4.1 Explain the concept of a queue as a “first in, first out” (FIFO) data structure: Must include fundamental operations such as enqueue, dequeue, front and isEmpty
B2.2.4.2 Explain the concept of a queue as a “first in, first out” (FIFO) data structure: How queue operations impact both performance and memory usage
B2.2.4.3 Explain the concept of a queue as a “first in, first out” (FIFO) data structure: An appropriate queue for a specific problem
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.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