Reflection

As a computer science student, I have been learning computer thinking from scratch in just a few months. In the process of learning and iterating myself, I have gradually come to appreciate the differences between computer thinking and natural human thinking. In my daily life, after intense thinking, when faced with an unsolved algorithmic problem, my brain will always go for the easier problems to prioritise, in exchange for a break.

For example, when I go to subtract, I first look for situations where the subtracted number is equal to the number being subtracted in these problems. In this case, instead of subtracting one place at a time and considering the borrowed places, we just need to make sure that each place is equal to the subtracted number and write the result 0. In this case, it is much easier to check that each place is the same than to subtract each place and then consider the borrowed places. Secondly, I would look for subtraction problems that do not require a debit and where it is immediately obvious that the result is a positive number, as this requires much less thought.

Finally, I would consider solving problems with and without debits. This is inherent to human thinking and it reduces the effort and time required, in computer language, in terms of time and space complexity. Computers, however, do not rank problems in terms of complexity and then prioritise simple problems. For computers, they can solve thousands of algorithmic problems in a very short period of time. Humans are always subconsciously confused when faced with the unknown, and when faced with an abstract problem, the first step is to convert the abstract problem into a concrete one to facilitate the human brain's understanding. For example, to understand a large number a human would use recursive thinking, whereas a computer would directly visualise the number. Learning and understanding computational thinking will help me solve many problems in my study plans and future career. Computational thinking will help me to become more rational, rigorous and logical. Computational thinking can help me to become an innovator. For example, in moudle320 I need to make a business process map and I will analyse my business plan from the perspective of both the user and the developer. The first step is to find out what features the user needs in the software, and then to implement the features that the developer needs based on the skills and tools that the developer has. The user needs to give feedback to the developer, and the developer needs to update the product based on the user's feedback. Learning about computational thinking helps me to break down big problems into smaller ones, and then use algorithms to solve each smaller problem. Therefore, computational thinking is very important in my study plan and my future career.