Thoughts on Computer Science

Source: Internet
Author: User

Like many people, I am a college student majoring in computer science. I have been studying various programming languages and algorithms day and night over the past few years. However, whenever I go deeper in this field and look back at the word computer science, I become increasingly unable to understand what it actually means. Coincidentally, it seems that not only do I think so, even when I am wandering around a forum on weekdays, I can often see people with the same sigh (of course, simply complaining is a different story ). Maybe you cannot be aware of the seriousness of the problem.
Can science really train programmers?

 

Computer Science of Science

Let's start with computer science. You may want to chew on your temper first, and explore all kinds of contemporary science:

Mathematics (Mathematics), Physics (physics), chemistry (chemistry), biology (biology), Psychology (Psychology), medicine (Medicine ),
Philosophy (philosophy), economics )......

It seems that all universally recognized science does not have a science suffix, and even literature is the same as our close cousin electronics. In other words, computer
Science makes people feel as if they are not science, and they have to emphasize that they are a science. What's even more embarrassing is that it seems that only pseudo science is similar to us to look at all scientific directories. I can't help thinking about myself: Is computer science really scientific?

The following uses my personal experience as an example. In the spring of this year, I heard a lecture about mechanical arm. The speaker first introduced that robotic arm can simulate human consciousness to automatically respond. Because the Speaker himself studied neurology, the whole lecture was about how to obtain and analyze neural signals and the functions implemented by mechanical arm. How to simulate the movements of a mechanical arm is not described in detail. Undoubtedly, simulating neural signals is just as difficult as simulating human consciousness. But for the speaker himself, he seems to think that if accurate neural signals can be analyzed, then the mechanical arm is almost complete. The specific implementers and programmers are in a very low position, far from reaching the core position. I can't help wondering why a neuroscientist, rather than a programmer, is the leader in an electronic project like mechanical arm?

Perhaps the status of programmers in the field of scientific research cannot be explained. If we go deeper, we will find that computer science is not as scientific as it is. In other words, many people will think that these programmers making a living by hitting the keyboard are scientists?If the programmers developed by the school are not scientists, how can computer science be regarded as science?

 

Current situation of computer science

Computer science is like a hodgedge of programmers, mathematicians, and even a few psychologists because of historical reasons and an all-encompassing nature of computer programs.

Paul Graham, author of hacker and painter, wrote in his book:


Maybe one day, "Computer Science" is split into several independent parts. This may be a good thing. If my own field-hackers-can be independent, it would be better.

Bundling different types of work may be convenient for administrative management, but may cause confusion. This is another reason why I do not like the word "computer science. The work of some "computer scientists" may also be called computer experimental science. However, mathematicians and hackers at both ends are not doing computer science research.

Mathematicians do not seem to care about computer or mathematics. They were so happy to come to this new place that they began to work hard to prove the new theorem, just as the mathematicians in the Mathematics Department did. In a short time, they may forget that the sign outside the office building was written as "Computer Science Department". However, for hackers, the "Computer Science" label is troublesome. If hackers' work is called science, it will make them feel like they should be doing science. Therefore, hackers in universities and laboratories do not want to do what they really want (design beautiful software). Instead, they feel that they should write some research papers.

 

I strongly agree with the author of hacker and painter. I suggest dividing computer science into multiple families. If you were a professional student, haven't you ever found a ridiculous fact? In the same computer system, there are both ACM contestants who are immersed in algorithms until late at night, and who are well aware of the underlying system and are prepared to develop applications. The intersection between them is indeed a program, but if they exchange their work on hand, the result will be a mess. They are all computers.
Even the best students in science, why is it so different? I think the answer should be "specialized in the industry ".

Computer science does not contain many contents. In some cases, you can abstract the problem and create a model to make the result look like a math. In other cases, you need to analyze the level of the problem and solve it gradually, the result looks like a project. The former is theory, and the latter is practice. Every science has this content, but the structure of computer science is huge, and no one can find its right. Taking artificial intelligence as an example, is this a programmer's problem or a psychologist? In another example, are programmers who design efficient algorithms considered mathematicians?

Maybe we should avoid these questions that are not well answered in a timely manner and focus on contemporary schools. Computer Science, a strange major that brings together different students to receive the same education, should be divided. I think the first thing we need to do is change the name of today's mathematics department to show the differences between the matters and programmers. Pure Mathematics is a good choice, and it is also a tribute to the mathematician hard. Computer science should be divided into two parts to free programmers who hate computer algorithms. Specifically applied
Mathematics and algorithms and software design. The former seems to have not been seen yet, but it does come from some schools. Of course, I can only talk about it. For example, I can't give an answer to the future of the programmers who study algorithms, or the software developers who don't know algorithms.


Solution


Undoubtedly, we are not satisfied with today's computer science majors. The viewpoint is direct: as a major, two extreme students should not be trained.

The solution is idealistic and hard to implement: we need to learn both software development and computer algorithms. The former has a wide range of knowledge, including programming languages, operating systems, development processes (design patterns), and other underlying knowledge and practical development experience. The latter is very deep. In short, it is all kinds of applied mathematics and derived algorithms. The reason why it is difficult to implement is that every aspect requires sufficient time to fully understand, which is too much for college students. In particular, there are still many people who are arguing about whether to choose to learn C ++ or Java first, and whether to learn C and then Java. All the solutions are nonsense. For college students who are not so rich in time, they must be properly connected to each other on weekdays to stay biased. As for the future, I think an example is enough to illustrate everything: Donald
Knuth has both writtenTaocp,Also inventedTexAndMetafont.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.