Reflection

Throughout the couple of weeks of Computational thinking class, I have learnt the definition of computational thinking and how it could be used in not only in my future study in college but in occupation.

Computational thinking can be defined as 'thinking like a computer' based on the words itself. But it is more like a process of breaking a big problem into smaller pieces or problems, and solve these little problems bit by bit, then we could finally get our solution without using any complex methods or algorithms. Or computational thinking can be also defined as 'extracting useful information and ignoring irrelevant things' in order to make a problem easier to be solved.

For instance, as a normal human being, if I were to solve a problem like 5 x 6, by using a computational way, I need to break 5 x 6 into five 6s adding together, then I need to break each 6 into six ones, finally, by counting how many ones there are, we can get the finally result. But in computer, mathematical problem like this can be break into even smaller pieces, such as binary number.

Nowadays, thanks to the fast development of the industry and talented developers, we do not need to use computational thinking on just solve basic problems like 5 x 6, but it is still important to put computational thinking in use in bigger projects. It can be used as a planning tool.

All the software that we are using now, we can see them as a bunch of complex problems, a combination of many small functions (solved problems), developers are like computers, they are developing software like solving a big problem by breaking it into pieces, that is where our software's updates came from, and why software are getting more functions and getting easier to use.

This kind of methodology is going to make a great impact on my study. It does not matter whether I learn new things from internet or class, extracting key information is important and ignoring everything that is useless for me to understand the new knowledge. It is going to make my study more efficient.

It will also affect the way I think or the way I solve problem and develop my projects. Planning before getting into the project, dividing the project into numbers of smaller projects, focusing one at a time and finally complete the project piece by piece. This would allow me to avoid as many errors as I can, debugging while developing, do not move to the next pieces until getting current one run perfectly.

back to top