Outline of computer science

Short description: Overview of and topical guide to computer science

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:

* Academic discipline
* Science
* Applied science

## Contents

* 1 Subfields
* 1.1 Mathematical foundations
* 1.2 Algorithms and data structures
* 1.3 Artificial intelligence
* 1.4 Communication and security
* 1.5 Computer architecture
* 1.6 Computer graphics
* 1.7 Concurrent, parallel, and distributed systems
* 1.8 Databases
* 1.9 Programming languages and compilers
* 1.10 Scientific computing
* 1.11 Software engineering
* 1.12 Theory of computation
* 2 History
* 3 Professions
* 4 Data and data structures
* 5 Programming paradigms
* 6 See also
* 7 External links

## Subfields

### Mathematical foundations

* Coding theory – Useful in networking, programming, system development, and other areas where computers communicate with each other.
* Game theory – Useful in artificial intelligence and cybernetics.
* Discrete mathematics \- Study of discrete structures. Used in digital computer systems.
* Graph theory – Foundations for data structures and searching algorithms.
* Mathematical logic – Boolean logic and other ways of modeling logical queries; the uses and limitations of formal proof methods
* Number theory – Theory of the integers. Used in cryptography as well as a test domain in artificial intelligence.

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

### Artificial intelligence

Outline of artificial intelligence

* Artificial intelligence – The implementation and study of systems that exhibit an autonomous intelligence or behavior of their own.
* Automated reasoning – Solving engines, such as used in Prolog, which produce steps to a result given a query on a fact and rule database, and automated theorem provers that aim to prove mathematical theorems with some assistance from a programmer.
* Computer vision – Algorithms for identifying three-dimensional objects from a two-dimensional picture.
* Soft computing, the use of inexact solutions for otherwise extremely difficult problems:
* Machine learning \- Development of models that are able to learn and adapt without following explicit instructions, by using algorithms and statistical models to analyse and draw inferences from patterns in data.
* Evolutionary computing - Biologically inspired algorithms.
* Natural language processing \- Building systems and algorithms that analyze, understand, and generate natural (human) languages.
* Robotics – Algorithms for controlling the behaviour of robots.

### Communication and security

* Networking – Algorithms and protocols for reliably communicating data across different shared or dedicated media, often including error correction.
* Computer security – Practical aspects of securing computer systems and computer networks.
* Cryptography – Applies results from complexity, probability, algebra and number theory to invent and break codes, and analyze the security of cryptographic protocols.

### Computer architecture

* Computer architecture – The design, organization, optimization and verification of a computer system, mostly about CPUs and Memory subsystem (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 multiple 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.

### Databases

Outline of databases

* Relational databases – the set theoretic and algorithmic foundation of databases.
* Structured Storage - non-relational databases such as NoSQL databases.
* Data mining – Study of algorithms for searching and processing information in documents and databases; closely related to information retrieval.

### Programming languages and compilers

* Compiler theory – Theory of compiler design, based on Automata theory.
* Programming language pragmatics – Taxonomy of programming languages, their strength and weaknesses. Various programming paradigms, such as object-oriented programming.
* Programming language theory \- Theory of programming language design
* Formal semantics – rigorous mathematical study of the meaning of programs.
* Type theory – 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 - constructing mathematical models and quantitative analysis techniques and using computers to analyze and solve scientific problems.
* Numerical analysis – Approximate numerical solution of mathematical problems such as root-finding, integration, the solution of ordinary differential equations; the approximation of special functions.
* Symbolic computation – Manipulation and solution of expressions in symbolic form, also known as Computer algebra.
* Computational physics – Numerical simulations of large non-analytic systems
* Computational chemistry – Computational modelling of theoretical chemistry in order to determine chemical structures and properties
* Bioinformatics and Computational biology – The use of computer science to maintain, analyse, store biological data and to assist in solving biological problems such as Protein folding, function prediction and Phylogeny.
* Computational neuroscience – Computational modelling of neurophysiology.
* Computational Linguistics
* Computational logic
* Computational engineering

### Software engineering

Outline of software engineering

* Formal methods – Mathematical approaches for describing and reasoning about software design.
* Software engineering – The principles and practice of designing, developing, and testing programs, as well as proper engineering practices.
* Algorithm design – Using ideas from algorithm theory to creatively design solutions to real tasks.
* Computer programming – The practice of using a programming language to implement algorithms.
* Human–computer interaction – The study and design of computer interfaces that people use.
* Reverse engineering – The application of the scientific method to the understanding of arbitrary existing software.

### Theory of computation

Main article: Theory of computation

* Automata theory – Different logical structures for solving problems.
* Computability theory – What is calculable with the current models of computers. Proofs developed by Alan Turing and others provide insight into the possibilities of what may be computed and what may not.
* List of unsolved problems in computer science
* Computational complexity theory – Fundamental bounds (especially time and storage space) on classes of computations.
* Quantum computing theory – Explores computational models involving quantum superposition of bits.

## History

* History of computer science
* List of pioneers in computer science

## Professions

* Programmer (Software developer)
* Teacher/Professor
* Software engineer
* Software architect
* Software tester
* Hardware engineer
* Data analyst
* Interaction designer
* Network administrator
* Data scientist

## Data and data structures

* Data structure
* Data type
* Associative array and Hash table
* Array
* List
* Tree
* String
* Matrix (computer science)
* Database

## Programming paradigms

* Imperative programming/Procedural programming
* Functional programming
* Logic programming
* Object oriented programming
* Class
* Inheritance
* Object

## See also

* Abstraction
* Big O notation
* Closure
* Compiler
* Cognitive science

## External links

* Outline of computer science at Curlie
* ACM report on a recommended computer science curriculum (2008) (PDF)
* Directory of free university lectures in Computer Science (archived 12 May 2008)
* Collection of Computer Science Bibliographies
* Photographs of computer scientists (Bertrand Meyer's gallery)

* v
* t
* e

Computer science

Note: This template roughly follows the 2012 ACM Computing Classification System.

Hardware|

* Printed circuit board
* Peripheral
* Integrated circuit
* Very Large Scale Integration
* Systems on Chip (SoCs)
* Energy consumption (Green computing)
* Electronic design automation
* Hardware acceleration

Computer systems
organization|

* Computer architecture
* Embedded system
* Real-time computing
* Dependability

Networks|

* Network architecture
* Network protocol
* Network components
* Network scheduler
* Network performance evaluation
* Network service

Software organization|

* Interpreter
* Middleware
* Virtual machine
* Operating system
* Software quality

Software notations
and tools|

* Programming paradigm
* Programming language
* Compiler
* Domain-specific language
* Modeling language
* Software framework
* Integrated development environment
* Software configuration management
* Software library
* Software repository

Software development|

* Software development process
* Requirements analysis
* Software design
* Software construction
* Software deployment
* Software maintenance
* Programming team
* Open-source model

Theory of computation|

* Model of computation
* Formal language
* Automata theory
* Computational complexity theory
* Logic
* Semantics

Algorithms|

* Algorithm design
* Analysis of algorithms
* Algorithmic efficiency
* Randomized algorithm
* Computational geometry

Mathematics
of computing|

* Discrete mathematics
* Probability
* Statistics
* Mathematical software
* Information theory
* Mathematical analysis
* Numerical analysis

Information
systems|

* Database management system
* Information storage systems
* Enterprise information system
* Social information systems
* Geographic information system
* Decision support system
* Process control system
* Multimedia information system
* Data mining
* Digital library
* Computing platform
* Digital marketing
* World Wide Web
* Information retrieval

Security|

* Cryptography
* Formal methods
* Security services
* Intrusion detection system
* Hardware security
* Network security
* Information security
* Application security

Human–computer
interaction|

* Interaction design
* Social computing
* Ubiquitous computing
* Visualization
* Accessibility

Concurrency|

* Concurrent computing
* Parallel computing
* Distributed computing
* Multithreading
* Multiprocessing

Artificial
intelligence|

* Natural language processing
* Knowledge representation and reasoning
* Computer vision
* Automated planning and scheduling
* Search methodology
* Control method
* Philosophy of artificial intelligence
* Distributed artificial intelligence

Machine learning|

* Supervised learning
* Unsupervised learning
* Reinforcement learning
* Multi-task learning
* Cross-validation

Graphics|

* Animation
* Rendering
* Image manipulation
* Graphics processing unit
* Mixed reality
* Virtual reality
* Image compression
* Solid modeling

Applied
computing|

* E-commerce
* Enterprise software
* Computational mathematics
* Computational physics
* Computational chemistry
* Computational biology
* Computational social science
* Computational engineering
* Computational healthcare
* Digital art
* Electronic publishing
* Cyberwarfare
* Electronic voting
* Video games
* Word processing
* Operations research
* Educational technology
* Document management

* Book
* Category
* Outline
* WikiProject
* Commons

0.00

(0 votes)

Original source: https://en.wikipedia.org/wiki/Outline of computer science. Read more

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Outline_of_computer_science&oldid=203563"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template