Computer science


Computer science is the discussing of computation, automation, & information. data processor science spans theoretical disciplines such(a) as algorithms, theory of computation, as well as information theory to practical disciplines including the design and carrying out of hardware and software. data processor science is broadly considered an area of academic research and distinct from computer programming.

Algorithms and data structures are central to computer science. The theory of computation concerns summary models of computation and general class of problems that can be solved using them. The fields of cryptography and computer security involve studying the means for secure communication and for preventing security vulnerabilities. Computer graphics and computational geometry address the vintage of images. Programming language theory considers approaches to the version of computational processes, and database impression concerns the supervision of repositories of data. Human–computer interaction investigates the interfaces through which humans and computers interact, and software engineering focuses on the sorting and principles behind developing software. Areas such(a) as operating systems, networks and embedded systems investigate the principles and design behind complex systems. Computer architecture describes the construction of computer components and computer-operated equipment. Artificial intelligence and machine learning purpose to synthesize goal-orientated processes such(a) as problem-solving, decision-making, environmental adaptation, planning and learning found in humans and animals. Within artificial intelligence, computer vision aims to understand and process concepts and video data, while natural-language processing aims to understand and process textual and linguistic data.

The essential concern of computer science is establish what can and cannot be automated. The Turing Award is generally recognized as the highest distinction in computer science.

Fields


Computer science is no more approximately computers than astronomy is about telescopes.

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 produced up of representatives of the Association for Computing Machinery ACM, and the IEEE Computer Society IEEE CS—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, human–computer interaction, computer graphics, operating systems, and numerical and symbolic computation as being important areas of computer science.

    Theoretical Computer Science is mathematical and abstract in spirit, but it derives its motivation from the practical and everyday computation. Its goal is to understand the sort of computation and, as a consequence of this understanding, administer more fine methodologies.

    According to Peter Denning, the fundamental question underlying computer science is, "What can be automated?" Theory of computation is focused on answering fundamental questions about what can be computed and what amount of resources are asked to perform those computations. In an try tothe first question, computability theory examines which computational problems are solvable on various theoretical models of computation. Thequestion 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, is an open problem in the theory of computation.

    Information theory, closely related to probability and statistics, is related to the quantification of information. This was developed by Claude Shannon to find fundamental limits on signal processing operations such as compressing data and on reliably storing and communicating data. Coding theory is the examine of the properties of codes systems for converting information from one throw to another and their fitness for a particular application. Codes are used for data compression, cryptography, error detection and correction, and more recently also for network coding. Codes are studied for the purpose of designing efficient and reliable data transmission methods.

    Data tables and algorithms are the studies of normally used computational methods and their computational efficiency.

    Programming language theory is a branch of computer science that deals with the design, implementation, analysis, characterization, and classification of features. It falls within the discipline of computer science, both depending on and affecting mathematics, software engineering, and linguistics. this is the an active research area, with numerous committed academic journals.

    Formal methods are a particular kind of mathematically based technique for the specification, development and verification of software and hardware systems. The usage of formal methods for software and hardware design is motivated by the expectation that, as in other technology disciplines, performing appropriate mathematical analysis can contribute to the reliability and robustness of a design. They construct an important theoretical underpinning for software engineering, particularly where safety or security is involved. Formal methods are a useful adjunct to software testing since they help avoid errors and can also render a expediency example for testing. For industrial use, tool guide is required. However, the high equal of using formal methods means that they are usually only used in the development of high-integrity and life-critical systems, where safety or security is of utmost importance. Formal methods are best referred as the applications of a fairly broad variety of theoretical computer science fundamentals, in particular logic calculi, formal languages, automata theory, and program semantics, but also type systems and algebraic data types to problems in software and hardware standards and verification.