Expert IB Computer Science Tutors for Success
Are you ready to excel in IB Computer Science? Our experienced tutors specialize in guiding students through both SL (Standard Level) and HL (Higher Level) Computer Science, helping you achieve your academic goals with confidence.
Why Choose Our IB Computer Science Tutors?
Topic 1—System fundamentals
1.1 Systems in organizations
1.1.1 Planning and system installation - Identify the context for which a new system is planned
1.1.2 Planning and system installation - Describe the need for change management
1.1.3 Planning and system installation - Outline compatibility issues resulting from situations including legacy systems or business mergers
1.1.4 Planning and system installation - Compare the implementation of systems using a client’s hardware with hosting systems remotely
1.1.5 Planning and system installation - Evaluate alternative installation processes
1.1.6 Planning and system installation - Discuss problems that may arise as a part of data migration
1.1.7 Planning and system installation - Suggest various types of testing
1.1.8 User focus - Describe the importance of user documentation
1.1.9 User focus - Evaluate different methods of providing user documentation
1.1.10 User focus - Evaluate different methods of delivering user training
1.1.11 System backup - Identify a range of causes of data loss
1.1.12 System backup - Outline the consequences of data loss in a specified situation
1.1.13 System backup - Describe a range of methods that can be used to prevent data loss
1.1.14 Software deployment - Describe strategies for managing releases and updates
1.2 System design basics
1.2.1 Components of a computer system - Define the terms: hardware, software, peripheral, network, human resources
1.2.2 Components of a computer system - Describe the roles that a computer can take in a networked world
1.2.3 Components of a computer system - Discuss the social and ethical issues associated with a networked world
1.2.4 System design and analysis - Identify the relevant stakeholders when planning a new system
1.2.5 System design and analysis - Describe methods of obtaining requirements from stakeholders
1.2.6 System design and analysis - Describe appropriate techniques for gathering the information needed to arrive at a workable solution
1.2.7 System design and analysis - Construct suitable representations to illustrate system requirements
1.2.8 System design and analysis - Describe the purpose of prototypes to demonstrate the proposed system to the client
1.2.9 System design and analysis - Discuss the importance of iteration during the design process
1.2.10 System design and analysis - Explain the possible consequences of failing to involve the end-user in the design process
1.2.11 System design and analysis - Discuss the social and ethical issues associated with the introduction of new IT systems
1.2.12 System design and analysis - Define the term usability
1.2.13 System design and analysis - Identify a range of usability problems with commonly used digital devices
1.2.14 System design and analysis - Identify methods that can be used to improve the accessibility of systems
1.2.15 System design and analysis - Identify a range of usability problems that can occur in a system
1.2.16 System design and analysis - Discuss the moral, ethical, social, economic and environmental implications of the interaction between humans and machines
Topic 2—Computer organization
2.1 Computer organization
2.1.1 Computer architecture - Outline the architecture of the central processing unit (CPU) and the functions of the arithmetic logic unit (ALU) and the control unit (CU) and the registers within the CPU
2.1.2 Computer architecture - Describe primary memory
2.1.3 Computer architecture - Explain the use of cache memory
2.1.4 Computer architecture - Explain the machine instruction cycle
2.1.5 Secondary memory - Identify the need for persistent storage
2.1.6 Operating systems and application systems - Describe the main functions of an operating system
2.1.7 Operating systems and application systems - Outline the use of a range of application software
2.1.8 Operating systems and application systems - Identify common features of applications
2.1.9 Binary representation - Define the terms: bit, byte, binary, denary/decimal, hexadecimal
2.1.10 Binary representation - Outline the way in which data is represented in the computer
2.1.11 Simple logic gates - Define the Boolean operators: AND, OR, NOT, NAND, NOR and XOR
2.1.12 Simple logic gates - Construct truth tables using the above operators
2.1.13 Simple logic gates - Construct a logic diagram using AND, OR, NOT, NAND, NOR and XOR gates
Topic 3—Networks
3.1 Networks
3.1.1 Network fundamentals - Identify different types of networks
3.1.2 Network fundamentals - Outline the importance of standards in the construction of networks
3.1.3 Network fundamentals - Describe how communication over networks is broken down into different layers
3.1.4 Network fundamentals - Identify the technologies required to provide a VPN
3.1.5 Network fundamentals - Evaluate the use of a VPN
3.1.6 Data transmission - Define the terms: protocol, data packet
3.1.7 Data transmission - Explain why protocols are necessary
3.1.8 Data transmission - Explain why the speed of data transmission across a network can vary
3.1.9 Data transmission - Explain why compression of data is often necessary when transmitting across a network
3.1.10 Data transmission - Outline the characteristics of different transmission media
3.1.11 Data transmission - Explain how data is transmitted by packet switching
3.1.12 Wireless networking - Outline the advantages and disadvantages of wireless networks
3.1.13 Wireless networking - Describe the hardware and software components of a wireless network
3.1.14 Wireless networking - Describe the characteristics of wireless networks
3.1.15 Wireless networking - Describe the different methods of network security
3.1.16 Wireless networking - Evaluate the advantages and disadvantages of each method of network security
Topic 4—Computational thinking, problem-solving and programming
4.1 General principles
4.1.1 Thinking procedurally - Identify the procedure appropriate to solving a problem
4.1.2 Thinking procedurally - Evaluate whether the order in which activities are undertaken will result in the required outcome
4.1.3 Thinking procedurally - Explain the role of sub-procedures in solving a problem
4.1.4 Thinking logically - Identify when decision-making is required in a specified situation
4.1.5 Thinking logically - Identify the decisions required for the solution to a specified problem
4.1.6 Thinking logically - Identify the condition associated with a given decision in a specified problem
4.1.7 Thinking logically - Explain the relationship between the decisions and conditions of a system
4.1.8 Thinking logically - Deduce logical rules for real-world situations
4.1.9 Thinking ahead - Identify the inputs and outputs required in a solution
4.1.10 Thinking ahead - Identify pre-planning in a suggested problem and solution
4.1.11 Thinking ahead - Explain the need for pre-conditions when executing an algorithm
4.1.12 Thinking ahead - Outline the pre- and post-conditions to a specified problem
4.1.13 Thinking ahead - Identify exceptions that need to be considered in a specified problem solution
4.1.14 Thinking concurrently - Identify the parts of a solution that could be implemented concurrently
4.1.15 Thinking concurrently - Describe how concurrent processing can be used to solve a problem
4.1.16 Thinking concurrently - Evaluate the decision to use concurrent processing in solving a problem
4.1.17 Thinking abstractly - Identify examples of abstraction
4.1.18 Thinking abstractly - Explain why abstraction is required in the derivation of computational solutions for a specified situation
4.1.19 Thinking abstractly - Construct an abstraction from a specified situation
4.1.20 Thinking abstractly - Distinguish between a real-world entity and its abstraction
4.2 Connecting computational thinking and program design
4.2.1 Describe the characteristics of standard algorithms on linear arrays
4.2.2 Outline the standard operations of collections
4.2.3 Discuss an algorithm to solve a specific problem
4.2.4 Analyse an algorithm presented as a flow chart
4.2.5 Analyse an algorithm presented as pseudocode
4.2.6 Construct pseudocode to represent an algorithm
4.2.7 Suggest suitable algorithms to solve a specific problem
4.2.8 Deduce the efficiency of an algorithm in the context of its use
4.2.9 Determine the number of times a step in an algorithm will be performed for given input data
4.3 Introduction to programming
4.3.1 Nature of programming languages - State the fundamental operations of a computer
4.3.2 Nature of programming languages - Distinguish between fundamental and compound operations of a computer
4.3.3 Nature of programming languages - Explain the essential features of a computer language
4.3.4 Nature of programming languages - Explain the need for higher level languages
4.3.5 Nature of programming languages - Outline the need for a translation process from a higher level language to machine executable code
4.3.6 Use of programming languages - Define the terms: variable, constant, operator, object
4.3.7 Use of programming languages - Define the operators =, ≠, <, <=, >, >=, mod, div
4.3.8 Use of programming languages - Analyse the use of variables, constants and operators in algorithms
4.3.9 Use of programming languages - Construct algorithms using loops, branching
4.3.10 Use of programming languages - Describe the characteristics and applications of a collection
4.3.11 Use of programming languages - Construct algorithms using the access methods of a collection
4.3.12 Use of programming languages - Discuss the need for sub-programmes and collections within programmed solutions
4.3.13 Use of programming languages - Construct algorithms using predefined sub-programmes, onedimensional arrays and/or collections
Topic 5—Abstract data structures (HL)
5.1 Abstract data structures
5.1.1 Thinking recursively - Identify a situation that requires the use of recursive thinking
5.1.2 Thinking recursively - Identify recursive thinking in a specified problem solution
5.1.3 Thinking recursively - Trace a recursive algorithm to express a solution to a problem
5.1.4 Abstract data structures - Describe the characteristics of a twodimensional array
5.1.5 Abstract data structures - Construct algorithms using twodimensional arrays
5.1.6 Abstract data structures - Describe the characteristics and applications of a stack
5.1.7 Abstract data structures - Construct algorithms using the access methods of a stack
5.1.8 Abstract data structures - Describe the characteristics and applications of a queue
5.1.9 Abstract data structures - Construct algorithms using the access methods of a queue
5.1.10 Abstract data structures - Explain the use of arrays as static stacks and queues
5.1.11 Linked lists - Describe the features and characteristics of a dynamic data structure
5.1.12 Linked lists - Describe how linked lists operate logically
5.1.13 Linked lists - Sketch linked lists (single, double and circular)
5.1.14 Trees - Describe how trees operate logically (both binary and non-binary)
5.1.15 Trees - Define the terms: parent, left-child, right-child, subtree, root and leaf
5.1.16 Trees - State the result of inorder, postorder and preorder tree traversal
5.1.17 Trees - Sketch binary trees
5.1.18 Applications - Define the term dynamic data structure
5.1.19 Applications - Compare the use of static and dynamic data structures
5.1.20 Applications - Suggest a suitable structure for a given situation
Topic 6—Resource management (HL)
6.1 Resource management
6.1.1 System resources - Identify the resources that need to be managed within a computer system
6.1.2 System resources - Evaluate the resources available in a variety of computer systems
6.1.3 System resources - Identify the limitations of a range of resources in a specified computer system
6.1.4 System resources - Describe the possible problems resulting from the limitations in the resources in a computer system
6.1.5 Role of the operating system - Explain the role of the operating system in terms of managing memory, peripherals and hardware interfaces
6.1.6 (missing in the IB subject guide)
6.1.7 Role of the operating system - Outline OS resource management techniques: scheduling, policies, multitasking, virtual memory, paging, interrupt, polling
6.1.8 Role of the operating system - Discuss the advantages of producing a dedicated operating system for a device
6.1.9 Role of the operating system - Outline how an operating system hides the complexity of the hardware from users and applications
Topic 7—Control (HL)
7.1 Control
7.1.1 Centralized control systems - Discuss a range of control systems
7.1.2 Centralized control systems - Outline the uses of microprocessors and sensor input in control systems
7.1.3 Centralized control systems - Evaluate different input devices for the collection of data in specified situations
7.1.4 Centralized control systems - Explain the relationship between a sensor, the processor and an output transducer
7.1.5 Centralized control systems - Describe the role of feedback in a control system
7.1.6 Centralized control systems - Discuss the social impacts and ethical considerations associated with the use of embedded systems
7.1.7 Distributed systems - Compare a centrally controlled system with a distributed system
7.1.8 Distributed systems - Outline the role of autonomous agents acting within a larger system
Option A - Databases
A.1 Basic concepts
A.1.1 Outline the differences between data and information
A.1.2 Outline the differences between an information system and a database
A.1.3 Discuss the need for databases
A.1.4 Describe the use of transactions, states and updates to maintain data consistency (and integrity)
A.1.5 Define the term database transaction
A.1.6 Explain concurrency in a data sharing situation
A.1.7 Explain the importance of the ACID properties of a database transaction
A.1.8 Describe the two functions databases require to be performed on them
A.1.9 Explain the role of data validation and data verification
A.2 The relational database model
A.2.1 Define the terms: database management system (DBMS) and relational database management system (RDBMS)
A.2.2 Outline the functions and tools of a DBMS
A.2.3 Describe how a DBMS can be used to promote data security
A.2.4 Define the term schema
A.2.5 Identify the characteristics of the three levels of the schema: conceptual, logical, physical
A.2.6 Outline the nature of the data dictionary
A.2.7 Explain the importance of a data definition language in implementing a data model
A.2.8 Explain the importance of data modelling in the design of a database
A.2.9 Define the following database terms: table, record, field, primary key, secondary key, foreign key, candidate key, composite primary key, join
A.2.10 Identify the different types of relationships within databases: one-toone, one-to-many, many-to-many
A.2.11 Outline the issues caused by redundant data
A.2.12 Outline the importance of referential integrity in a normalized database
A.2.13 Describe the differences between 1st Normal Form (1NF), 2nd Normal Form (2NF) and 3rd Normal Form (3NF)
A.2.14 Describe the characteristics of a normalized database
A.2.15 Evaluate the appropriateness of the different data types
A.2.16 Construct an entity-relationship diagram (ERD) for a given scenario
A.2.17 Construct a relational database to 3NF using objects such as tables, queries, forms, reports and macros
A.2.18 Explain how a query can provide a view of a database
A.2.19 Describe the difference between a simple and complex query
A.2.20 Outline the different methods that can be used to construct a query
A.3 Further aspects of database management
A.3.1 Explain the role of a database administrator
A.3.2 Explain how end-users can interact with a database
A.3.3 Describe different methods of database recovery
A.3.4 Outline how integrated database systems function
A.3.5 Outline the use of databases in areas such as stock control, police records, health records, employee data
A.3.6 Suggest methods to ensure the privacy of the personal data and the responsibility of those holding personal data not to sell or divulge it in any way
A.3.7 Discuss the need for some databases to be open to interrogation by other parties (police, government, etc)
A.3.8 Explain the difference between data matching and data mining
A.4 Further database models and database analysis (HL)
A.4.1 Describe the characteristics of different database models
A.4.2 Evaluate the use of object-oriented databases as opposed to relational databases
A.4.3 Define the term data warehouse
A.4.4 Describe a range of situations suitable for data warehousing
A.4.5 Explain why data warehousing is time dependent
A.4.6 Describe how data in a warehouse is updated in real time
A.4.7 Describe the advantages of using data warehousing
A.4.8 Explain the need for ETL processes in data warehousing
A.4.9 Describe how ETL processes can be used to clean up data for a data warehouse
A.4.10 Compare the different forms of discovering patterns using data mining
A.4.11 Describe situations that benefit from data mining
A.4.12 Describe how predictive modelling is used
A.4.13 Explain the nature of database segmentation
A.4.14 Explain the nature and purpose of link analysis
A.4.15 Describe the process of deviation detection
Option B - Modelling and simulation
B.1 The basic model
B.1.1 Define the term computer modelling
B.1.2 Identify a system that can be modelled
B.1.3 Identify the variables required to model a given system
B.1.4 Describe the limitations of computer (mathematical) models
B.1.5 Outline sensible grouping for collections of data items, including sample data
B.1.6 Design test-cases to evaluate a model
B.1.7 Discuss the effectiveness of a test-case in a specified situation
B.1.8 Discuss the correctness of a model by comparing generated results with data that were observed in the original problem
B.2 Simulations
B.2.1 Define the term simulation
B.2.2 Explain the difference between a model and a simulation
B.2.3 Describe rules that process data appropriately and that produce results
B.2.4 Discuss rules and data representations and organization
B.2.5 Construct simple models that use different forms of data representation and organization
B.2.6 Design test-cases to evaluate a simulation program
B.2.7 Outline the software and hardware required for a simulation
B.2.8 Describe changes in rules, formulae and algorithms that would improve the correspondence between results and observed data
B.2.9 Construct examples of simulations that involve changes in rules, formulae and algorithms
B.2.10 Describe changes in data collection that could improve the model or simulation
B.2.11 Discuss the reliability of a simulation by comparing generated results with data that were observed in the original problem
B.2.12 Outline the advantages and disadvantages of simulation in a given situation rather than simply observing a real-life situation
B.2.13 Discuss advantages and disadvantages of using a simulation for making predictions
B.3 Visualization
B.3.1 Define the term visualization
B.3.2 Identify a two-dimensional use of visualization
B.3.3 Outline the memory needs of 2D visualization
B.3.4 Identify a three-dimensional use of visualization
B.3.5 Outline the relationship between the images in memory and the 3D visualization
B.3.6 Discuss the time and memory considerations of 3D animation in a given scenario
B.4 Communication modelling and simulation (HL)
B.4.1 Outline the use of genetic algorithms
B.4.2 Outline the structure of neural networks
B.4.3 Compare applications that use neural network modelling
B.4.4 Compare different ways in which neural networks can be used to recognize patterns
B.4.5 Identify the key structures of natural language
B.4.6 Discuss the differences between human and machine learning when related to language
B.4.7 Outline the evolution of modern machine translators
B.4.8 Describe the role of chatbots to simulate conversation
B.4.9 Describe the role of chatbots to simulate conversation
Option C - Web science
C.1 Creating the web
C.1.1 Distinguish between the internet and World Wide Web (web)
C.1.2 Describe how the web is constantly evolving
C.1.3 Identify the characteristics of the following: hypertext transfer protocol (HTTP) hypertext transfer protocol secure (HTTPS) hypertext mark-up language (HTML) uniform resource locator (URL) extensible mark-up language (XML) extensible stylesheet language transformations (XSLT) JavaScript. cascading style sheet (CSS)
C.1.4 Identify the characteristics of the following: uniform resource identifier (URI) URL
C.1.5 Describe the purpose of a URL
C.1.6 Describe how a domain name server functions
C.1.7 Identify the characteristics of: internet protocol (IP) transmission control protocol (TCP) file transfer protocol (FTP)
C.1.8 Outline the different components of a web page
C.1.9 Explain the importance of protocols and standards on the web
C.1.10 Describe the different types of web page
C.1.11 Explain the differences between a static web page and a dynamic web page
C.1.12 Explain the functions of a browser
C.1.13 Evaluate the use of client-side scripting and server-side scripting in web pages
C.1.14 Describe how web pages can be connected to underlying data sources
C.1.15 Describe the function of the common gateway interface (CGI)
C.1.16 Evaluate the structure of different types of web pages
C.2 Searching the web
C.2.1 Define the term search engine
C.2.2 Distinguish between the surface web and the deep web
C.2.3 Outline the principles of searching algorithms used by search engines
C.2.4 Describe how a web crawler functions
C.2.5 Discuss the relationship between data in a meta-tag and how it is accessed by a web crawler
C.2.6 Discuss the use of parallel web crawling
C.2.7 Outline the purpose of web-indexing in search engines
C.2.8 Suggest how web developers can create pages that appear more prominently in search engine results
C.2.9 Describe the different metrics used by search engines
C.2.10 Explain why the effectiveness of a search engine is determined by the assumptions made when developing it
C.2.11 Discuss the use of white hat and black hat search engine optimization
C.2.12 Outline future challenges to search engines as the web continues to grow
C.3 Distributed approaches to the web
C.3.1 Define the terms: mobile computing, ubiquitous computing, peer-2-peer network, grid computing
C.3.2 Compare the major features of: mobile computing ubiquitous computing peer-2-peer network grid computing
C.3.3 Distinguish between interoperability and open standards
C.3.4 Describe the range of hardware used by distributed networks
C.3.5 Explain why distributed systems may act as a catalyst to a greater decentralization of the web
C.3.6 Distinguish between lossless and lossy compression
C.3.7 Evaluate the use of decompression software in the transfer of information
C.4 The evolving web
C.4.1 Discuss how the web has supported new methods of online interaction such as social networking
C.4.2 Describe how cloud computing is different from a client-server architecture
C.4.3 Discuss the effects of the use of cloud computing for specified organizations
C.4.4 Discuss the management of issues such as copyright and intellectual property on the web
C.4.5 Describe the interrelationship between privacy, identification and authentication
C.4.6 Describe the role of network architecture, protocols and standards in the future development of the web
C.4.7 Explain why the web may be creating unregulated monopolies
C.4.8 Discuss the effects of a decentralized and democratic web
C.5 Analysing the web (HL)
C.5.1 Describe how the web can be represented as a directed graph
C.5.2 Outline the difference between the web graph and sub-graphs
C.5.3 Describe the main features of the web graph such as bowtie structure, strongly connected core (SCC), diameter
C.5.4 Explain the role of graph theory in determining the connectivity of the web
C.5.5 Explain that search engines and web crawling use the web graph to access information
C.5.6 Discuss whether power laws are appropriate to predict the development of the web
C.6 The intelligent web (HL)
C.6.1 Define the term semantic web
C.6.2 Distinguish between the text-web and the multimedia-web
C.6.3 Describe the aims of the semantic web
C.6.4 Distinguish between an ontology and folksonomy
C.6.5 Describe how folksonomies and emergent social structures are changing the web
C.6.6 Explain why there needs to be a balance between expressivity and usability on the semantic web
C.6.7 Evaluate methods of searching for information on the web
C.6.8 Distinguish between ambient intelligence and collective intelligence
C.6.9 Discuss how ambient intelligence can be used to support people
C.6.10 Explain how collective intelligence can be applied to complex issues
Option D - Object-oriented programming
D.1 Objects as a programming concept
D.1.1 Outline the general nature of an object
D.1.2 Distinguish between an object (definition, template or class) and instantiation
D.1.3 Construct unified modelling language (UML) diagrams to represent object designs
D.1.4 Interpret UML diagrams
D.1.5 Describe the process of decomposition into several related objects
D.1.6 Describe the relationships between objects for a given problem
D.1.7 Outline the need to reduce dependencies between objects in a given problem
D.1.8 Construct related objects for a given problem
D.1.9 Explain the need for different data types to represent data items
D.1.10 Describe how data items can be passed to and from actions as parameters
D.2 Features of OOP
D.2.1 Define the term encapsulation
D.2.2 Define the term inheritance
D.2.3 Define the term polymorphism
D.2.4 Explain the advantages of encapsulation
D.2.5 Explain the advantages of inheritance
D.2.6 Explain the advantages of polymorphism
D.2.7 Describe the advantages of libraries of objects
D.2.8 Describe the disadvantages of OOP
D.2.9 Discuss the use of programming teams
D.2.10 Explain the advantages of modularity in program development
D.3 Program development
D.3.1 Define the terms: class, identifier, primitive, instance variable, parameter variable, local variable
D.3.2 Define the terms: method, accessor, mutator, constructor, signature, return value
D.3.3 Define the terms: private, protected, public, extends, static
D.3.4 Describe the uses of the primitive data types and the reference class string
D.3.5 Construct code to implement assessment statements D.3.1–D.3.4
D.3.6 Construct code examples related to selection statements
D.3.7 Construct code examples related to repetition statements
D.3.8 Construct code examples related to static arrays
D.3.9 Discuss the features of modern programming languages that enable internationalization
D.3.10 Discuss the ethical and moral obligations of programmers
D.4 Advanced program development (HL)
D.4.1 Define the term recursion
D.4.2 Describe the application of recursive algorithms
D.4.3 Construct algorithms that use recursion
D.4.4 Trace recursive algorithms
D.4.5 Define the term object reference
D.4.6 Construct algorithms that use reference mechanisms
D.4.7 Identify the features of the abstract data type (ADT) list
D.4.8 Describe applications of lists
D.4.9 Construct algorithms using a static implementation of a list
D.4.10 Construct list algorithms using object references
D.4.11 Construct algorithms using the standard library collections included in JETS
D.4.12 Trace algorithms using the implementations described in assessment statements D.4.9–D.4.11
D.4.13 Explain the advantages of using library collections
D.4.14 Outline the features of ADT’s stack, queue and binary tree
D.4.15 Explain the importance of style and naming conventions in code
What We Offer
Flexible Tutoring Options
Start Excelling in IB Computer Science Today!
Don’t let complex algorithms or programming challenges hold you back. Our IB Computer Science tutors are here to simplify tough topics, boost your confidence, and help you achieve top grades. Contact us now to connect with an expert tutor and take the first step toward your success!
Browse our IB Computer Science Tutors