At least, I learned something connected with semiotics before, when I was an undergraduate student. But computer science, or computation, is a brand-new field to me. Before I touch this field, I felt it is really cool and challenging. It is like one of the greatest inventions and social changes has a great influence on the human beings. So I finished all the free course connected with Python on the codecademy website. After coding with my own hands, I felt computation is not harder than I thought. In Python, all the sentences quoted by “”” and “”” or led by // are symbols that mean things, since the computer will automatically ignore these words. Besides, other sentences without quotation mark or slashes can be treated as the symbols that mean things, but they can only be read in a particular form.
According to Prof. Dasgupta, computer science is an artifact. Compared with natural science, which devotes itself to figure out the existing functions of the organs, fossils, or oxygen, computer science, as an artifact, whose purpose and functions are all defined by human beings, is decodable. As an outsider, I really hope coding and computation can be as easy as possible, so I cannot help but ask why computers cannot use natural language to code. English may cannot perform this task, but French or German which are more rigorous than English still could not meet the requirements. There is an impassable gulf between natural language and computer language. I think the root of this gulf is that there is a huge difference between how do human beings think and how do computers understand. People use language of thought to communicate, but computers are trying to understand all the descriptive language.
But we can see the shrinking gap between computer language and natural language from the history of coding. People use 0 and 1 as the basic component of coding at first. It is very hard to memorize, to check, and read by human beings. But now we have a java script, python and so many other computer languages. They are really similar to the natural language, except for the fixed form and arrangement.
With the help of computer language, not only we could code, we can also have . The core of computational thinking is the problem-solving skill, which is reformulate a difficult problem into one we know how to solve (Jeannette M. Wing.) For example, IOS system is a relatively closed system, compared with Android. Yes, it has some open-source bits, but the vast majority of the operating system are closed-source. There is no real possibility of changing the settings by an application. So, how do some music apps realize the function that can display the scrolling lyrics on the screen when the phone is locked. Even if the iTunes and Music cannot implement function. Those computers reformulate this hard question into one they know how to solve. They photoshopped every lyric on the same posters slide by slide, and change the posters one by one every several seconds. To a user, it looks like the poster never changes, only the lyrics are rolling. I think this is really a smart practice. If we could apply this computational thinking into daily life, it still could solve some hard problems.
Questions:
Why they cannot define a same framework or arrangement of different computer language?
References:
[1] Denning, Peter J., and Craig H. Martell. Great Principles of Computing (Cambridge, MA: MIT Press, 2015).
[2] Wing, Jeannette. “Computational Thinking.” Communications of the ACM 49, no. 3 (March 2006): 33–35
[3] Subrata Dasgupta, It Began with Babbage: The Genesis of Computer Science. Oxford, UK: Oxford University Press, 2014. Excerpts: Prologue and Chapter 1.