Computer science is no more about computers than astronomy is about telescopes.
What is computer science?
Computer science is the study of all aspects of computing. Given a problem, the first and most fundamental question a computer scientist asks is: Can the solution to this problem be computed? If the problem can be computed, then we want to determine the most efficient method for computing the solution. These may seem to be questions regarding computers, but they are not. We ask these questions regardless of the computing device we use.Donald Knuth, a famous computer scientist, states that there are two things that computer scientists have in common. First, they are able to jump between different levels of abstraction seamlessly – they can quickly switch from considering a problem on an abstract level to considering the same problem in terms of its implementation. Second, they are able to analyze a problem by considering many different cases. Computer scientists are not seeking a “unifying theory.” They are quite comfortable with non-uniformity. Generally, computer science is about a way of thinking about problems. If you enjoy solving puzzles, you'll probably enjoy computer science.
Of course, many computer scientists do focus on computers in their research. Many people consider only programming when they think of pursuing a degree in computer science. While this is certainly an aspect of computer science, the entire field includes much more than just programming. As computer scientists, we need to understand how to build a computer, how to make a computer do what we want it to do, and how to verify that the computer will actually do what we expect it to do. In addition, we need to understand how best to represent and report information, how to access our data most effectively within a computer, and how to solve a computation problem as quickly as possible.
When we consider solving a problem using a computer, we need to begin by asking ourselves many questions. For example, how many processors do we have to solve our problem? Do we need to consider energy conservation when we design our system? We also need to tailor our analysis to the application we are addressing. If we are making a system to be used by other people, how technically adept to we expect our users to be? Do we have to worry about people who may want to “hack” our system for inappropriate use? Each of these questions encompasses an entire branch within computer science – parallel and distributed computing, energy-aware computing, human-computer interaction, and computer security, respectively.
As computer scientists, we need to be able to understand problems and solve them systematically. We need to be able to determine analytically how quickly we can solve a given problem. We need to be able to prove that our proposed solution is correct. Once we have completed this analysis, then we can begin programming.
Increasingly, computer science is the driving force for advances and break through in other disciplines. For example, top experts in biology have said that biology is no longer a hypothesis driven discipline; instead it is a data-intensive discipline. Numerous other emerging fields such as nano-computing, quantum computing, experiential computing and the Semantic Web, all involve computing and computer science as integral computing. Consequently, computer science is increasingly a multi-disciplinary field. Faculty and labs in Computer Science at UGA has extensive collaborations in the areas of engineering (as members of the Faculty of Engineering ), bioinformatics (as members of the Institute of Bioinformatics ), life sciences (as members of the Biomedical and Health Sciences Institute ), management and business, as well as artificial intelligence and cognitive science (as members of the AI center ).
Computer science at UGA
The computer science professors at UGA research many areas including
- how best to perform tasks on a computer (algorithms),
- how best to store data on a computer and how to retrieve information from large files of data (data bases and data mining),
- how to solve problems using several computer processors (parallel and distributed computing),
- how to get computers to communicate with one another (networking),
- how to determine what can be solved on a computer and how long will it take to find a solution (computability and computational complexity),
- how to make a computer's interface clear to a user (human-computer interaction),
- how to represent information on the worldwide web more effectively (semantic web),
- how to make sure computers operate reliably in time-constrained or energy-constrained situations (real-time and embedded computing), and
- how to make computers behave intelligently (artificial intelligence).
This list shows the broad spectrum of topics you can choose from if you study computer science at UGA. Specific projects covering current research in the above areas can be
found by going to the Web sites of various labs in the department as well as from faculty home pages .
What do UGA computer science graduates do?
As a computer scientist, you have many opportunities ahead of you. UGA graduates have worked at some of the world's best companies and research institutions after graduating. These include, among many others, Google, Yahoo!, Amazon, IBM research labs, Microsoft, Oracle, SAP, BEA systems, Intel, Samsung, Siemens, Verizon, SBC, Telcordia Technologies (Bellcore), Disney Animation, Lawrence Berkeley National Labs, National Library of Medicine and Sandia National Labs. Students who have obtained Ph.D.'s have taken positions at universities and industry R&D organizations.