It has been a long time since the last time I wrote a blog for the computer science course because of lots of activities. We have learnt a lot during these weeks, and here I am putting this blog together to help myself reviewing.
Firstly, we learnt about algorithm. Algorithm is a set of step-by-step clear specific instructions to solve a specific problem in the most efficient way in an infinite of time. The order of instructions is always critical. There are several properties of algorithm. They are finiteness (reasonable), definiteness (precisely defined, rigorously and ambiguously specified for each case), input (quantities which are given to it initially before the algorithm begins), output (quantities which have a specified relation to the inputs) and effectiveness (be sufficiently basic to make the principles could be done exactly). Here is an example of algorithm expression practice.

Also, to write a proper or perfect algorithm, we need to understand the problem. We are supposed to understand the input (what we already know & have and what is missing), the output (what result we want), orders, decisions and repetitions. For example, we want to design an algorithm to figure out what clothes we are going to wear in different weather conditions. To achieve this goal, we must find the input (temperature & weather), the output (what clothes to wear), the order (how should the instructions, for example, of putting on T-shirt or putting on skirt, be arranged), the decisions (if rain, when should we wear raincoat) and repetitions (if there are not enough clothes, repeat this algorithm). If the question is fully understood, the corresponding algorithm could be produced accurately and relatively easily.
In class, we also watched several videos. One of them is called “The Secret Rules of Modern Living: Algorithms”, and it introduced a bunch of algorithm to me. The first one is face detection algorithm, which can identify basic elements of human faces and locate people’s smiling faces in the camera. Also, there are an algorithm called “chili game algorithm“, which is a set of instructions that can guide the follower to victory in any situation. It really amazed me that with clear, strict logic and rigorous design of words and orders, things can be so easy to manipulate and manage.
In addition, we have done several activities to obtain a better understanding of algorithm. We’ve done a presentation called “Algorithm magic” and a role-playing activity related to algorithm. In the presentation, my group is assigned to explain Tic-Tac-Toe and the method that will never let you fail. At the night before presentation, my group member and I spent one and a half hour on decomposing and abstracting the steps of playing with the chess, and we develop the explanation of the steps with pattern recognition and algorithm thinking to make sure everyone follow our thoughts. I’m not good at math and logic as my members, but by participating this activity and showing it to my classmates, I really practiced the skills of communicating and computational thinkings. For the role-playing activity, we are supposed to find a proper route in a map that can pass every scenic spots without overlaps. This reminds me of my happy childhood when I’ve done lots of these to train a meticulous thinking.

In conclusion, these weeks are really enriched with knowledge. I got a little bit deeper into the ocean of computer science, and I’m really looking forward to find out more treasure under the ocean bottom.