In its most general sense, Computer Science (CS) is the study of computation and information processing, both in hardware and in software. In practice, computer science includes a variety of topics relating to computers, which range from the abstract analysis of algorithms to more concrete subjects like programming languages, software, and computer hardware.
Computer Science has roots in electrical engineering, mathematics and linguistics. In the last third of the 20th century computer science has become recognized as a distinct discipline and has developed its own methods and terminology.
The Church-Turing thesis states that all known kinds of general computing devices are essentially equivalent in what they can do, although they vary in time and space efficiency. This thesis is sometimes treated as the fundamental principle of computer science. Most research in computer science has been related to von Neumann computers or Turing machines (computers that do one small, deterministic task at a time), because they resemble most real computers in use today.
"Computer science is no more about computers than astronomy is about telescopes"
-- Edsger Dijkstra
Computer science studies what programs can and cannot do (computability and artificial intelligence), how programs should efficiently perform specific tasks (algorithms), how programs should store and retrieve specific kinds of information (data structures), and how programs and people should communicate with each other (user interfaces and programming languages).