So, I’m not really sure what Computer Science is, or what a Computer Scientist does. Can you explain what is Computer Science?
In short, Computer Science is not about using computers or even writing programs, although Computer Scientists often do these things. Rather computer science is about the science of solving problems with computers.
Full Answer
Computer Science combines theory and practice, and it has revolutionized the way we think about everything. However, there are many misconceptions about what Computer Science is all about. Some believe that Computer Science is about sending emails, browsing the Internet, or using software like MS Word or MS Excel. Others think that Computer Science is simply about programming. Still others think Computer Science is just a bunch of Math.
However, Computer Science is not about using software, such as spreadsheets (like Excel), word processors (like Word), or image tools (like Photoshop). It is not about expertise in computer games, writing content in websites, assembling computers, knowing which computers are best buys, or the tools we use to carry out computation. It is not just about Mathematics, although it uses math just like many other fields in Science and Engineering (such as Chemistry, Physics, Mechanical Engineering, and Aerospace Engineering, to name a few). Computer Science is not just about building computers or writing computer programs!
It is rumored that Edsger Dijkstra, a famous award-winning computer scientist, once said:
"Computer Science is no more about computers than Astronomy is about telescopes." [1]
Wait a minute, hold the phone! What do you mean that Computer Science is not about writing computer programs?
In summary, this means Computer Science is not about using computers to solve problems or writing programs or software. Rather Computer Science is about science of solving problems with computers.
Full Answer
Yes, computer programs and software are often a byproduct of what computer scientists do. But, Computer Science is much more than just writing programs or software.
So this brings us back to the question: What is Computer Science?
One of the more concise definitions answering this question is:
Computer Science is the systematic study of the feasibility, structure, expression, and mechanization of the methodical processes (or algorithms) that underlie the acquisition, representation, processing, storage, communication of, and access to information [2].
The emphasis here is on understanding, analyzing, and explaining how algorithms work and why they work in the way they do. This means that Computer Science is about the principles behind building the software packages, the algorithms used in computer games, the technology behind the internet, and the architecture of computing devices.
Many people label Computer Science as being nothing more than Information Technology (IT). However, Information Technology is the study of how to solve business problems with computer technology, and how to maintain, upgrade, and troubleshoot computer systems within an organization. It is the application of computers and the Internet to store, retrieve, transmit, and manipulate data and information, in the context of a business or other enterprise. The emphasis here is on solving specific business problems with the available technology.
On the other hand, the discipline of Computer Science focuses on much more fundamental questions. The discipline of computer science is concerned with the study of problem solving with computers. It does not consist of solving problems with computers. It is not enough to answer the question: “How do we solve a particular problem with the help of a computer?”
Wait another minute! You mean that not only is Computer Science not about programming, but it isn’t even about using a computer to solve problems? Huh!!!
Once again, in summary, Computer Science is not about using a computer to solve a particular problem, but rather it is about the science of solving problems with computers.
Full Answer
Yes, Computer Science does not focus on solving problems with computers, although that is often the end result of what we do. Computer Science is about what general principles underlie the notion of problem solving with computers? The discipline of Computer Science asks questions like:
- What are the possible different ways to solve a problem?
- How are the solutions for a particular problem related?
- What technique is best for a particular problem?
- What do we mean by a “best” solution for a problem?
- In what ways are solutions for different problems related?
- How do we verify that we have a solution for a problem?
- What problems can, and cannot, be solved with a computer?
The most important tenet underlying all of computing is: “what computational processes can be efficiently automated and implemented?” [2] The emphasis is on efficiency. Some solutions to problems are so inefficient that no matter how much computing power we throw at the problem, a correct result will not be generated for many millennia, if ever.
Computer scientists design and analyze algorithms to solve problems and study the performance of computer hardware and software [3]. They specialize in the theory of computation and the design of computational systems. Although knowing how to program is essential to the study of computer science, it is only one element of the field. The problems that computer scientists encounter range from the abstract – determining what problems can be solved with computers and the complexity of the algorithms that solve them – to the tangible – designing applications that perform well on handheld devices, that are easy to use, and that uphold security measures [3].
Computer Science is a young discipline, existing as a separate field of study only since about 1953. While the development of early computers involved disciplines such as electrical engineering and physics, Computer Science grew primarily out of the discipline of mathematics. Today, Computer Science is an interdisciplinary field that is both science and engineering at the same time, which is why academic Computer Science Departments can be found in Colleges of Science at many Universities, or Colleges of Engineering at most other Universities. This is because solving complex problems that lead to software solutions involves the application of both science and engineering, often at the same time. This means that Computer Scientists need strong problem solving skills with the motivation to investigate multiple ways of solving problems, and the ability to think at multiple levels of abstraction simultaneously. Yet, because the discipline of Computer Science is so young, the field is still developing the same kinds of axioms, principles, and laws that one would find in other disciplines (such as Physics or Chemical Engineering). This means that Computer Scientists also need lots of creativity and intuition as they develop new and unique solutions to different problems. Despite all of the tools and techniques that have been developed to design and implement large-scale high-quality complex software, Computer Science is still largely an art form. Donald Knuth once said:
"Computer Programming is an art, because it applies accumulated knowledge to the world, because it requires skill and ingenuity, and especially because it produces objects of beauty. A programmer who subconsciously views himself as an artist will enjoy what he does and will do it better."
This makes a career in Computer Science both challenging and rewarding, as it requires a large degree of imagination and the ability to integrate both theory and practice to solve the types of problems Computer Scientists encounter daily.
References
View All
[1] M.D. Haines, “Distributed runtime support for task and data management.” Technical Report CS-93-110 Colorado State University, 1993
[2] "What is Computer Science," https://www.cs.bu.edu/AboutCS/WhatIsCS.pdf, Boston University. (last verified 1/10/2017)
[3] "What is Computer Science," https://undergrad.cs.umd.edu/what-computer-science, University of Maryland. (last verified 1/10/17)