## What is it?

Computational thinking consists of four large parts, namely decomposing, pattern recognition, abstraction, and algorithm, each of which performs its role to enable computational thinking to solve many problems, complete a series of functions, and understand human behavior. Decomposing As the first component of computational thinking, it decomposes a large process or problem into smaller processes and problems, and then solves each task in the process from simple to difficult, and finally completes each process to solve the whole problem. As the second component of computational thinking, pattern recognition can notice or identify similarities or common differences to help us make predictions or guide us to take a range of methods reducing the repetition rate of the action and improving the efficiency of the behavior. Abstraction, as the third component of computational thinking, is also the hardest part compared to the other three components. The reason is that it needs to look for the general law behind the pattern recognition part of the pattern recognition, that is from phenomenon to essence. Its main function is: "using abstractions to compose modules into a system, to enable seamless execution of computational processes. (Xu and Zhang 2022)” As the fourth component of computational thinking, the algorithm represents a series of steps in a computer to solve a problem. An algorithm can be specific or generic, and it is precisely these algorithms that computer programs perform to accomplish specific tasks. It should be noted that according to Xu and Zhang (2022) qualified algorithms have five properties: finiteness, determinism, inputability, outputability, and validity.

The four components of computational thinking are also the underlying logical order for learning various programming languages later. For example,whether we get a requirement task or ask us to achieve the goal through JS or JAVA or C, the process is similar. First of all, we should break down the requirement of decomposing and make it a few small tasks. Then,in our subsequent learning process, we can also use tools such as flowcharts to make our thinking clearer. Second, we need to observe and identify the similarities and differences in the process, which is to take advantage of the pattern recognition feature of computational thinking. Then we need to summarize a series of laws of the processes and patterns we observe and identify, that is, abstract abstraction. For example, if we abstract the law of a task that has a circular nature, then we can use statements with circular syntax such as FOR or if else in the next step to repeat the same steps. The last step is to use the program code to make the rules we summarized earlier use the computer to achieve our needs, which is also similar to the fourth component of computational thinking, the algorithm alogorithm.

Computational thinking is the essence of the computer profession and can even solve most real-world problems. Writing code is the last step of programming, that the real difficulty is not writing programming languages(writing code), but how to use computational logical thinking to decompose each step after getting the project or requirement, observe the similarities and differences of each step, and then use mathematical and logical thinking to refine each step into an algorithm into code. So what is really difficult is the logical thinking of the first three steps, and writing code is only the last natural part after the first three steps are completed. Therefore, in the future computer career or even when we comes to solve most real-world problems, we need to spend more time exercising our logical skills in the three aspects of decomposition, pattern recognition and abstraction, because only the first three steps of computational thinking can be of high quality. To make sure that the code we write at the end or the way we solve the problem is concise and efficient.

## Reference list (Whole websites)

Anguera, A., Lara, J.A., Lizcano, D. et al. 2020.Turing: The Great Unknown. Foundations of Science27(3),pp. 1203–1225.Available at: https://doi-org.abc.cardiff.ac.uk/10.1007/s10699-019-09596-6 [Accessed:14Oct 2022]

Courtney, M., and Du, X. 2015. Developing your academic study skills. SAGE Publications, Ltd. Available at: https://dx.doi.org/10.4135/9781473910232

Ellis, S., Carette, B., Anseel, F. and Lievens, F. 2014. Systematic Reflection: Implications for Learning From Failures and Successes. Current Directions in Psychological Science23(1), 67–72. https://doi-org.abc.cardiff.ac.uk/10.1177/0963721413504106

Xu, Z. and Zhang, J. 2022. Computational Thinking: A Perspective on Computer Science. Singapore:Springer. Available at: https://link-springer-com.abc.cardiff.ac.uk/chapter/10.1007/978-981-16-3848-0_4 [Accessed: 13 Oct 2022]

## contact

Write down some thoughts about CT (this would be send to personal emil address):