guide to Computational Thinking

Computational thinking is a series of thinking activities covering the breadth of computer science, such as problem solving, system design, and human behavior understanding, using the basic concepts of computer science.

Computational thinking is an indispensable way of thinking in the theoretical study of computer science. It is a way of reinterpretating a seemingly difficult problem into a way that we know how to solve it through reduction, embedding, transformation and simulation; It is a recursive thinking, a parallel processing, a method of translating code into data and data into code, and a type checking method promoted by multidimensional analysis; It is a method based on separation of concerns (SoC method) that uses abstraction and decomposition to control complex tasks or design huge complex systems; It is a way of thinking to choose an appropriate way to state a problem, or to model the relevant aspects of a problem to make it easy to deal with; It is a kind of thinking method of system recovery from the worst case by means of prevention, protection, redundancy, fault tolerance and error correction; It is a thinking method of using heuristic reasoning to seek solutions, that is, planning, learning and scheduling under uncertainty; It is a way of thinking that uses massive data to speed up calculation, and makes a compromise between time and space, processing capacity and storage capacity.[1]

My understanding of computational thinking is that computational thinking is a subject that can better understand how computers think, endow computers with life, and then learn how to think in terms of computers, so that we can better grasp the basic logic of computer science.

Learning computational thinking can help me better understand other disciplines in the computer field, and help me understand how computers think, and how to tell the computer my ideas, so that the computer can correctly and quickly execute my instructions.

Transforming my way of thinking through computational thinking can help me learn seemingly abstract syntax in various programming languages, and can help me maintain the enthusiasm and thinking of lifelong learning in my work after graduation.