Despite the name, Computer Science is not really a science of computers at all. Computers are quite remarkable electronic devices, but even more remarkable is what they can be made to do: simulate the flow of air over a wing, manage communication over the Internet, control the actions of a robot, synthesize realistic images, play grandmaster-level chess, learn how to automatically translate between languages, and on and on. Indeed, the application of computers in activities like these has affected most areas of modern life. What these tasks have in common has little to do with the physics or electronics of computers, what matters is that they can be formulated as some sort of computation. This is the real subject matter of Computer Science: computation, and what can or cannot be done computationally.
In trying to make sense of what we can get a computer to do, a wide variety of topics come up. There are, however, two recurring themes. The first is the issue of scale: how big a system can we specify without getting lost in the design, or how big a task can a computer handle within reasonable bounds of time, memory, and accuracy A large part of Computer Science deals with these questions in one form or another. In the area of programming languages and methodology, for example, we look for notations for describing computations, and programming methodologies that facilitate the production of manageable and efficient software. In the theory of computation area, we study resource requirements in time and memory of many basic computational tasks.
The second theme concerns the scope of computation. Computers were originally conceived as purely numerical calculators, but today, we tend to view them much more broadly. Part of Computer Science is concerned with understanding just how far computational ideas can be applied. In the area of artificial intelligence, for example, we ask how the function of the human brain can be expressed in computational terms. In the area of human-computer interaction, we ask what sorts of normal day-to-day activities of people might be supported and augmented using computers. Scientific computing studies the world around us. Known and unknown quantities are related through certain rules, e.g. physical laws, formulating mathematical problems. These problems are solved by numerical methods implemented as algorithms and run on computers. The numerical methods are analyzed and their performance (e.g. accuracy, efficiency) studied. Problems, such as choosing the optimal shape for an airplane (to achieve, for example, minimal fuel consumption), finding the fair price for derivative products of the market, or regulating the amount of radiation in medical scans, can be modelled by mathematical expressions and solved by numerical techniques.