In its most general sense, computer science 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, formal grammars, etc. to more concrete subjects like programming languages, software, and computer hardware. As a scientific discipline, it differs significantly from and is often confused with mathematics, programming, software engineering, and computer engineering, although there is some degree of overlap with these and other fields.