1. System Fundamentals1.1 Systems in Organisations0/01.1.1 New System Planning in Organisations1.1.2 Change Management in Systems1.1.3 Compatibility and Legacy Challenges in Organisations1.1.4 Remote Systems and Software as a Service (SaaS)1.1.5 Installation Processes in Systems Development1.1.6 Data Migration in Systems1.1.7 System Testing in Organisations1.1.8 User Documentation in System Implementation1.1.9 User Training in System Implementation1.1.10 Data Loss and Software Deployment1.2 System Design Basics0/01.2.1 Computer System Components1.2.2 Stakeholders in System Planning1.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.6 Usability in System Design1.2.7 Human and Machine Interaction1. System Fundamentals1.1 Systems in Organisations0/01.1.1 New System Planning in Organisations1.1.2 Change Management in Systems1.1.3 Compatibility and Legacy Challenges in Organisations1.1.4 Remote Systems and Software as a Service (SaaS)1.1.5 Installation Processes in Systems Development1.1.6 Data Migration in Systems1.1.7 System Testing in Organisations1.1.8 User Documentation in System Implementation1.1.9 User Training in System Implementation1.1.10 Data Loss and Software Deployment1.2 System Design Basics0/01.2.1 Computer System Components1.2.2 Stakeholders in System Planning1.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.6 Usability in System Design1.2.7 Human and Machine Interaction2. Computer Organisation2.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.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 Organisation2.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 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.2 Components 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.2 Components of Wireless Networks3.3.3 Wireless Network Security4. NetworksPremium4.1 General Principles0/04.1.1 Identifying Problem-Solving Procedures in Computer Science4.1.2 Evaluating Activity Sequences4.1.3 Role of Sub-Procedures in Problem Solving4.1.4 Decision-Making in Procedures4.1.5 Conditions in Decision-Making4.1.6 Inputs and Outputs in Solutions4.1.7 Pre-Planning in Problem-Solving4.1.8 Understanding Pre-Conditions4.1.9 Handling Exceptions in Solutions4.1.10 Concurrent Processing in Solutions4.1.11 Abstraction in Computational Solutions4.2 Connecting Computational Thinking and Program Design0/04.2.1 Understanding and Applying Standard Algorithms4.2.2 Algorithm Analysis and Construction4.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.1 Introduction to Fundamental Computer Operations4.3.2 Compound Computer Operations4.3.3 Characteristics of Computer Languages4.3.4 Necessity for Higher-Level Languages4.3.5 Translation to Executable Code4.3.6 Understanding Variables, Constants, and Operators4.3.7 Algorithm Construction with Loops and Branching4.3.8 Collections in Programming4.3.9 The Role of Sub-Programmes in Programming4.3.10 Ethical Implications in Programming4. NetworksPremium4.1 General Principles0/04.1.1 Identifying Problem-Solving Procedures in Computer Science4.1.2 Evaluating Activity Sequences4.1.3 Role of Sub-Procedures in Problem Solving4.1.4 Decision-Making in Procedures4.1.5 Conditions in Decision-Making4.1.6 Inputs and Outputs in Solutions4.1.7 Pre-Planning in Problem-Solving4.1.8 Understanding Pre-Conditions4.1.9 Handling Exceptions in Solutions4.1.10 Concurrent Processing in Solutions4.1.11 Abstraction in Computational Solutions4.2 Connecting Computational Thinking and Program Design0/04.2.1 Understanding and Applying Standard Algorithms4.2.2 Algorithm Analysis and Construction4.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.1 Introduction to Fundamental Computer Operations4.3.2 Compound Computer Operations4.3.3 Characteristics of Computer Languages4.3.4 Necessity for Higher-Level Languages4.3.5 Translation to Executable Code4.3.6 Understanding Variables, Constants, and Operators4.3.7 Algorithm Construction with Loops and Branching4.3.8 Collections in Programming4.3.9 The Role of Sub-Programmes in Programming4.3.10 Ethical Implications in Programming5. Abstract Data Structures (HL)5.1 Recursive Thinking (HL)0/05.1.1 Identification of Recursive Situations5.1.2 Recursive Solutions in Problems5.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.1 Understanding Stacks5.3.2 Stack Algorithm Construction5.3.3 Understanding Queues5.3.4 Queue Algorithm Construction5.3.5 Static and Dynamic Structures in Stacks and Queues5.4 Linked Lists (HL)0/05.4.1 Dynamics of Linked Lists5.4.2 Logical Operations in Linked Lists5.4.3 Sketching Various Linked Lists5.5 Trees (HL)0/05.5.1 Logical Operations in Trees5.5.2 Terminology in Binary Trees5.5.3 Tree Traversal Techniques in Binary Trees5.5.4 Sketching Binary 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.1 Identification of Recursive Situations5.1.2 Recursive Solutions in Problems5.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.1 Understanding Stacks5.3.2 Stack Algorithm Construction5.3.3 Understanding Queues5.3.4 Queue Algorithm Construction5.3.5 Static and Dynamic Structures in Stacks and Queues5.4 Linked Lists (HL)0/05.4.1 Dynamics of Linked Lists5.4.2 Logical Operations in Linked Lists5.4.3 Sketching Various Linked Lists5.5 Trees (HL)0/05.5.1 Logical Operations in Trees5.5.2 Terminology in Binary Trees5.5.3 Tree Traversal Techniques in Binary Trees5.5.4 Sketching Binary 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.1 The Role of the Operating System in Resource Management6.2.2 Techniques in OS Resource Management6.2.3 Advantages of Dedicated Operating Systems6.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.1 The Role of the Operating System in Resource Management6.2.2 Techniques in OS Resource Management6.2.3 Advantages of Dedicated Operating Systems6.2.4 Operating Systems and Hardware Complexity7. Control (HL)Premium7.1 Centralized Control Systems (HL)0/07.1.1 Variety of Control Systems7.1.2 Microprocessors and Sensors in Control Systems7.1.3 Evaluation of Input Devices7.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.1 Variety of Control Systems7.1.2 Microprocessors and Sensors in Control Systems7.1.3 Evaluation of Input Devices7.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.1 Understanding Data and DatabasesA.1.2 Transaction Management and Data ConsistencyA.1.3 Principles of Database InteractionsA.2 The Relational Database Model0/0A.2.1 Understanding DBMS and RDBMSA.2.2 Schema and Data DictionaryA.2.3 The Importance of Data Modelling and LanguagesA.2.4 Database Terms and RelationshipsA.2.5 Issues with Redundant DataA.2.6 Referential Integrity and NormalizationA.2.7 Evaluating Data Types in Relational DatabasesA.2.8 Constructing Entity-Relationship DiagramsA.2.9 Introduction to Database ConstructionA.2.10 Query Construction MethodsA.3 Further Aspects of Database Management0/0A.3.1 Role of a Database Administrator (DBA)A.3.2 End-User Interaction with DatabasesA.3.3.Database Recovery MethodsA.3.4 Integrated Database SystemsA.3.5 Databases in Various DomainsA.3.6 Ensuring Data Privacy in DatabasesA.3.7 Open Database InterrogationA.3.8 Data Matching and Data MiningA.4 Further Database Models and Database Analysis (HL)0/0A.4.1 Database Models and Their CharacteristicsA.4.2 Data WarehousingA.4.3 ETL Processes in Data WarehousingA.4.4 Data Mining Techniques and ApplicationsA.4.5 Predictive Modelling in DatabasesA.4.6 Advanced Database Analysis TechniquesOption Topic AA.1 Basic Concepts0/0A.1.1 Understanding Data and DatabasesA.1.2 Transaction Management and Data ConsistencyA.1.3 Principles of Database InteractionsA.2 The Relational Database Model0/0A.2.1 Understanding DBMS and RDBMSA.2.2 Schema and Data DictionaryA.2.3 The Importance of Data Modelling and LanguagesA.2.4 Database Terms and RelationshipsA.2.5 Issues with Redundant DataA.2.6 Referential Integrity and NormalizationA.2.7 Evaluating Data Types in Relational DatabasesA.2.8 Constructing Entity-Relationship DiagramsA.2.9 Introduction to Database ConstructionA.2.10 Query Construction MethodsA.3 Further Aspects of Database Management0/0A.3.1 Role of a Database Administrator (DBA)A.3.2 End-User Interaction with DatabasesA.3.3.Database Recovery MethodsA.3.4 Integrated Database SystemsA.3.5 Databases in Various DomainsA.3.6 Ensuring Data Privacy in DatabasesA.3.7 Open Database InterrogationA.3.8 Data Matching and Data MiningA.4 Further Database Models and Database Analysis (HL)0/0A.4.1 Database Models and Their CharacteristicsA.4.2 Data WarehousingA.4.3 ETL Processes in Data WarehousingA.4.4 Data Mining Techniques and ApplicationsA.4.5 Predictive Modelling in DatabasesA.4.6 Advanced Database Analysis TechniquesOption Topic BB.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.1 Understanding SimulationsB.2.2 Rules and Data in SimulationsB.2.3 Testing and Improving SimulationsB.2.4 Hardware and Software Requirements B.2.5 Reliability and EffectivenessB.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 BB.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.1 Understanding SimulationsB.2.2 Rules and Data in SimulationsB.2.3 Testing and Improving SimulationsB.2.4 Hardware and Software Requirements B.2.5 Reliability and EffectivenessB.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.1 Understanding the Internet and WWWC.1.2 Protocols and StandardsC.1.3 Web Page EssentialsC.1.4 Browsers and Their FunctionsC.1.5 Connectivity and Data ManagementC.1.6 Domain and IP FundamentalsC.1.7 Evaluating Web Page StructuresC.2 Searching the Web0/0C.2.1 Understanding Search EnginesC.2.2 Web Crawlers and Meta-TagsC.2.3 Search Engine Optimisation (SEO)C.2.4 Effectiveness of Search EnginesC.2.5 Introduction to the Deep WebC.3 Distributed Approaches to the Web0/0C.3.1 Introduction to Distributed ComputingC.3.2 Hardware and Decentralisation in Distributed NetworksC.3.3 Data CompressionC.4 The Evolving Web0/0C.4.1 Online Interaction and Social NetworkingC.4.2 Cloud Computing vs Traditional Client-Server ArchitectureC.4.3 Intellectual Property and PrivacyC.4.4 Future Web DevelopmentC.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.1 Introduction to Semantic Web FoundationsC.6.2 The Evolution and Impact of the Semantic WebC.6.3 Ambient and Collective IntelligenceOption Topic CPremiumC.1 Creating the Web0/0C.1.1 Understanding the Internet and WWWC.1.2 Protocols and StandardsC.1.3 Web Page EssentialsC.1.4 Browsers and Their FunctionsC.1.5 Connectivity and Data ManagementC.1.6 Domain and IP FundamentalsC.1.7 Evaluating Web Page StructuresC.2 Searching the Web0/0C.2.1 Understanding Search EnginesC.2.2 Web Crawlers and Meta-TagsC.2.3 Search Engine Optimisation (SEO)C.2.4 Effectiveness of Search EnginesC.2.5 Introduction to the Deep WebC.3 Distributed Approaches to the Web0/0C.3.1 Introduction to Distributed ComputingC.3.2 Hardware and Decentralisation in Distributed NetworksC.3.3 Data CompressionC.4 The Evolving Web0/0C.4.1 Online Interaction and Social NetworkingC.4.2 Cloud Computing vs Traditional Client-Server ArchitectureC.4.3 Intellectual Property and PrivacyC.4.4 Future Web DevelopmentC.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.1 Introduction to Semantic Web FoundationsC.6.2 The Evolution and Impact of the Semantic WebC.6.3 Ambient and Collective IntelligenceOption Topic DPremiumD.1 Objects as a Programming Concept0/0D.1.1 Nature of Objects in ProgrammingD.1.2 Object InstantiationD.1.3 Unified Modelling Language (UML) DiagramsD.1.4 Object Decomposition in ProgrammingD.1.5 Relationships Between ObjectsD.1.6 Object DependenciesD.1.7 Constructing Related ObjectsD.1.8 Data Types in Object-Oriented ProgrammingD.1.9 Data Management and ParametersD.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.1 Introduction to Fundamental Programming ConstructsD.3.2 Code Construction and AnalysisD.3.3 Object-Oriented Programming FeaturesD.3.4 Internationalisation and Modern ProgrammingD.3.5 Ethical Considerations in ProgrammingD.4 Advanced Program Development (HL)0/0D.4.1 Understanding RecursionD.4.2 Object References and AlgorithmsD.4.3 Abstract Data Types (ADTs)D.4.4 List Implementations and AlgorithmsD.4.5 Using Standard Library CollectionsD.4.6 Advanced ADTs in Computer ScienceD.4.7 Code Readability and ConventionsD.4.8 Collaborative Programming Option Topic DPremiumD.1 Objects as a Programming Concept0/0D.1.1 Nature of Objects in ProgrammingD.1.2 Object InstantiationD.1.3 Unified Modelling Language (UML) DiagramsD.1.4 Object Decomposition in ProgrammingD.1.5 Relationships Between ObjectsD.1.6 Object DependenciesD.1.7 Constructing Related ObjectsD.1.8 Data Types in Object-Oriented ProgrammingD.1.9 Data Management and ParametersD.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.1 Introduction to Fundamental Programming ConstructsD.3.2 Code Construction and AnalysisD.3.3 Object-Oriented Programming FeaturesD.3.4 Internationalisation and Modern ProgrammingD.3.5 Ethical Considerations in ProgrammingD.4 Advanced Program Development (HL)0/0D.4.1 Understanding RecursionD.4.2 Object References and AlgorithmsD.4.3 Abstract Data Types (ADTs)D.4.4 List Implementations and AlgorithmsD.4.5 Using Standard Library CollectionsD.4.6 Advanced ADTs in Computer ScienceD.4.7 Code Readability and ConventionsD.4.8 Collaborative Programming