Computer science (also called computing science) is the study of the theoretical foundations of information and computation and their implementation and application in computer systems. One well known subject classification system for computer science is the ACM Computing Classification System devised by the Association for Computing Machinery.
Computer science can be described as all of the following:
Algorithms and data structures
- Algorithms – Sequential and parallel computational procedures for solving a wide range of problems.
- Data structures – The organization and manipulation of data.
Communication and security
Computer architecture
- Computer architecture – The design, organization, optimization and verification of a computer system, mostly about CPUs and Memory subsystems (and the bus connecting them).
- Operating systems – Systems for managing computer programs and providing the basis of a usable system.
Computer graphics
- Computer graphics – Algorithms both for generating visual images synthetically, and for integrating or altering visual and spatial information sampled from the real world.
- Image processing – Determining information from an image through computation.
- Information visualization – Methods for representing and displaying abstract data to facilitate human interaction for exploration and understanding.
Concurrent, parallel, and distributed systems
- Parallel computing - The theory and practice of simultaneous computation; data safety in any multitasking or multithreaded environment.
- Concurrency (computer science) – Computing using multiple concurrent threads of execution, devising algorithms for solving problems on various processors to achieve maximal speed-up compared to sequential execution.
- Distributed computing – Computing using multiple computing devices over a network to accomplish a common objective or task and thereby reducing the latency involved in single processor contributions for any task.
Programming languages and compilers