1.1 Computational Thinking

Computational thinking is a structured method of solving complex problems by breaking them down, identifying patterns, focusing on essential information, and designing a clear set of steps to reach a solution. Its purpose is to create logical, efficient solutions that can be carried out by a computer or a person

Use computational thinking when a problem is complex, unclear, or too large to solve all at once. It is helpful when a task requires logical steps, automation, or the creation of an efficient, repeatable solution

Benefits:
Helps simplify complex problems
Leads to organised, logical solutions
Makes solutions easier to test and reuse
Works across multiple subjects, not only computing

Drawbacks:

Can be time‑consuming for simple tasks
Requires practice and understanding
May oversimplify a problem if not used carefully
Not all problems fit well with computational thinking

Computational thinking is made up of four core skills:

Decomposition – breaking a big problem into smaller parts
Pattern Recognition – spotting trends or similarities
Abstraction – removing unnecessary details
Algorithmic Design – creating step‑by‑step instruction

Benefits:

Breaks down complexity
Helps reuse existing solutions
Reduces confusion
Allows clear, repeatable processes

Drawbacks:

Some problems are hard to break down
Patterns are not always easy to spot
Abstraction risks hiding important details
Algorithms may require many revisions

Decomposition helps make difficult problems easier to understand by dividing them into smaller, more manageable pieces that can be solved one at a time.

Decomposition involves:

Identifying the main parts of a problem
Understanding what each part involves
Breaking the problem into smaller chunks
Breaking solutions into steps that work together

This means taking a real problem, dividing it into smaller tasks, and solving each task individually to create the overall solution.

Decomposition can be represented using tools such as:

Block diagrams
Information flow diagrams
Flowcharts
Written explanations

Being able to create these diagrams or descriptions demonstrates an understanding of how a problem and solution have been broken down..

Pattern recognition helps identify similarities and trends in data or problems, which can be used to make predictions or solve similar problems more efficiently.

Find trends, similarities, common features, make predictions.

Abstraction helps focus only on what is important by removing details that do not affect the solution. It simplifies complex systems so they are easier to understand and work with.

Abstraction involves:

Identifying essential information
Removing unnecessary or distracting details
Hiding complex processes that the user doesn't need to see

Be able to use abstraction.

Applying abstraction to real problems means simplifying the problem to its core elements so it is easier to build and test a solution. Can be applied to ESP tasks