We could express algorithm in four different ways: Natural language (Simple English), Flow chart (a graphical expression), Pseudocode (“generic artificial language”), and Programming language (a formal language that is used to communicate with computers). It is important to consider the order of the instructions for algorithms, and the instructions/tasks should also be as specific as possible. In the beginning we reviewed the definition of algorithm from last year: an algorithm is a step-by-step clear instruction to solve a problem in a finite amount of time. Writing programs needed large amount of thinking, and though the process of debugging was frustrating, the joy and satisfaction that I gained after my program finally worked was unspeakable. This week we reviewed some contents learned from last year and learned new things based on those concepts, such as how to write searching algorithms.