Areas of computer science

As a discipline, computer science spans a range of topics from theoretical studies of algorithms and the limits of computation to the practical issues of implementing computing systems in hardware and software. CSAB, formerly called Computing Sciences Accreditation Board – which is made up of representatives of the Association for Computing Machinery (ACM), and the IEEE Computer Society (IEEE-CS)[20] – identifies four areas that it considers crucial to the discipline of computer science: theory of computation, algorithms and data structures, programming methodology and languages, and computer elements and architecture. In addition to these four areas, CSAB also identifies fields such as software engineering, artificial intelligence, computer networking and communication, database systems, parallel computation, distributed computation, computer-human interaction, computer graphics, operating systems, and numerical and symbolic computation as being important areas of computer science.[18]

Theoretical computer science

The broader field of theoretical computer science encompasses both the classical theory of computation and a wide range of other topics that focus on the more abstract, logical, and mathematical aspects of computing.

Theory of computation

According to Peter J. Denning, the fundamental question underlying computer science is, "What can be (efficiently) automated?"[8] The study of the theory of computation is focused on answering fundamental questions about what can be computed and what amount of resources are required to perform those computations. In an effort to answer the first question, computability theory examines which computational problems are solvable on various theoretical models of computation. The second question is addressed by computational complexity theory, which studies the time and space costs associated with different approaches to solving a multitude of computational problems.
The famous "P=NP?" problem, one of the Millennium Prize Problems,[21] is an open problem in the theory of computation.
DFAexample.svg Wang tiles.png P = NP ? GNITIRW-TERCES Blochsphere.svg
Automata theory Computability theory Computational complexity theory Cryptography Quantum computing theory

Information and coding theory

Information theory is related to the quantification of information.This was developed by Claude E. Shannon to find fundamental limits on signal processing operations such as compressing data and on reliably storing and communicating data. Coding theory is the study of the properties of codes and their fitness for a specific application. Codes are used for data compression, cryptography, error-correction and more recently also for network coding. Codes are studied for the purpose of designing efficient and reliable data transmission methods.

Algorithms and data structures

O(n2) Sorting quicksort anim.gif Singly linked list.png SimplexRangeSearching.png
Analysis of algorithms Algorithms Data structures Computational geometry

Programming language theory

Programming language theory is a branch of computer science that deals with the design, implementation, analysis, characterization, and classification of programming languages and their individual features. It falls within the discipline of computer science, both depending on and affecting mathematics, software engineering and linguistics. It is a well-recognized branch of computer science, and an active research area, with results published in numerous journals dedicated to PLT, as well as in general computer science and engineering publications.
\Gamma\vdash x: \text{Int} Ideal compiler.png Python add5 syntax.svg
Type theory Compiler design Programming languages

0 Response to "Areas of computer science"

Post a Comment