List of basic computer science topics
Encyclopedia
The following outline is provided as an overview of and topical guide to computer science:

Computer science
Computer science
Computer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...

(also called computing science) – study of the theoretical foundations of information
Information
Information in its most restricted technical sense is a message or collection of messages that consists of an ordered sequence of symbols, or it is the meaning that can be interpreted from such a message or collection of messages. Information can be recorded or transmitted. It can be recorded as...

 and computation
Computation
Computation is defined as any type of calculation. Also defined as use of computer technology in Information processing.Computation is a process following a well-defined model understood and expressed in an algorithm, protocol, network topology, etc...

 and their implementation and application in computer systems. One well known subject classification system for computer science
Computer science
Computer science or computing science is the study of the theoretical foundations of information and computation and of practical techniques for their implementation and application in computer systems...

 is the ACM Computing Classification System
ACM Computing Classification System
The ACM Computing Classification System is a subject classification system for computer science devised by the Association for Computing Machinery...

 devised by the Association for Computing Machinery
Association for Computing Machinery
The Association for Computing Machinery is a learned society for computing. It was founded in 1947 as the world's first scientific and educational computing society. Its membership is more than 92,000 as of 2009...

.

Mathematical foundations

  • Mathematical logic
    Mathematical logic
    Mathematical logic is a subfield of mathematics with close connections to foundations of mathematics, theoretical computer science and philosophical logic. The field includes both the mathematical study of logic and the applications of formal logic to other areas of mathematics...

     – Boolean logic
    Boolean logic
    Boolean algebra is a logical calculus of truth values, developed by George Boole in the 1840s. It resembles the algebra of real numbers, but with the numeric operations of multiplication xy, addition x + y, and negation −x replaced by the respective logical operations of...

     and other ways of modeling
    Mathematical model
    A mathematical model is a description of a system using mathematical concepts and language. The process of developing a mathematical model is termed mathematical modeling. Mathematical models are used not only in the natural sciences and engineering disciplines A mathematical model is a...

     logical queries; the uses and limitations of formal proof methods
  • Number theory
    Number theory
    Number theory is a branch of pure mathematics devoted primarily to the study of the integers. Number theorists study prime numbers as well...

     – Theory of the integer
    Integer
    The integers are formed by the natural numbers together with the negatives of the non-zero natural numbers .They are known as Positive and Negative Integers respectively...

    s. Used in cryptography
    Cryptography
    Cryptography is the practice and study of techniques for secure communication in the presence of third parties...

     as well as a test domain in artificial intelligence
    Artificial intelligence
    Artificial intelligence is the intelligence of machines and the branch of computer science that aims to create it. AI textbooks define the field as "the study and design of intelligent agents" where an intelligent agent is a system that perceives its environment and takes actions that maximize its...

    .
  • Graph theory
    Graph theory
    In mathematics and computer science, graph theory is the study of graphs, mathematical structures used to model pairwise relations between objects from a certain collection. A "graph" in this context refers to a collection of vertices or 'nodes' and a collection of edges that connect pairs of...

     – Foundations for data structures and searching algorithms.
  • Game theory
    Game theory
    Game theory is a mathematical method for analyzing calculated circumstances, such as in games, where a person’s success is based upon the choices of others...

     – Useful in artificial intelligence and cybernetics
    Cybernetics
    Cybernetics is the interdisciplinary study of the structure of regulatory systems. Cybernetics is closely related to information theory, control theory and systems theory, at least in its first-order form...

    .
  • Coding theory
    Coding theory
    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...

     – Useful in networking and other areas where computers communicate with each other.

Algorithms and data structures

  • Algorithms – Sequential and parallel computational procedures for solving a wide range of problems.
  • Data structure
    Data structure
    In computer science, a data structure is a particular way of storing and organizing data in a computer so that it can be used efficiently.Different kinds of data structures are suited to different kinds of applications, and some are highly specialized to specific tasks...

    s – The organization and manipulation of data.

Artificial intelligence

  • Artificial intelligence
    Artificial intelligence
    Artificial intelligence is the intelligence of machines and the branch of computer science that aims to create it. AI textbooks define the field as "the study and design of intelligent agents" where an intelligent agent is a system that perceives its environment and takes actions that maximize its...

     – The implementation and study of systems that exhibit an autonomous intelligence or behavior of their own.
  • Automated reasoning
    Automated reasoning
    Automated reasoning is an area of computer science dedicated to understand different aspects of reasoning. The study in automated reasoning helps produce software which allows computers to reason completely, or nearly completely, automatically...

     – Solving engines, such as used in Prolog
    Prolog
    Prolog is a general purpose logic programming language associated with artificial intelligence and computational linguistics.Prolog has its roots in first-order logic, a formal logic, and unlike many other programming languages, Prolog is declarative: the program logic is expressed in terms of...

    , which produce steps to a result given a query on a fact and rule database, and automated theorem provers
    Automated theorem proving
    Automated theorem proving or automated deduction, currently the most well-developed subfield of automated reasoning , is the proving of mathematical theorems by a computer program.- Decidability of the problem :...

     that aim to prove mathematical theorems with some assistance from a programmer.
  • Robotics
    Robotics
    Robotics is the branch of technology that deals with the design, construction, operation, structural disposition, manufacture and application of robots...

     – Algorithms for controlling the behavior of robots.
  • Computer vision
    Computer vision
    Computer vision is a field that includes methods for acquiring, processing, analysing, and understanding images and, in general, high-dimensional data from the real world in order to produce numerical or symbolic information, e.g., in the forms of decisions...

     – Algorithms for identifying three dimensional objects from a two dimensional picture.
  • Machine learning
    Machine learning
    Machine learning, a branch of artificial intelligence, is a scientific discipline concerned with the design and development of algorithms that allow computers to evolve behaviors based on empirical data, such as from sensor data or databases...

     – Automated creation of a set of rules and axioms based on input.

Collaborative Networks

  • Virtual Organization – Including virtual enterprises, extended enterprises.
  • VO Breeding Environment – Including industry clusters, industrial districts, digital business ecosystems.
  • Professional virtual community
    Professional virtual community
    A Professional Virtual Community represents the combination of the concepts of virtual community and professional community. Virtual communities are defined as social systems of networks of individuals, who use computer technologies to mediate their relationships...

     – Including virtual teams, social networks.

Communications and Security

  • Networking – Algorithms and protocols for reliably communicating data across different shared or dedicated media, often including error correction.
  • Computer security
    Computer security
    Computer security is a branch of computer technology known as information security as applied to computers and networks. The objective of computer security includes protection of information and property from theft, corruption, or natural disaster, while allowing the information and property to...

     – Practical aspects of securing computer systems and computer networks.
  • Cryptography
    Cryptography
    Cryptography is the practice and study of techniques for secure communication in the presence of third parties...

     – Applies results from complexity, probability and number theory to invent and break codes, and analyze the security of cryptographic protocols.

Computer architecture

  • Computer architecture
    Computer architecture
    In computer science and engineering, computer architecture is the practical art of selecting and interconnecting hardware components to create computers that meet functional, performance and cost goals and the formal modelling of those systems....

     – The design, organization, optimization and verification of a computer system, mostly about CPUs and Memory subsystem (and the bus connecting them).
  • Operating system
    Operating system
    An operating system is a set of programs that manage computer hardware resources and provide common services for application software. The operating system is the most important type of system software in a computer system...

    s – Systems for managing computer programs and providing the basis of a usable system.

Computer graphics

  • Computer graphics
    Computer graphics
    Computer graphics are graphics created using computers and, more generally, the representation and manipulation of image data by a computer with help from specialized software and hardware....

     – Algorithms both for generating visual images synthetically, and for integrating or altering visual and spatial information sampled from the real world.
  • Image processing
    Image processing
    In electrical engineering and computer science, image processing is any form of signal processing for which the input is an image, such as a photograph or video frame; the output of image processing may be either an image or, a set of characteristics or parameters related to the image...

     – Determining information from an image through computation.
  • Human computer interaction – The study and design of computer interfaces that people use.

Concurrent, parallel, and distributed systems

  • Concurrency
    Concurrency (computer science)
    In computer science, concurrency is a property of systems in which several computations are executing simultaneously, and potentially interacting with each other...

     – The theory and practice of simultaneous computation; data safety in any multitasking or multithreaded environment.
  • Parallel computing
    Parallel computing
    Parallel computing is a form of computation in which many calculations are carried out simultaneously, operating on the principle that large problems can often be divided into smaller ones, which are then solved concurrently . There are several different forms of parallel computing: bit-level,...

     – Computing using multiple concurrent threads of execution, devising algorithms for solving problems on multiple processors to achieve maximal speed-up compared to sequential execution.
  • Distributed computing
    Distributed computing
    Distributed computing is a field of computer science that studies distributed systems. A distributed system consists of multiple autonomous computers that communicate through a computer network. The computers interact with each other in order to achieve a common goal...

     – 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.

Databases

  • Relational databases – the set theoretic
    Set theory
    Set theory is the branch of mathematics that studies sets, which are collections of objects. Although any type of object can be collected into a set, set theory is applied most often to objects that are relevant to mathematics...

     and algorithmic foundation of databases.
  • Data mining
    Data mining
    Data mining , a relatively young and interdisciplinary field of computer science is the process of discovering new patterns from large data sets involving methods at the intersection of artificial intelligence, machine learning, statistics and database systems...

     – Study of algorithms for searching and processing information in documents and databases; closely related to information retrieval
    Information retrieval
    Information retrieval is the area of study concerned with searching for documents, for information within documents, and for metadata about documents, as well as that of searching structured storage, relational databases, and the World Wide Web...

    .

Programming languages and compilers

  • Compiler theory – Theory of compiler
    Compiler
    A compiler is a computer program that transforms source code written in a programming language into another computer language...

     design, based on Automata theory
    Automata theory
    In theoretical computer science, automata theory is the study of abstract machines and the computational problems that can be solved using these machines. These abstract machines are called automata...

    .
  • Programming language pragmatics
    Programming language
    A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms precisely....

     – Taxonomy of programming languages, their strength and weaknesses. Various programming paradigms, such as object-oriented programming
    Object-oriented programming
    Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...

    .
  • Programming language theory
    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...

  • Formal semantics
    Formal semantics of programming languages
    In programming language theory, semantics is the field concerned with the rigorous mathematical study of the meaning of programming languages and models of computation...

     – rigorous mathematical study of the meaning of programs.
  • Type theory
    Type theory
    In mathematics, logic and computer science, type theory is any of several formal systems that can serve as alternatives to naive set theory, or the study of such formalisms in general...

     – Formal analysis of the types of data, and the use of these types to understand properties of programs — especially program safety.

Scientific computing

  • Computational science
    Computational science
    Computational science is the field of study concerned with constructing mathematical models and quantitative analysis techniques and using computers to analyze and solve scientific problems...

     – constructing mathematical models and quantitative analysis
    Numerical analysis
    Numerical analysis is the study of algorithms that use numerical approximation for the problems of mathematical analysis ....

     techniques and using computers to analyze and solve scientific problems.
  • Numerical analysis
    Numerical analysis
    Numerical analysis is the study of algorithms that use numerical approximation for the problems of mathematical analysis ....

     – Approximate numerical solution of mathematical problems such as root-finding
    Root-finding algorithm
    A root-finding algorithm is a numerical method, or algorithm, for finding a value x such that f = 0, for a given function f. Such an x is called a root of the function f....

    , integration
    Numerical integration
    In numerical analysis, numerical integration constitutes a broad family of algorithms for calculating the numerical value of a definite integral, and by extension, the term is also sometimes used to describe the numerical solution of differential equations. This article focuses on calculation of...

    , the solution of ordinary differential equations
    Numerical ordinary differential equations
    Numerical ordinary differential equations is the part of numerical analysis which studies the numerical solution of ordinary differential equations...

    ; the approximation of special functions
    Special functions
    Special functions are particular mathematical functions which have more or less established names and notations due to their importance in mathematical analysis, functional analysis, physics, or other applications....

    .
  • Symbolic computation
    Symbolic computation
    Symbolic computation or algebraic computation, relates to the use of machines, such as computers, to manipulate mathematical equations and expressions in symbolic form, as opposed to manipulating the approximations of specific numerical quantities represented by those symbols...

     – Manipulation and solution of expressions in symbolic form, also known as Computer algebra.
  • Computational physics
    Computational physics
    Computational physics is the study and implementation of numerical algorithms to solve problems in physics for which a quantitative theory already exists...

     – Numerical simulations of large non-analytic systems
  • Computational chemistry
    Computational chemistry
    Computational chemistry is a branch of chemistry that uses principles of computer science to assist in solving chemical problems. It uses the results of theoretical chemistry, incorporated into efficient computer programs, to calculate the structures and properties of molecules and solids...

     – Computational modelling of theoretical chemistry in order to determine chemical structures and properties
  • Bioinformatics
    Bioinformatics
    Bioinformatics is the application of computer science and information technology to the field of biology and medicine. Bioinformatics deals with algorithms, databases and information systems, web technologies, artificial intelligence and soft computing, information and computation theory, software...

     – The use of computer science to maintain, analyse, store biological data
    Biological data
    Biological data are data or measurements collected from biological sources, which are often stored or exchanged in a digital form. Biological data are commonly stored in files or databases...

     and to assist in solving biological problems such as Protein folding
    Protein folding
    Protein folding is the process by which a protein structure assumes its functional shape or conformation. It is the physical process by which a polypeptide folds into its characteristic and functional three-dimensional structure from random coil....

    , function prediction and Phylogeny.
  • Computational neuroscience
    Computational neuroscience
    Computational neuroscience is the study of brain function in terms of the information processing properties of the structures that make up the nervous system...

     – Computational modelling of neurophysiology
    Neurophysiology
    Neurophysiology is a part of physiology. Neurophysiology is the study of nervous system function...

    .

Software engineering

  • Formal methods
    Formal methods
    In computer science and software engineering, formal methods are a particular kind of mathematically-based techniques for the specification, development and verification of software and hardware systems...

     – Mathematical approaches for describing and reasoning about software designs.
  • Software engineering
    Software engineering
    Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...

     – The principles and practice of designing, developing, and testing programs, as well as proper engineering practices.
  • Reverse engineering
    Reverse engineering
    Reverse engineering is the process of discovering the technological principles of a device, object, or system through analysis of its structure, function, and operation...

     – The application of the scientific method to the understanding of arbitrary existing software
  • Algorithm design
    Algorithm design
    Algorithm design is a specific method to create a mathematical process in solving problems. Applied algorithm design is algorithm engineering....

     – Using ideas from algorithm theory to creatively design solutions to real tasks
  • Computer programming
    Computer programming
    Computer programming is the process of designing, writing, testing, debugging, and maintaining the source code of computer programs. This source code is written in one or more programming languages. The purpose of programming is to create a program that performs specific operations or exhibits a...

     – The practice of using a programming language to implement algorithms

Theory of computation

  • Automata theory
    Automata theory
    In theoretical computer science, automata theory is the study of abstract machines and the computational problems that can be solved using these machines. These abstract machines are called automata...

     – Different logical structures for solving problems.
  • Computability theory
    Computability theory (computer science)
    Computability is the ability to solve a problem in an effective manner. It is a key topic of the field of computability theory within mathematical logic and the theory of computation within computer science...

     – What is calculable with the current models of computers. Proofs developed by Alan Turing
    Alan Turing
    Alan Mathison Turing, OBE, FRS , was an English mathematician, logician, cryptanalyst, and computer scientist. He was highly influential in the development of computer science, providing a formalisation of the concepts of "algorithm" and "computation" with the Turing machine, which played a...

     and others provide insight into the possibilities of what may be computed and what may not.
  • Computational complexity theory
    Computational complexity theory
    Computational complexity theory is a branch of the theory of computation in theoretical computer science and mathematics that focuses on classifying computational problems according to their inherent difficulty, and relating those classes to each other...

     – Fundamental bounds (especially time and storage space) on classes of computations.
  • Quantum computing theory – Explores computational models involving quantum superposition
    Quantum superposition
    Quantum superposition is a fundamental principle of quantum mechanics. It holds that a physical system exists in all its particular, theoretically possible states simultaneously; but, when measured, it gives a result corresponding to only one of the possible configurations.Mathematically, it...

     of bits.

Vocations

  • Programmer
    Programmer
    A programmer, computer programmer or coder is someone who writes computer software. The term computer programmer can refer to a specialist in one area of computer programming or to a generalist who writes code for many kinds of software. One who practices or professes a formal approach to...

  • Software architect
    Software architect
    Software architect is a general term with many accepted definitions, which refers to a broad range of roles. Generally accepted terminology and certifications began appearing in connection with this role near the beginning of the 21st century.-History:...

  • Software developer
    Software developer
    A software developer is a person concerned with facets of the software development process. Their work includes researching, designing, developing, and testing software. A software developer may take part in design, computer programming, or software project management...

  • Software tester
  • Software engineer
    Software engineer
    A software engineer is an engineer who applies the principles of software engineering to the design, development, testing, and evaluation of the software and systems that make computers or anything containing software, such as computer chips, work.- Overview :...


Data and data structures

  • Associative array
    Associative array
    In computer science, an associative array is an abstract data type composed of a collection of pairs, such that each possible key appears at most once in the collection....

  • Array
  • Data structure
    Data structure
    In computer science, a data structure is a particular way of storing and organizing data in a computer so that it can be used efficiently.Different kinds of data structures are suited to different kinds of applications, and some are highly specialized to specific tasks...

  • Data type
  • Database
  • Hash table
    Hash table
    In computer science, a hash table or hash map is a data structure that uses a hash function to map identifying values, known as keys , to their associated values . Thus, a hash table implements an associative array...

  • List
  • Matrix (computer science)
  • String
    String (computer science)
    In formal languages, which are used in mathematical logic and theoretical computer science, a string is a finite sequence of symbols that are chosen from a set or alphabet....

  • Tree
    Tree (data structure)
    In computer science, a tree is a widely-used data structure that emulates a hierarchical tree structure with a set of linked nodes.Mathematically, it is an ordered directed tree, more specifically an arborescence: an acyclic connected graph where each node has zero or more children nodes and at...


Other

  • Abstraction
    Abstraction (computer science)
    In computer science, abstraction is the process by which data and programs are defined with a representation similar to its pictorial meaning as rooted in the more complex realm of human life and language with their higher need of summarization and categorization , while hiding away the...

  • Big O notation
    Big O notation
    In mathematics, big O notation is used to describe the limiting behavior of a function when the argument tends towards a particular value or infinity, usually in terms of simpler functions. It is a member of a larger family of notations that is called Landau notation, Bachmann-Landau notation, or...

  • Closure
    Closure (computer science)
    In computer science, a closure is a function together with a referencing environment for the non-local variables of that function. A closure allows a function to access variables outside its typical scope. Such a function is said to be "closed over" its free variables...

  • Compiler
    Compiler
    A compiler is a computer program that transforms source code written in a programming language into another computer language...


Object oriented programming

  • Object oriented programming
  • Class
    Class (computer science)
    In object-oriented programming, a class is a construct that is used as a blueprint to create instances of itself – referred to as class instances, class objects, instance objects or simply objects. A class defines constituent members which enable these class instances to have state and behavior...

  • Inheritance
    Inheritance (computer science)
    In object-oriented programming , inheritance is a way to reuse code of existing objects, establish a subtype from an existing object, or both, depending upon programming language support...

  • Object
    Object (computer science)
    In computer science, an object is any entity that can be manipulated by the commands of a programming language, such as a value, variable, function, or data structure...


External links



Webcasts
The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK