IB Computer Science HL · Core — SL & HL
Computational Thinking, Problem-Solving & Programming
IB pseudocode, sorting/searching algorithms and trace tables — the largest topic by statement count, and trace-table questions are marked variable-by-variable, so one wrong early value cascades into several lost marks even with correct logic afterwards.
4.1 General principles
- Identify the procedure appropriate to solving a problem.
- Evaluate whether the order in which activities are undertaken will result in the required outcome.
- Explain the role of sub-procedures in solving a problem.
- Identify when decision-making is required in a specified situation.
- Identify the decisions required for the solution to a specified problem.
- Identify the condition associated with a given decision in a specified problem.
- Explain the relationship between the decisions and conditions of a system.
- Deduce logical rules for real-world situations.
- Identify the inputs and outputs required in a solution.
- Identify pre-planning in a suggested problem and solution.
- Explain the need for pre-conditions when executing an algorithm.
- Outline the pre- and post-conditions to a specified problem.
- Identify exceptions that need to be considered in a specified problem solution.
- Identify the parts of a solution that could be implemented concurrently.
- Describe how concurrent processing can be used to solve a problem.
- Evaluate the decision to use concurrent processing in solving a problem.
- Identify examples of abstraction.
- Explain why abstraction is required in the derivation of computational solutions for a specified situation.
- Construct an abstraction from a specified situation.
- Distinguish between a real-world entity and its abstraction.
4.2 Connecting computational thinking and program design
- Describe the characteristics of standard algorithms on linear arrays (sequential search, binary search, bubble sort, selection sort).
- Outline the standard operations of collections (addition and retrieval of data).
- Discuss an algorithm to solve a specific problem.
- Analyse an algorithm presented as a flow chart.
- Analyse an algorithm presented as pseudocode.
- Construct pseudocode to represent an algorithm.
- Suggest suitable algorithms to solve a specific problem.
- Deduce the efficiency of an algorithm in the context of its use.
- Determine the number of times a step in an algorithm will be performed for given input data.
4.3 Introduction to programming
- State the fundamental operations of a computer.
- Distinguish between fundamental and compound operations of a computer.
- Explain the essential features of a computer language.
- Explain the need for higher level languages.
- Outline the need for a translation process from a higher level language to machine executable code.
- Define the terms: variable, constant, operator, object.
- Define the operators =, ≠, <, <=, >, >=, mod, div.
- Analyse the use of variables, constants and operators in algorithms.
- Construct algorithms using loops, branching.
- Describe the characteristics and applications of a collection.
- Construct algorithms using the access methods of a collection.
- Discuss the need for sub-programmes and collections within programmed solutions.
- Construct algorithms using pre-defined sub-programmes, one-dimensional arrays and/or collections.
Practice this topic
ExamEdge generates fresh, exam-authentic computational thinking, problem-solving & programming questions, marks every answer, and tells you exactly why a mark was lost — concept gap, reading load, or answer format.