All revision topics

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.