Computational Thinking – Problem Decomposition

Definition of Computational Thinking:

Computational thinking is a process in which you creatively apply a four-step problem-solving cycle to ideas, challenges and opportunities you encounter to develop and test solutions. The emphasis is learning how to take real-life situations and abstract—often to programs—so a computer can calculate the answer.
Computational Thinking is the fundamental tool used to consistently solve Dark Data related problems. It is interwoven into the majority of problem-solving methodologies. Given it is the backbone of delivering complex solutions, it is important that we understand it at its core form.- Definition cited from Computationalthinking.org

Computational Thinking

Article establishing the modern viewpoint on computation thinking, written by Jeannette M. Wing PhD

Computational thinking is a problem-solving technique that involves breaking down a problem into smaller, more manageable parts, identifying patterns and relationships, and developing algorithms to solve it.

Computational thinking can have a significant impact on dark data. By using computational thinking, organizations can analyze the dark data and extract useful insights that can help them make better business decisions. Computational thinking can help organizations identify patterns and trends in the data that would otherwise be difficult to see.

Furthermore, computational thinking can help organizations develop algorithms to automate the process of analyzing dark data. This can reduce the time and effort required to analyze large volumes of data, allowing organizations to make better use of their dark data.

The four main tools used in Computational Thinking are Decomposition, Pattern Recognition, Abstraction, & Algorithms. these tools partner very well with industry standard project and process management techniques, Agile, Lean Six Sigma, Waterfall, etc.

These tools will provide a light-weight framework to solve problems with computational thinking:

  • Decomposition: |Breaking down problems into smaller parts can make complicated challenges more manageable. This enables other computational thinking elements to be applied more effectively to complex challenges. The solutions to the smaller problems are then combined to solve the original, larger problem.
  • Pattern Recognition: |Examining the problem for patterns, or similarities to previously solved problems, can simplify the solution. Pattern recognition can lead to grouping, organizing, or streamlining problems for more efficient outcomes. Conversely, a lack of patterns is also useful because it means there is no more simplification to be done.
  • Abstraction: |Taking a step back from the specific details of a given problem allows you to create a more generic solution. This requires analyzing the problem to remove extra detail and highlight the basic parts. Once completed, begin brainstorming a solution to the problem.
  • Algorithms: |When solving a problem, it is important to create a plan for your solution. Algorithms are a strategy that can be used to determine the step-by-step instructions on how to solve the problem. Algorithms can be written in plain language, with flowcharts, or pseudocode.
  • Reference List:
  • Computational Thinking: Be empowered for the AI age. ComputationalThinking.org. (n.d.). Retrieved May 7, 2023, from https://www.computationalthinking.org/about/
  • Wing, J. M. (2006, March). Computational Thinking. Viewpoint. Retrieved May 8, 2023, from https://www.cs.cmu.edu/~15110-s13/Wing06-ct.pdf