What is Computer Science?
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, whether such information is encoded in bits and bytes
in a computer memory or transcribed in genes and protein structures in a human
cell. The fundamental question underlying all of computing is: what
computational processes can be efficiently automated and implemented?
To tackle this seemingly simple question, computer scientists work in many
complementary areas. They study the very nature of computing to determine which
problems are (or are not) computable. They compare various algorithms to
determine if they provide a correct and efficient solution to a concrete
problem. They design programming languages to enable the specification and
expression of such algorithms. They design, evaluate, and build computer systems
that can efficiently execute such specifications. And, they apply such
algorithms to important application domains.
What Computer Science Is Not…
Computer Science is not just about building computers or writing computer
programs! Computer Science is no more about building computers and developing
software than astronomy is about building telescopes, biology is about building
microscopes, and music is about building musical instruments! Computer science
is not about the tools we use to carry out computation. It is about how we use
such tools, and what we find out when we do. The solution of many computer
science problems may not even require the use of computers—just pencil and
paper. As a matter of fact, problems in computer science have been tackled
decades before computers were even built. That said, the design and
implementation of computing system hardware and software is replete with
formidable challenges and fundamental problems that keep computer scientists
busy. Computer Science is about building computers and writing computer
programs, and much much more!
What Does It Take To Be A Successful Computer Scientist?
Computer Science is about problem solving. Thus, the qualities of a good
computer scientist include a passion for finding elegant solutions, an ability
to use mathematical analysis and logical rigor to evaluate such solutions,
creativity in modeling complex problems through the use of abstractions,
attention to details and hidden assumptions, an ability to recognize variants of
the same problem in different settings, and being able to re target known
efficient solutions to problems in new settings. If you like to solve puzzles,
then computer science is for you!