Computer science is the study of computation and information.[1][2] Computer science deals with theory of computation, algorithms, computational problems and the design of computer systems hardware, software and applications.[3][4] Computer science addresses both human-made and natural information processes, such as communication, control, perception, learning and intelligence especially in human-made computing systems and machines.[5][6][7] According to Peter Denning, the fundamental question underlying computer science is, What can be automated?[8][5]
Expression for Church numerals in lambda calculus Plot of a quicksort algorithm
Example of Computer animation produced using Motion capture Half-adder circuit
Computer science deals with the theoretical foundations of information, its computation and practical techniques for their application.
Its fields can be divided into theoretical and practical disciplines. For example computational complexity theory describes the amount of resources required to solve computational problems, while computer graphics and computational geometry emphasizes more specific applications. Algorithmics have been called the heart of computer science.[9] Programming language theory considers approaches to the description of computational processes, while software engineering involves the use of programming languages and complex systems. Computer architecture and computer engineering deals with construction of computer components and computer-controlled equipment.[5][10] Human–computer interaction considers the challenges in making computers useful, usable, and accessible. Artificial intelligence aims to synthesize goal-orientated processes such as problem-solving, decision-making, environmental adaptation, motion planning, learning, and communication found in humans and animals.
Good article