1. System Fundamentals1.1 Systems in Organisations0/01.1.4 Remote Systems and Software as a Service (SaaS)1.1.6 Data Migration in Systems1.1.8 User Documentation in System Implementation1.1.9 User Training in System Implementation1.1.5 Installation Processes in Systems Development1.1.10 Data Loss and Software Deployment1.1.7 System Testing in Organisations1.1.2 Change Management in Systems1.1.3 Compatibility and Legacy Challenges in Organisations1.1.1 New System Planning in Organisations1.2 System Design Basics0/01.2.2 Stakeholders in System Planning1.2.1 Computer System Components1.2.3 Information Gathering for System Solutions1.2.4 Prototyping and Iteration in System Design1.2.5 Social and Ethical Issues in IT Systems1.2.7 Human and Machine Interaction1. System Fundamentals1.1 Systems in Organisations0/01.1.4 Remote Systems and Software as a Service (SaaS)1.1.6 Data Migration in Systems1.1.8 User Documentation in System Implementation1.1.9 User Training in System Implementation1.1.5 Installation Processes in Systems Development1.1.10 Data Loss and Software Deployment1.1.7 System Testing in Organisations1.1.2 Change Management in Systems1.1.3 Compatibility and Legacy Challenges in Organisations1.1.1 New System Planning in Organisations1.2 System Design Basics0/01.2.2 Stakeholders in System Planning1.2.1 Computer System Components1.2.3 Information Gathering for System Solutions1.2.4 Prototyping and Iteration in System Design1.2.5 Social and Ethical Issues in IT Systems1.2.7 Human and Machine Interaction2. Computer OrganisationPremium2.1 Basic Architecture0/02.1.1 Central Processing Unit (CPU)2.1.2 Primary Memory2.2 Advanced Memory0/02.2.1 Cache Memory2.2.2 Persistent Storage2.3 Operating Systems0/02.3.1 Functions of Operating Systems2.4 Application Software0/02.4.1 Types of Application Software2.4.2 Common Features of Applications2.5 Data Representation0/02.5.1 Understanding Data Types2.6 Logic in Computing0/02.6.1 Introduction to Boolean Operators and Truth Tables2.6.2 Logic Diagrams in Computing2. Computer OrganisationPremium2.1 Basic Architecture0/02.1.1 Central Processing Unit (CPU)2.1.2 Primary Memory2.2 Advanced Memory0/02.2.1 Cache Memory2.2.2 Persistent Storage2.3 Operating Systems0/02.3.1 Functions of Operating Systems2.4 Application Software0/02.4.1 Types of Application Software2.4.2 Common Features of Applications2.5 Data Representation0/02.5.1 Understanding Data Types2.6 Logic in Computing0/02.6.1 Introduction to Boolean Operators and Truth Tables2.6.2 Logic Diagrams in Computing3. NetworksPremium3.1 Network Fundamentals0/03.1.1 Types of Networks3.1.2 Importance of Standards3.1.3 Network Communication Layers3.1.4 Virtual Private Network (VPN)3.2 Data Transmission0/03.2.1 Protocols and Data Packets3.2.2 Transmission Media3.3 Wireless Networking0/03.3.1 Pros and Cons of Wireless Networks3.3.3 Wireless Network Security3. NetworksPremium3.1 Network Fundamentals0/03.1.1 Types of Networks3.1.2 Importance of Standards3.1.3 Network Communication Layers3.1.4 Virtual Private Network (VPN)3.2 Data Transmission0/03.2.1 Protocols and Data Packets3.2.2 Transmission Media3.3 Wireless Networking0/03.3.1 Pros and Cons of Wireless Networks3.3.3 Wireless Network Security4. NetworksPremium4.1 General Principles0/04.1.3 Role of Sub-Procedures in Problem Solving4.1.7 Pre-Planning in Problem-Solving4.1.1 Identifying Problem-Solving Procedures in Computer Science4.1.8 Understanding Pre-Conditions4.1.10 Concurrent Processing in Solutions4.1.2 Evaluating Activity Sequences4.1.4 Decision-Making in Procedures4.1.5 Conditions in Decision-Making4.1.6 Inputs and Outputs in Solutions4.1.9 Handling Exceptions in Solutions4.1.11 Abstraction in Computational Solutions4.2 Connecting Computational Thinking and Program Design0/04.2.2 Algorithm Analysis and Construction4.2.1 Understanding and Applying Standard Algorithms4.2.3 Efficiency and Execution of Algorithms4.2.4 Real-World Application and Problem-Solving in Computational Thinking4.2.5 Advanced Computational Thinking in IB Computer Science4.3 Introduction to Programming0/04.3.2 Compound Computer Operations4.3.1 Introduction to Fundamental Computer Operations4.3.9 The Role of Sub-Programmes in Programming4.3.4 Necessity for Higher-Level Languages4.3.6 Understanding Variables, Constants, and Operators4.3.8 Collections in Programming4.3.10 Ethical Implications in Programming4.3.3 Characteristics of Computer Languages4.3.5 Translation to Executable Code4.3.7 Algorithm Construction with Loops and Branching4. NetworksPremium4.1 General Principles0/04.1.3 Role of Sub-Procedures in Problem Solving4.1.7 Pre-Planning in Problem-Solving4.1.1 Identifying Problem-Solving Procedures in Computer Science4.1.8 Understanding Pre-Conditions4.1.10 Concurrent Processing in Solutions4.1.2 Evaluating Activity Sequences4.1.4 Decision-Making in Procedures4.1.5 Conditions in Decision-Making4.1.6 Inputs and Outputs in Solutions4.1.9 Handling Exceptions in Solutions4.1.11 Abstraction in Computational Solutions4.2 Connecting Computational Thinking and Program Design0/04.2.2 Algorithm Analysis and Construction4.2.1 Understanding and Applying Standard Algorithms4.2.3 Efficiency and Execution of Algorithms4.2.4 Real-World Application and Problem-Solving in Computational Thinking4.2.5 Advanced Computational Thinking in IB Computer Science4.3 Introduction to Programming0/04.3.2 Compound Computer Operations4.3.1 Introduction to Fundamental Computer Operations4.3.9 The Role of Sub-Programmes in Programming4.3.4 Necessity for Higher-Level Languages4.3.6 Understanding Variables, Constants, and Operators4.3.8 Collections in Programming4.3.10 Ethical Implications in Programming4.3.3 Characteristics of Computer Languages4.3.5 Translation to Executable Code4.3.7 Algorithm Construction with Loops and Branching5. Abstract Data Structures (HL)5.1 Recursive Thinking (HL)0/05.1.2 Recursive Solutions in Problems5.1.1 Identification of Recursive Situations5.1.3 Tracing Recursive Algorithms5.2 Two-Dimensional Arrays (HL)0/05.2.1 Characteristics of Two-Dimensional Arrays5.2.2 Algorithm Construction with Two-Dimensional Arrays5.3 Stacks and Queues (HL)0/05.3.5 Static and Dynamic Structures in Stacks and Queues5.3.2 Stack Algorithm Construction5.3.4 Queue Algorithm Construction5.3.3 Understanding Queues5.3.1 Understanding Stacks5.4 Linked Lists (HL)0/05.4.2 Logical Operations in Linked Lists5.4.1 Dynamics of Linked Lists5.4.3 Sketching Various Linked Lists5.5 Trees (HL)0/05.5.3 Tree Traversal Techniques in Binary Trees5.5.4 Sketching Binary Trees5.5.2 Terminology in Binary Trees5.5.1 Logical Operations in Trees5.6 Applications of Data Structures (HL)0/05.6.1 Static vs Dynamic Data Structures5.6.2 Appropriate Structure Selection5. Abstract Data Structures (HL)5.1 Recursive Thinking (HL)0/05.1.2 Recursive Solutions in Problems5.1.1 Identification of Recursive Situations5.1.3 Tracing Recursive Algorithms5.2 Two-Dimensional Arrays (HL)0/05.2.1 Characteristics of Two-Dimensional Arrays5.2.2 Algorithm Construction with Two-Dimensional Arrays5.3 Stacks and Queues (HL)0/05.3.5 Static and Dynamic Structures in Stacks and Queues5.3.2 Stack Algorithm Construction5.3.4 Queue Algorithm Construction5.3.3 Understanding Queues5.3.1 Understanding Stacks5.4 Linked Lists (HL)0/05.4.2 Logical Operations in Linked Lists5.4.1 Dynamics of Linked Lists5.4.3 Sketching Various Linked Lists5.5 Trees (HL)0/05.5.3 Tree Traversal Techniques in Binary Trees5.5.4 Sketching Binary Trees5.5.2 Terminology in Binary Trees5.5.1 Logical Operations in Trees5.6 Applications of Data Structures (HL)0/05.6.1 Static vs Dynamic Data Structures5.6.2 Appropriate Structure Selection6. Resource Management (HL)Premium6.1 System Resources (HL)0/06.1.1 Identification of System Resources6.1.2 Evaluation of Computer Systems' Resources6.1.3 Limitations of System Resources6.1.4 Problems Due to Resource Limitations6.2 Role of the Operating System (HL)0/06.2.3 Advantages of Dedicated Operating Systems6.2.1 The Role of the Operating System in Resource Management6.2.2 Techniques in OS Resource Management6.2.4 Operating Systems and Hardware Complexity6. Resource Management (HL)Premium6.1 System Resources (HL)0/06.1.1 Identification of System Resources6.1.2 Evaluation of Computer Systems' Resources6.1.3 Limitations of System Resources6.1.4 Problems Due to Resource Limitations6.2 Role of the Operating System (HL)0/06.2.3 Advantages of Dedicated Operating Systems6.2.1 The Role of the Operating System in Resource Management6.2.2 Techniques in OS Resource Management6.2.4 Operating Systems and Hardware Complexity7. Control (HL)Premium7.1 Centralized Control Systems (HL)0/07.1.3 Evaluation of Input Devices7.1.1 Variety of Control Systems7.1.2 Microprocessors and Sensors in Control Systems7.1.4 Sensor-Processor-Output Relationship7.1.5 Role of Feedback in Control Systems7.1.6 Social and Ethical Impacts of Embedded Systems7.2 Distributed Systems (HL)0/07.2.1 Centralised vs Distributed Systems7.2.2 Role of Autonomous Agents in Distributed Systems7. Control (HL)Premium7.1 Centralized Control Systems (HL)0/07.1.3 Evaluation of Input Devices7.1.1 Variety of Control Systems7.1.2 Microprocessors and Sensors in Control Systems7.1.4 Sensor-Processor-Output Relationship7.1.5 Role of Feedback in Control Systems7.1.6 Social and Ethical Impacts of Embedded Systems7.2 Distributed Systems (HL)0/07.2.1 Centralised vs Distributed Systems7.2.2 Role of Autonomous Agents in Distributed SystemsOption Topic AA.1 Basic Concepts0/0A.1.2 Transaction Management and Data ConsistencyA.1.1 Understanding Data and DatabasesA.1.3 Principles of Database InteractionsA.2 The Relational Database Model0/0A.2.2 Schema and Data DictionaryA.2.6 Referential Integrity and NormalizationA.2.8 Constructing Entity-Relationship DiagramsA.2.10 Query Construction MethodsA.2.7 Evaluating Data Types in Relational DatabasesA.2.1 Understanding DBMS and RDBMSA.2.3 The Importance of Data Modelling and LanguagesA.2.4 Database Terms and RelationshipsA.2.9 Introduction to Database ConstructionA.3 Further Aspects of Database Management0/0A.3.5 Databases in Various DomainsA.3.8 Data Matching and Data MiningA.3.3.Database Recovery MethodsA.3.7 Open Database InterrogationA.3.2 End-User Interaction with DatabasesA.3.4 Integrated Database SystemsA.3.1 Role of a Database Administrator (DBA)A.3.6 Ensuring Data Privacy in DatabasesA.4 Further Database Models and Database Analysis (HL)0/0A.4.1 Database Models and Their CharacteristicsA.4.2 Data WarehousingA.4.4 Data Mining Techniques and ApplicationsA.4.3 ETL Processes in Data WarehousingA.4.5 Predictive Modelling in DatabasesA.4.6 Advanced Database Analysis TechniquesOption Topic AA.1 Basic Concepts0/0A.1.2 Transaction Management and Data ConsistencyA.1.1 Understanding Data and DatabasesA.1.3 Principles of Database InteractionsA.2 The Relational Database Model0/0A.2.2 Schema and Data DictionaryA.2.6 Referential Integrity and NormalizationA.2.8 Constructing Entity-Relationship DiagramsA.2.10 Query Construction MethodsA.2.7 Evaluating Data Types in Relational DatabasesA.2.1 Understanding DBMS and RDBMSA.2.3 The Importance of Data Modelling and LanguagesA.2.4 Database Terms and RelationshipsA.2.9 Introduction to Database ConstructionA.3 Further Aspects of Database Management0/0A.3.5 Databases in Various DomainsA.3.8 Data Matching and Data MiningA.3.3.Database Recovery MethodsA.3.7 Open Database InterrogationA.3.2 End-User Interaction with DatabasesA.3.4 Integrated Database SystemsA.3.1 Role of a Database Administrator (DBA)A.3.6 Ensuring Data Privacy in DatabasesA.4 Further Database Models and Database Analysis (HL)0/0A.4.1 Database Models and Their CharacteristicsA.4.2 Data WarehousingA.4.4 Data Mining Techniques and ApplicationsA.4.3 ETL Processes in Data WarehousingA.4.5 Predictive Modelling in DatabasesA.4.6 Advanced Database Analysis TechniquesOption Topic BPremiumB.1 The Basic Model0/0B.1.1 Introduction to Computer ModellingB.1.2 Variables in System ModellingB.1.3 Testing and Evaluating ModelsB.2 Simulations0/0B.2.2 Rules and Data in SimulationsB.2.5 Reliability and EffectivenessB.2.1 Understanding SimulationsB.2.4 Hardware and Software Requirements B.2.3 Testing and Improving SimulationsB.3 Visualization0/0B.3.1 Introduction to VisualizationB.3.2 Two-Dimensional VisualizationB.3.3 Three-Dimensional VisualizationB.3.4 Considerations for 3D AnimationB.4 Communication Modelling and Simulation (HL)0/0B.4.1 Genetic Algorithms in ModellingB.4.2 Neural Networks StructureB.4.3 Natural Language StructuresB.4.4 Advances in Simulated ConversationOption Topic BPremiumB.1 The Basic Model0/0B.1.1 Introduction to Computer ModellingB.1.2 Variables in System ModellingB.1.3 Testing and Evaluating ModelsB.2 Simulations0/0B.2.2 Rules and Data in SimulationsB.2.5 Reliability and EffectivenessB.2.1 Understanding SimulationsB.2.4 Hardware and Software Requirements B.2.3 Testing and Improving SimulationsB.3 Visualization0/0B.3.1 Introduction to VisualizationB.3.2 Two-Dimensional VisualizationB.3.3 Three-Dimensional VisualizationB.3.4 Considerations for 3D AnimationB.4 Communication Modelling and Simulation (HL)0/0B.4.1 Genetic Algorithms in ModellingB.4.2 Neural Networks StructureB.4.3 Natural Language StructuresB.4.4 Advances in Simulated ConversationOption Topic CPremiumC.1 Creating the Web0/0C.1.4 Browsers and Their FunctionsC.1.2 Protocols and StandardsC.1.5 Connectivity and Data ManagementC.1.6 Domain and IP FundamentalsC.1.1 Understanding the Internet and WWWC.1.3 Web Page EssentialsC.1.7 Evaluating Web Page StructuresC.2 Searching the Web0/0C.2.1 Understanding Search EnginesC.2.3 Search Engine Optimisation (SEO)C.2.5 Introduction to the Deep WebC.2.4 Effectiveness of Search EnginesC.2.2 Web Crawlers and Meta-TagsC.3 Distributed Approaches to the Web0/0C.3.1 Introduction to Distributed ComputingC.3.3 Data CompressionC.3.2 Hardware and Decentralisation in Distributed NetworksC.4 The Evolving Web0/0C.4.4 Future Web DevelopmentC.4.1 Online Interaction and Social NetworkingC.4.3 Intellectual Property and PrivacyC.4.2 Cloud Computing vs Traditional Client-Server ArchitectureC.5 Analysing the Web (HL)0/0C.5.1 Web Graph RepresentationC.5.2 Graph Theory in Web Connectivity and Search EnginesC.5.3 Predictive Analysis and Power LawsC.6 The Intelligent Web (HL)0/0C.6.2 The Evolution and Impact of the Semantic WebC.6.1 Introduction to Semantic Web FoundationsC.6.3 Ambient and Collective IntelligenceOption Topic CPremiumC.1 Creating the Web0/0C.1.4 Browsers and Their FunctionsC.1.2 Protocols and StandardsC.1.5 Connectivity and Data ManagementC.1.6 Domain and IP FundamentalsC.1.1 Understanding the Internet and WWWC.1.3 Web Page EssentialsC.1.7 Evaluating Web Page StructuresC.2 Searching the Web0/0C.2.1 Understanding Search EnginesC.2.3 Search Engine Optimisation (SEO)C.2.5 Introduction to the Deep WebC.2.4 Effectiveness of Search EnginesC.2.2 Web Crawlers and Meta-TagsC.3 Distributed Approaches to the Web0/0C.3.1 Introduction to Distributed ComputingC.3.3 Data CompressionC.3.2 Hardware and Decentralisation in Distributed NetworksC.4 The Evolving Web0/0C.4.4 Future Web DevelopmentC.4.1 Online Interaction and Social NetworkingC.4.3 Intellectual Property and PrivacyC.4.2 Cloud Computing vs Traditional Client-Server ArchitectureC.5 Analysing the Web (HL)0/0C.5.1 Web Graph RepresentationC.5.2 Graph Theory in Web Connectivity and Search EnginesC.5.3 Predictive Analysis and Power LawsC.6 The Intelligent Web (HL)0/0C.6.2 The Evolution and Impact of the Semantic WebC.6.1 Introduction to Semantic Web FoundationsC.6.3 Ambient and Collective IntelligenceOption Topic DPremiumD.1 Objects as a Programming Concept0/0D.1.9 Data Management and ParametersD.1.6 Object DependenciesD.1.8 Data Types in Object-Oriented ProgrammingD.1.2 Object InstantiationD.1.4 Object Decomposition in ProgrammingD.1.7 Constructing Related ObjectsD.1.1 Nature of Objects in ProgrammingD.1.3 Unified Modelling Language (UML) DiagramsD.1.5 Relationships Between ObjectsD.2 Features of OOP0/0D.2.1 Features of OOP: Core PrinciplesD.2.2. Advantages of OOP D.2.3 Challenges and Limitations of Object-Oriented Programming (OOP)D.2.4 Collaborative Aspects of Object-Oriented Programming (OOP)D.3 Program Development0/0D.3.2 Code Construction and AnalysisD.3.3 Object-Oriented Programming FeaturesD.3.5 Ethical Considerations in ProgrammingD.3.1 Introduction to Fundamental Programming ConstructsD.3.4 Internationalisation and Modern ProgrammingD.4 Advanced Program Development (HL)0/0D.4.3 Abstract Data Types (ADTs)D.4.2 Object References and AlgorithmsD.4.4 List Implementations and AlgorithmsD.4.6 Advanced ADTs in Computer ScienceD.4.8 Collaborative Programming D.4.1 Understanding RecursionD.4.5 Using Standard Library CollectionsD.4.7 Code Readability and ConventionsOption Topic DPremiumD.1 Objects as a Programming Concept0/0D.1.9 Data Management and ParametersD.1.6 Object DependenciesD.1.8 Data Types in Object-Oriented ProgrammingD.1.2 Object InstantiationD.1.4 Object Decomposition in ProgrammingD.1.7 Constructing Related ObjectsD.1.1 Nature of Objects in ProgrammingD.1.3 Unified Modelling Language (UML) DiagramsD.1.5 Relationships Between ObjectsD.2 Features of OOP0/0D.2.1 Features of OOP: Core PrinciplesD.2.2. Advantages of OOP D.2.3 Challenges and Limitations of Object-Oriented Programming (OOP)D.2.4 Collaborative Aspects of Object-Oriented Programming (OOP)D.3 Program Development0/0D.3.2 Code Construction and AnalysisD.3.3 Object-Oriented Programming FeaturesD.3.5 Ethical Considerations in ProgrammingD.3.1 Introduction to Fundamental Programming ConstructsD.3.4 Internationalisation and Modern ProgrammingD.4 Advanced Program Development (HL)0/0D.4.3 Abstract Data Types (ADTs)D.4.2 Object References and AlgorithmsD.4.4 List Implementations and AlgorithmsD.4.6 Advanced ADTs in Computer ScienceD.4.8 Collaborative Programming D.4.1 Understanding RecursionD.4.5 Using Standard Library CollectionsD.4.7 Code Readability and Conventions