Outline of computer science
From Wikipedia, the free encyclopedia
The following outline is provided as an 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.
Contents
 1 Subfields
 1.1 Mathematical foundations
 1.2 Algorithms and data structures
 1.3 Artificial intelligence
 1.4 Communications 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 Vocations
 4 Basic concepts
 5 Programming paradigms
 6 See also
 7 External links
Subfields
Mathematical foundations
 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.
 Graph theory – Foundations for data structures and searching algorithms.
 Game theory – Useful in artificial intelligence and cybernetics.
 Coding theory – 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 structures – The organization and manipulation of data.
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 threedimensional objects from a twodimensional picture.
 Natural language processing  Building systems and algorithms that analyze, understand, and generate natural (human) languages.
 Machine learning – Automated creation of a set of rules and axioms based on input.
 Robotics – Algorithms for controlling the behavior of robots.
Communications 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 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.
Concurrent, parallel, and distributed systems
 Concurrency – The theory and practice of simultaneous computation; data safety in any multitasking or multithreaded environment.
 Parallel computing – Computing using multiple concurrent threads of execution, devising algorithms for solving problems on multiple processors to achieve maximal speedup 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
 Relational databases – the set theoretic and algorithmic foundation of 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 objectoriented programming.
 Programming language theory
 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 rootfinding, 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 nonanalytic 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.
Software engineering
 Formal methods – Mathematical approaches for describing and reasoning about software designs.
 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.
 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
Main article: History of computer science
Vocations
 Programmer
 Software engineer
 Software architect
 Software developer
 Software tester
 Interaction designer
Basic concepts
Data and data structures
 Data structure
 Data type
 Associative array and Hash table
 Array
 List
 Tree
 String
 Matrix (computer science)
 Database
Other
Programming paradigms
 Imperative programming/Procedural programming
 Functional programming
 Logic programming
 Object oriented programming
See also
External links
Find more about Computer science at Wikipedia's sister projects  
Definitions and translations from Wiktionary  
Media from Commons  
Quotations from Wikiquote  
Source texts from Wikisource  
Textbooks from Wikibooks  
Learning resources from Wikiversity 
 Outline of computer science at DMOZ
 ACM report on a recommended computer science curriculum (2008)
 Directory of free university lectures in Computer Science
 Collection of Computer Science Bibliographies
 Photographs of computer scientists (Bertrand Meyer's gallery)
 Webcasts
 UCLA Computer Science 1 Freshman Computer Science Seminar Section 1
 Berkeley Introduction to Computers

HPTS  Area Progetti  EduSoft  JavaEdu  N.Saperi  Ass.Scuola..  TS BCTV  TS VideoRes  TSODP  TRTWE  