Computational Thinking Study Notes
Overview of Computational Thinking
Computational thinking is a problem-solving process used to understand complex problems and formulate optimal solutions. It differs from programming: computational thinking determines what instructions to construct, whereas programming involves delivering those exact instructions to a computer. Computers cannot think independently and simply execute provided commands. Typical everyday applications include planning travel routes, working through mathematical problems, following recipes, and playing strategy games.
The Six Core Steps of Computational Thinking
Computational thinking relies on six sequential steps to break down and resolve complex challenges:
Decomposition breaks a large, complex problem into smaller, simpler, and more manageable components that can be analyzed independently.
Pattern Recognition involves identifying shared features, characteristics, or similarities among the decomposed sub-problems to make them easier to address.
Generalisation leverages knowledge and patterns gained from previously resolved problems to establish reusable rules or strategies for new scenarios.
Abstraction removes unnecessary details and focuses exclusively on essential information to construct a simplified model of the problem.
Algorithm creation provides a clear, ordered, step-by-step sequence of instructions designed to solve the problem.
Evaluation reviews and tests the proposed solution at every stage to ensure efficiency and identify potential improvements before implementation.

Decomposition and Pattern Analysis
Tackling a complex system without decomposition is difficult because managing multiple stages simultaneously increases complexity. Examining individual elements independently—such as evaluating separate bicycle parts—allows for deeper analysis. When common patterns across sub-problems are identified, standard problem-solving approaches can be repeatedly applied, significantly speeding up the overall process.
Abstraction and Model Formation
Abstraction filters out specific, non-essential details to keep only core patterns. For instance, in a general cake-baking or cat description model, knowing that ingredients or physical features exist is essential, whereas specific quantities or color variations are omitted. This produces a model, which serves as a generalized framework representing all variations of a problem and forms the blueprint for algorithm design.
Algorithm Design and Representation
Algorithms dictate the precise execution order required for a computer or system to complete a task. Every valid algorithm must feature a defined starting point, a defined finishing point, and an ordered set of explicit instructions where each step is written as a separate statement.
Before programming in a specific language, algorithms are commonly planned using two primary representations: pseudocode and flowcharts. Pseudocode expresses logic in plain English without strict syntax rules. A flowchart visually charts the computational logic and decision paths using standardized diagram shapes, such as executing processing assignments like .
Solution Evaluation
Evaluation must occur throughout every phase of computational thinking prior to final execution. Assessing each step ensures errors are caught early, instructions are unambiguous, and the final solution operates efficiently.