B.1 Computational Thinking
This page from IB Computer Science Academy teaches the full B.1 syllabus content through short, focused note blocks. After each note, answer one micro-check to confirm your understanding. Your progress and score update automatically as you go.
1Problem Specification
A problem specification is a structured description of a problem. It defines what needs to be solved and what a successful solution looks like.
The official IB Subject Brief states that computational thinking involves the ability to “specify problems in terms of their computational context and determine success criteria.” This is the starting point for any computational solution.
The specification should be clear enough that anyone reading it understands the problem. It should focus on the “what” and the “why” of the issue, not on the code that will eventually be written.
Once you specify the problem, you need to determine success criteria. Success criteria are the conditions that define whether a solution works correctly.
The official IB Subject Brief states that computational thinking involves “specify[ing] problems in terms of their computational context and determin[ing] success criteria.” This means you must be able to say, in advance, what would count as a successful solution.
2Core Concepts of Computational Thinking
Computational thinking is a problem-solving approach used in computer science. It is not programming itself. It is the thinking process you use to understand a problem and develop a solution.
The official IB Subject Brief describes computational thinking as involving four abilities:
- Specify problems in terms of their computational context and determine success criteria.
- Decompose complex real-world problems into more manageable problems.
- Abstract problems and generalize them to enable algorithmic thinking and to develop solutions.
- Test and evaluate solutions for improvements.
Decomposition is breaking down a complex problem into smaller, more manageable parts. Each part can be understood and solved more easily on its own.
The official IB Subject Brief specifically mentions the ability to “decompose complex real-world problems into more manageable problems” as a core aspect of computational thinking. This is the first step in approaching any complex problem.
Abstraction is focusing on the essential features of a problem while removing unnecessary details. Generalization means taking what you have learned from one problem and applying it to similar problems.
The official IB Subject Brief describes this as the ability to “abstract problems and generalize them to enable algorithmic thinking and to develop solutions.” By abstracting the key features and generalizing the solution, you can apply the same thinking to new situations.
Algorithmic thinking is developing a step-by-step solution to a problem. The official IB Subject Brief states that abstraction and generalization enable algorithmic thinking, which is used to develop solutions.
An algorithm is a clear, ordered set of steps that solves a problem. Algorithmic thinking is the skill of designing these steps. This is the bridge between understanding a problem and writing code to solve it.
3Applying Computational Thinking
The official IB Subject Brief states that computational thinking involves the ability to “test and evaluate solutions for improvements.” This means that once you have a proposed solution, you must check whether it works and consider how to improve it.
Testing means checking whether the solution works as intended. Evaluating means judging how well the solution meets the original success criteria. This is a core part of the computational thinking process.
The official IB Subject Brief states that the DP computer science course “requires an understanding of the fundamental concepts of computing systems and the ability to apply the computational thinking process to solve problems in the real world.”
The course is organized into two themes. Theme A focuses on how computing systems work. Theme B focuses on how we can use computing systems to solve real-world problems. B.1 Computational thinking sits within Theme B.
The same core thinking process applies across all areas of computer science: specify the problem, decompose it, abstract and generalize, design an algorithm, and test and evaluate the solution.
4Summary
Computational thinking comes first. Programming comes second. You design a solution you can justify and explain. Then you implement it in code.
The official IB Subject Brief states that the course “requires students to develop skills in algorithmic thinking and computer programming” and that the course “is underpinned by the computational thinking process.” This means computational thinking is the foundation, and programming is one of the skills built on top of it.