Monday, October 8, 2012

Start to think like a computer scientist

Now since I am in csc236 course for a month, it is time to summarize what I have learned there, especially some new recognition about computer science.

 The story began from this summer. When I spent my summer vacation in my hometown, Beijing, I met a friend who studies computational algorithm. He is currently under the mentorship of the Turing award winner Andrew Yao, and has already learned about NP completeness and Cook-Sullivan theorem a bit. He started to show me everything about that theorem and knowledge that associated with NP completeness after knowing that Cook is teaching in my university. It was the first time that I began to recognize the magic of algorithm and I spent several weeks just trying to absorb some basic ideas of those algorithm like what is a Turing machine. Algorithm is really difficult and very abstract, for we can seldom find a real-life example to illustrate it. So at that time I regarded computer algorithm as a combination of tons of abstract concepts, mostly related to time complexity, and it could only be used to reduce the amount of time consumed by a few complex calculation. But meanwhile, some algorithms, especially those related to NP and even P-space questions are a kind of way to test which level our human intelligence could reach, and it is far interesting to know about things that the most intelligent people are studying on. Therefore, I felt a little bit disappointed when knowing that we had to spend several weeks on those simple(literally, not terminologically) inductions. But after a few weeks I found that inductions were not as simple as I thought because using induction smartly we could solve lots of complicated questions easily, and they were all evolved with a fundamental thinking pattern for computer science: recursive thinking.So I realized the reason why I found data structure stuff in csc148 was hard was just because I could not think recursively, in other words, I could not think like a computer scientist. Now I have already known that I have to get a good command of those induction patterns, and try to think about hard questions recursively using a proper induction method. Still a long way to go from induction to Cook theorem, but I will think like a computer scientist right from the starting point.

No comments:

Post a Comment