What is computational thinking?



A problem-solving methods which can be used in all kinds of fields. (almost everything can be an example of CT, such as making a cup of tea, designing a business plan, developing a software…) Thinking in a logical way which connects programming with other careers.

Solving problems through processes of:

- Decomposition :

Making a problem easier to solve through dividing it into a sequence of sub-problems. The whole task can be completed through completing a sequence of sub-tasks step by step.

Example:
- Drinking milk: Get milk from fridge—pour milk into the glass — drink it
- Developing an Android Application: Analyze requirement — Design system —Code — Test — Delivery — Maintain and update

- Pattern recognition:

Make things easier such as avoiding some risk or improving efficiency through the same occasion last time or similar models.

Example:
After buying milk in different supermarkets, we know which one has the lowest price and we will always buy milk there in the future. In machine learning, we use an appropriate dataset to predict the related data.

- Abstraction:

Focus on the most important part and ignore some unimportant details.

Example:
When a pilot drive a car, he should suppress his knowledge of flying to solve the problem of driving. It’s unnecessary to focus on how hardware work when developing a software.

- Generalisation:

Connect domains which have common characteristics and use the same solution to solve problems.

Example:
Mammals are warm blooded, a cat is a mammal so it’s warm blooded. If we learn the adding function, we can get the result of adding any two numbers.

- Algorithm design:

A sequence of steps for solving a problem.

Example:
Installing a lego car step by step. Writing a program to figure out the average number of an array.


How does CT relate to future career?


Computational thinking has been applied widely no matter in people’s daily lives or some professional fields. It is obvious that CT makes the problem easier to solve. Even though human brain is the strongest tool to figure out problems, it will become more powerful to extend human thinking with computers[1].

CT can be transferred to any domains. All problem-solving methods can apply the steps of CT : decomposing task, recognizing pattern, abstracting content and designing algorithm. Wing(2011) states that Computational thinking for scientists, engineers, and other professionals further means being able to:
• Apply new computational methods to their problems,
• Reformulate problems to be amenable to computational strategies,
• Discover new science through analysis of large data,
• Ask new questions that were not thought of or dared to ask because of scale, but which are easily addressed computationally,
• Explain problems and solutions in computational terms [2].

From my personal perspective, Computational Thinking is a fundamental subject just like mathematics, which is a significant base to learn other fields. Maybe this is also why it is our first module to learn.


Reference

[1] Barr, D., Harrison, J., & Conery, L. (2011). Computational thinking: A digital age skill for everyone. Learning & Leading with Technology, 38(6), 20-23.
[2] Wing, J. (2011). Research notebook: Computational thinking—What and why. The link magazine, 6, 20-23.