Computer science, or computing science, is the study of the theoretical foundations of information and computation and their implementation and application in computer systems.^{[1]}^{[2]}^{[3]} Computer science has many subfields; some emphasize the computation of specific results (such as computer graphics), while others relate to properties of computational problems (such as computational complexity theory). Still others focus on the challenges in implementing computations. For example, programming language theory studies approaches to describing computations, while computer programming applies specific programming languages to solve specific computational problems. A further subfield, humancomputer interaction, focuses on the challenges in making computers and computations useful, usable and universally accessible to people. The ASCII codes for the word Wikipedia represented in binary, the numeral system most commonly used for encoding computer information. ...
Look up computation in Wiktionary, the free dictionary. ...
This article is about the machine. ...
This article is about the scientific discipline of computer graphics. ...
In theoretical computer science, a computational problem is a mathematical object representing a question that computers might want to solve. ...
As a branch of the theory of computation in computer science, computational complexity theory investigates the problems related to the amounts of resources required for the execution of algorithms (e. ...
Programming language theory (commonly known as PLT) is a branch of computer science which deals with the design, implementation, analysis, characterization, and classification of programming languages and programming language features. ...
Programming redirects here. ...
A programming language is an artificial language that can be used to control the behavior of a machine, particularly a computer. ...
// Humanâ€“computer interaction (HCI), alternatively manâ€“machine interaction (MMI) or computerâ€“human interaction (CHI)This interactive computer allows the user to intergrate a reaction towards oneself and the primary source that is the http server, the port and Ip address show as the user connects to the imb harddrive , is...
History

The history of computer science predates the invention of the modern digital computer by many centuries. Machines for calculating fixed numerical tasks, such as the abacus, have existed since antiquity. Wilhelm Schickard built the first mechanical calculator in 1623.^{[4]} Charles Babbage designed a difference engine in Victorian times (between 1837 and 1901)^{[5]} helped by Ada Lovelace.^{[6]} Around 1900 the IBM corporation sold punchcard machines.^{[7]} However all of these machines were constrained to perform a single task, or at best, some subset of all possible tasks. The history of computer science began long before the modern discipline of computer science that emerged in the twentieth century. ...
...
It has been suggested that Abax be merged into this article or section. ...
Wilhelm Schickard Wilhelm Schickard (April 22, 1592 â€“ October 23, 1635) was a German polymath who built the first computer in 1623. ...
Babbage redirects here. ...
Part of Babbages Difference engine, assembled after his death by Babbages son, using parts found in his laboratory. ...
The Victorian era of the United Kingdom marked the height of the British Industrial Revolution and the apex of the British Empire. ...
Ada Lovelace Augusta Ada King, Countess of Lovelace (December 10, 1815 â€“ November 27, 1852), born Augusta Ada Byron, is mainly known for having written a description of Charles Babbages early mechanical generalpurpose computer, the analytical engine. ...
For other uses, see IBM (disambiguation) and Big Blue. ...
During the 1940s, as newer and more powerful computing machines were developed, the term computer came to refer to the machines rather than their human predecessors. As it became clear that computers could be used for more than just mathematical calculations, the field of computer science broadened to study computation in general. Computer science began to be established as a distinct academic discipline in the 1960s, with the creation of the first computer science departments and degree programs.^{[8]} Since practical computers became available, many applications of computing have become distinct areas of study in their own right. Look up computation in Wiktionary, the free dictionary. ...
Many initially believed it impossible that "computers themselves could actually be a scientific field of study" (Levy 1984, p. 11), though it was in the "late fifties" (Levy 1984, p.11) that it gradually became accepted among the greater academic population. It is the now wellknown IBM brand that formed part of the computer science revolution during this time. IBM or International Business Machine as the company is officially termed released the IBM 704 and later the IBM 709 computers which were widely used during the exploration period of such devices. "Still, working with the IBM [computer] was frustrating...if you had misplaced as much as one letter in one instruction, the program would crash, and you would have to start the whole process over again" (Levy 1984, p.13). Obviously, during the period of the late 1950s the computer science discipline was very much in its developmental stages and such issues were commonplace. Time has seen significant improvements in the usability and effectiveness of computer science technology. Modern society has seen a significant shift from computers being used solely by experts or professionals to more a more widespread user base. Slowly computers became accepted as being the norm within everyday life, though this was not until the 1990s. During this time data entry was a primary component of the use of computers, many preferring to streamline their business practices through the use of a computer. This also gave the additional benefit of removing the need of large amounts of documentation and file records which consumed much needed physical space within offices.
Major achievements
German military used the Enigma machine during World War II for communication they thought to be secret. The largescale decryption of Enigma traffic at Bletchley Park was an important factor that contributed to Allied victory in WWII. ^{[9]} Despite its relatively short history as a formal academic discipline, computer science has made a number of fundamental contributions to science and society. These include: Enigma This is a screenshot of a copyrighted computer game or video game. ...
Enigma This is a screenshot of a copyrighted computer game or video game. ...
For a discussion of how Enigmaderived intelligence was put to use, see Ultra (WWII intelligence). ...
Combatants Allied powers: China France Great Britain Soviet Union United States and others Axis powers: Germany Italy Japan and others Commanders Chiang Kaishek Charles de Gaulle Winston Churchill Joseph Stalin Franklin Roosevelt Adolf Hitler Benito Mussolini Hideki TÅjÅ Casualties Military dead: 17,000,000 Civilian dead: 33,000...
During World War II, codebreakers at Bletchley Park decrypted and interpreted messages from a large number of Axis code and cipher systems, including the German Enigma machine. ...
A magnet levitating above a hightemperature superconductor demonstrates the Meissner effect. ...
For other uses, see Society (disambiguation). ...
 Applications within computer science
 A formal definition of computation and computability, and proof that there are computationally unsolvable and intractable problems.^{[10]}
 The concept of a programming language, a tool for the precise expression of methodological information at various levels of abstraction^{[11]}
 Applications outside of computing
Look up computation in Wiktionary, the free dictionary. ...
Computation can be defined as finding a solution to a problem from given inputs by means of an algorithm. ...
In computability theory the halting problem is a decision problem which can be stated as follows: Given a description of a program and a finite input, decide whether the program finishes running or will run forever, given that input. ...
Complexity theory is part of the theory of computation dealing with the resources required during computation to solve a given problem. ...
A programming language is an artificial language that can be used to control the behavior of a machine, particularly a computer. ...
This article or section does not cite its references or sources. ...
A university computer lab containing many desktop PCs The transition of communication technology: Oral Culture, Manuscript Culture, Print Culture, and Information Age Information Age is a term that has been used to refer to the present economic era. ...
The German Lorenz cipher machine, used in World War II for encryption of very highlevel general staff messages Cryptography (or cryptology; derived from Greek ÎºÏÏ…Ï€Ï„ÏŒÏ‚ kryptÃ³s hidden, and the verb Î³ÏÎ¬Ï†Ï‰ grÃ¡fo write or Î»ÎµÎ³ÎµÎ¹Î½ legein to speak) is the study of message secrecy. ...
This article or section contains information that has not been verified and thus might not be reliable. ...
Scientific computing (or computational science) is the field of study concerned with constructing mathematical models and numerical solution techniques and using computers to analyze and solve scientific and engineering problems. ...
The Human Genome Project (HGP) is an international scientific research project. ...
Distributed computing is a method of computer processing in which different parts of a program are run simultaneously on two or more computers that are communicating with each other over a network. ...
Folding@Home (also known as FAH or F@H) is a distributed computing project designed to perform computationally intensive simulations of protein folding and other molecular dynamics. ...
Protein before and after folding. ...
In electronic financial markets, algorithmic trading, also known as algo, automated, blackbox, or robo trading, is the use of computer programs for entering trading orders with the computer algorithm deciding on certain aspects of the order such as the timing, price, or even the final quantity of the order. ...
There are several measures of economic efficiency: Pareto efficiency KaldorHicks efficiency Xefficiency Allocative efficiency For applications of these principles see: Efficient market hypothesis Welfare economics Production theory basics See also Business efficiency Inefficiency ...
Market liquidity is a business, economics or investment term that refers to an assets ability to be easily converted through an act of buying or selling without causing a significant movement in the price and with minimum loss of value. ...
AI redirects here. ...
As a broad subfield of artificial intelligence, machine learning is concerned with the design and development of algorithms and techniques that allow computers to learn. At a general level, there are two types of learning: inductive, and deductive. ...
This article is about the field of statistics. ...
Numerical analysis is the study of approximate methods for the problems of continuous mathematics (as distinguished from discrete mathematics). ...
Relationship with other fields Wikiquote has a collection of quotations related to: Computer science is frequently derided by the sentence "Any field which has to have 'science' in its name isn't one." This was placed in print by physicist Richard Feynman in his Lectures on Computation (1996) after his passing. Image File history File links This is a lossless scalable vector image. ...
Wikiquote is one of a family of wikibased projects run by the Wikimedia Foundation, running on MediaWiki software. ...
Despite its name, a significant amount of computer science does not involve the study of computers themselves. Because of this several alternative names have been proposed. Danish scientist Peter Naur suggested the term datalogy, to reflect the fact that the scientific discipline revolves around data and data treatment, while not necessarily involving computers. The first scientific institution applying the datalogy term was DIKU, the Department of Datalogy at the University of Copenhagen, founded in 1969, with Peter Naur being the first professor in datalogy. The term is used mainly in the Scandinavian countries. Also, in the early days of computing, a number of terms for the practitioners of the field of computing were suggested in the Communications of the ACM—turingineer, turologist, flowchartsman, applied metamathematician, and applied epistemologist.^{[14]} Three months later in the same journal, comptologist was suggested, followed next year by hypologist.^{[15]} Recently the term computics has been suggested.^{[16]} Infomatik was a term used in Europe with more frequency. In fact, the renowned computer scientist Edsger Dijkstra is often quoted as saying, "Computer science is no more about computers than astronomy is about telescopes." The design and deployment of computers and computer systems is generally considered the province of disciplines other than computer science. For example, the study of computer hardware is usually considered part of computer engineering, while the study of commercial computer systems and their deployment is often called information technology or information systems. Computer science is sometimes criticized as being insufficiently scientific, a view espoused in the statement "Science is to computer science as hydrodynamics is to plumbing" credited to Stan KellyBootle^{[17]} and others. However, there has been much crossfertilization of ideas between the various computerrelated disciplines. Computer science research has also often crossed into other disciplines, such as artificial intelligence, cognitive science, physics (see quantum computing), and linguistics. Edsger Wybe Dijkstra (May 11, 1930 â€“ August 6, 2002); IPA: ) was a Dutch computer scientist. ...
Computer hardware is the physical part of a computer, including the digital circuitry, as distinguished from the computer software that executes within the hardware. ...
Computer engineering (also called electronic and computer engineering) is a discipline that combines elements of both electrical engineering and computer science. ...
This article or section is in need of attention from an expert on the subject. ...
Information and communication technology spending in 2005 Information technology (IT), as defined by the Information Technology Association of America (ITAA), is the study, design, development, implementation, support or management of computerbased information systems, particularly software applications and computer hardware. ...
Information System (example) An Information System (IS) is the system of persons, data records and activities that process the data and information in a given organization, including manual processes or automated processes. ...
Stan KellyBootle (born 1929, in Liverpool), notable for achieving the first postgraduate degree in computer science (1954), is a prolific author (nine books, numerous magazine articles), and songwriter (his folk songs have been performed by artists such as Pete Seeger). ...
AI redirects here. ...
Cognitive science is usually defined as the scientific study either of mind or of intelligence (e. ...
A magnet levitating above a hightemperature superconductor demonstrates the Meissner effect. ...
Molecule of alanine used in NMR implementation of error correction. ...
For the journal, see Linguistics (journal). ...
Computer science is considered by some to have a much closer relationship with mathematics than many scientific disciplines.^{[8]} Early computer science was strongly influenced by the work of mathematicians such as Kurt Gödel and Alan Turing, and there continues to be a useful interchange of ideas between the two fields in areas such as mathematical logic, category theory, domain theory, and algebra. For other meanings of mathematics or uses of math and maths, see Mathematics (disambiguation) and Math (disambiguation). ...
Kurt GÃ¶del (IPA: ) (April 28, 1906 BrÃ¼nn, AustriaHungary (now Brno, Czech Republic) â€“ January 14, 1978 Princeton, New Jersey) was an Austrian American mathematician and philosopher. ...
Alan Mathison Turing, OBE, FRS (23 June 1912 â€“ 7 June 1954) was an English mathematician, logician, and cryptographer. ...
Mathematical logic is a major area of mathematics, which grew out of symbolic logic. ...
In mathematics, category theory deals in an abstract way with mathematical structures and relationships between them. ...
Domain theory is a branch of mathematics that studies special kinds of partially ordered sets commonly called domains. ...
This article is about the branch of mathematics. ...
The relationship between computer science and software engineering is a contentious issue, which is further muddied by disputes over what the term "software engineering" means, and how computer science is defined. David Parnas, taking a cue from the relationship between other engineering and science disciplines, has claimed that the principal focus of computer science is studying the properties of computation in general, while the principal focus of software engineering is the design of specific computations to achieve practical goals, making the two separate but complementary disciplines.^{[18]} Software engineering (SE) is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. ...
Many debates are raging within the software engineering community. ...
David Lorge Parnas (born February 10, 1941) is an early pioneer of software engineering who developed the concept of module design which is the foundation of object oriented programming today. ...
The academic political and funding aspects of computer science tend to have roots as to whether a department in the US formed with either a mathematical emphasis or an engineering emphasis. In general, electrical engineering based CS departments have tended to succeed as computer science and/or engineering departments. CS departments with a mathematics emphasis and with a numerical orientation consider alignment computational science. Both types of departments tend to make efforts to bridge the field educationally if not across all research. Computational Science is the use of computers to perform research in other fields. ...
Fields of computer science Computer science searches for concepts and formal proofs to explain and describe computational systems of interest. As with all sciences, these theories can then be utilised to synthesize practical engineering applications, which in turn may suggest new systems to be studied and analysed. While the ACM Computing Classification System can be used to split computer science up into different topics of fields a more descriptive break down follows: ...
The ACM Computing Classification System is a subject classification system for computer science devised by the Association for Computing Machinery. ...
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 proofs and heuristics for finding proofs in the simple domain of integers. Used in cryptography as well as a test domain in artificial intelligence.
 Graph theory
 Foundations for data structures and searching algorithms.
 Type Theory
 Formal analysis of the types of data, and the use of these types to understand properties of programs — especially program safety.
 Category Theory
 Category theory provides a means of capturing all of math and computation in a single synthesis.
 Computational geometry
 The study of algorithms to solve problems stated in terms of geometry
 Numerical Analysis
 Foundations for algorithms in discrete mathematics, as well as the study of the limitations of floating point computation, including roundoff errors.
Mathematical logic is a major area of mathematics, which grew out of symbolic logic. ...
Number theory is the branch of pure mathematics concerned with the properties of numbers in general, and integers in particular, as well as the wider classes of problems that arise from their study. ...
The German Lorenz cipher machine, used in World War II for encryption of very highlevel general staff messages Cryptography (or cryptology; derived from Greek ÎºÏÏ…Ï€Ï„ÏŒÏ‚ kryptÃ³s hidden, and the verb Î³ÏÎ¬Ï†Ï‰ grÃ¡fo write or Î»ÎµÎ³ÎµÎ¹Î½ legein to speak) is the study of message secrecy. ...
AI redirects here. ...
A drawing of a graph. ...
At the broadest level, type theory is the branch of mathematics and logic that first creates a hierarchy of types, then assigns each mathematical (and possibly other) entity to a type. ...
In mathematics, category theory deals in an abstract way with mathematical structures and relationships between them. ...
In computer science, computational geometry is the study of algorithms to solve problems stated in terms of geometry. ...
In mathematics, computing, linguistics, and related disciplines, an algorithm is a finite list of welldefined instructions for accomplishing some task that, given an initial state, will terminate in a defined endstate. ...
For other uses, see Geometry (disambiguation). ...
Numerical analysis is the study of approximate methods for the problems of continuous mathematics (as distinguished from discrete mathematics). ...
A roundoff error, also called rounding error, is the difference between the calculated approximation of a number and its exact mathematical value. ...
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 can be computed and what can not.
 Computational complexity theory
 Fundamental bounds (especially time and storage space) on classes of computations.
 Quantum computing theory
 Representation and manipulation of data using the quantum properties of particles and quantum mechanism.
The theory of computation is the branch of computer science that deals with whether and how efficiently problems can be solved on a computer. ...
â€œAutomataâ€ redirects here. ...
For the branch of mathematical logic called computability theory, see Recursion theory. ...
Alan Mathison Turing, OBE, FRS (23 June 1912 â€“ 7 June 1954) was an English mathematician, logician, and cryptographer. ...
As a branch of the theory of computation in computer science, computational complexity theory investigates the problems related to the amounts of resources required for the execution of algorithms (e. ...
Molecule of alanine used in NMR implementation of error correction. ...
Algorithms and data structures  Analysis of algorithms
 Time and space complexity of algorithms.
 Algorithms
 Formal logical processes used for computation, and the efficiency of these processes.
 Data structures
 The organization of and rules for the manipulation of data.
To analyze an algorithm is to determine the amount of resources (such as time and storage) necessary to execute it. ...
Flowcharts are often used to represent algorithms. ...
A binary tree, a simple type of branching linked data structure. ...
Programming languages and compilers  Compilers
 Ways of translating computer programs, usually from higher level languages to lower level ones.
 Interpreters
 A program that takes in as input a computer program and executes it.
 Programming languages
 Formal language paradigms for expressing algorithms, and the properties of these languages (e.g. what problems they are suited to solve).
A diagram of the operation of a typical multilanguage, multitarget compiler. ...
A highlevel programming language is a programming language that, in comparison to lowlevel programming languages, may be more abstract, easier to use, or more portable across platforms. ...
This article does not cite any references or sources. ...
In computer science, an interpreter is a computer program that executes, or performs, instructions written in a computer programming language. ...
A programming language is an artificial language that can be used to control the behavior of a machine, particularly a computer. ...
Concurrent, parallel, and distributed systems  Concurrency
 The theory and practice of simultaneous computation; data safety in any multitasking or multithreaded environment.
 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.
 Parallel computing
 Computing using multiple concurrent threads of execution.
The Dining Philosophers, a classic problem involving concurrency and shared resources In computer science, concurrency is a property of systems in which several computational processes are executing at the same time, and potentially interacting with each other. ...
Distributed computing is a method of computer processing in which different parts of a program are run simultaneously on two or more computers that are communicating with each other over a network. ...
Parallel computing is the simultaneous execution of the same task (split up and specially adapted) on multiple processors in order to obtain results faster. ...
Software engineering  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
 Formal methods
 Mathematical approaches for describing and reasoning about software designs.
 Reverse engineering
 The application of the scientific method to the understanding of arbitrary existing software
 Software development
 The principles and practice of designing, developing, and testing programs, as well as proper engineering practices.
Algorithm design is a specific method to create a mathematical process in solving problems. ...
Programming redirects here. ...
In computer science and software engineering, formal methods are mathematicallybased techniques for the specification, development and verification of software and hardware systems. ...
Reverse engineering (RE) is the process of taking something (a device, an electrical component, a software program, etc. ...
â€œSoftware developmentâ€ redirects here. ...
System architecture  Computer architecture
 The design, organization, optimization and verification of a computer system, mostly about CPUs and Memory subsystem (and the bus connecting them).
 Computer organization
 The implementation of computer architectures, in terms of descriptions of their specific electrical circuitry
 Operating systems
 Systems for managing computer programs and providing the basis of a useable system.
A typical vision of a computer architecture as a series of abstraction layers: hardware, firmware, assembler, kernel, operating system and applications (see also Tanenbaum 79). ...
CPU can stand for: in computing: Central processing unit in journalism: Commonwealth Press Union in law enforcement: Crime prevention unit in software: Critical patch update, a type of software patch distributed by Oracle Corporation in Macleans College is often known as Ash Lim. ...
To meet Wikipedias quality standards, this article or section may require cleanup. ...
Computer architecture is the theory behind the design of a computer. ...
An electrical network or electrical circuit is an interconnection of analog electrical elements such as resistors, inductors, capacitors, diodes, switches and transistors. ...
An operating system (OS) is the software that manages the sharing of the resources of a computer and provides programmers with an interface used to access those resources. ...
Communications  Computer audio
 Algorithms and data structures for the creation, manipulation, storage, and transmission of digital audio recordings. Also important in voice recognition applications.
 Networking
 Algorithms and protocols for reliably communicating data across different shared or dedicated media, often including error correction.
 Cryptography
 Applies results from complexity, probability and number theory to invent and break codes.
Computer music is music generated with, or composed with the aid of, computers. ...
Digital audio comprises audio signals stored in a digital format. ...
Speech recognition technologies allow computers equipped with a source of sound input, such as a microphone, to interpret human speech, e. ...
This article or section is in need of attention from an expert on the subject. ...
In computer science and information theory, error correction consists of using methods to detect and/or correct errors in the transmission or storage of data by the use of some amount of redundant data and (in the case of transmission) the selective retransmission of incorrect segments of the data. ...
The German Lorenz cipher machine, used in World War II for encryption of very highlevel general staff messages Cryptography (or cryptology; derived from Greek ÎºÏÏ…Ï€Ï„ÏŒÏ‚ kryptÃ³s hidden, and the verb Î³ÏÎ¬Ï†Ï‰ grÃ¡fo write or Î»ÎµÎ³ÎµÎ¹Î½ legein to speak) is the study of message secrecy. ...
Databases  Data mining
 Data mining is the extracting of the relevant data from all the sources of data
 Relational databases
 Study of algorithms for searching and processing information in documents and databases; closely related to information retrieval.
Data mining is the principle of sorting through large amounts of data and picking out relevant information. ...
A relational database is a database based on the relational model. ...
Information retrieval (IR) is the science of searching for information in documents, searching for documents themselves, searching for metadata which describe documents, or searching within databases, whether relational standalone databases or hypertextuallynetworked databases such as the World Wide Web. ...
Artificial intelligence  Artificial intelligence
 The implementation and study of systems that exhibit an autonomous intelligence or behaviour of their own.
 Artificial Life
 The study of digital organisms to learn about biological systems and evolution.
 Automated reasoning
 Solving engines, such as used in Prolog, which produce steps to a result given a query on a fact and rule database.
 Computer vision
 Algorithms for identifying three dimensional objects from one or more two dimensional pictures.
 Machine learning
 Automated creation of a set of rules and axioms based on input.
 Natural language processing/Computational linguistics
 Automated understanding and generation of human language
 Robotics
 Algorithms for controlling the behavior of robots.
AI redirects here. ...
This article is about a field of research. ...
Automated reasoning is an area of Computer Science dedicated to creating software which allows to perform reasoning on computers completely or nearly completely automatically. ...
Prolog is a logic programming language. ...
Computer vision is the science and technology of machines that see. ...
As a broad subfield of artificial intelligence, machine learning is concerned with the design and development of algorithms and techniques that allow computers to learn. At a general level, there are two types of learning: inductive, and deductive. ...
Natural language processing (NLP) is a subfield of artificial intelligence and computational linguistics. ...
Computational linguistics is an interdisciplinary field dealing with the statistical and logical modeling of natural language from a computational perspective. ...
The Shadow robot hand system holding a lightbulb. ...
Visual rendering (or 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.
This article is about the scientific discipline of computer graphics. ...
UPIICSA IPN  Binary image Image processing is any form of information processing for which the input is an image, such as photographs or frames of video; the output is not necessarily an image, but can be for instance a set of features of the image. ...
HumanComputer Interaction  Human computer interaction
 The study of making computers and computations useful, usable and universally accessible to people, including the study and design of computer interfaces through which people use computers.
Humancomputer interaction (HCI) is the study of interaction between people (users) and computers. ...
Scientific computing  Bioinformatics
 The use of computer science to maintain, analyse, and store biological data, and to assist in solving biological problems such as Protein folding, function prediction and Phylogeny.
 Cognitive Science
 Computational modelling of real minds
 Computational chemistry
 Computational modelling of theoretical chemistry in order to determine chemical structures and properties
 Computational neuroscience
 Computational modelling of real brains
 Computational physics
 Numerical simulations of large nonanalytic systems
 Numerical algorithms
 Algorithms for the numerical solution of mathematical problems such as rootfinding, integration, the solution of ordinary differential equations and the approximation/evaluation of special functions.
 Symbolic mathematics
 Manipulation and solution of expressions in symbolic form, also known as Computer algebra.
Map of the human X chromosome (from the NCBI website). ...
Biological data is data collected from biological sources, which is stored or exchanged in a digital form. ...
Protein before and after folding. ...
In biology, phylogenetics (Greek: phylon = tribe, race and genetikos = relative to birth, from genesis = birth) is the study of evolutionary relatedness among various groups of organisms (e. ...
Cognitive science is usually defined as the scientific study either of mind or of intelligence (e. ...
Computational chemistry is a branch of chemistry that uses the results of theoretical chemistry incorporated into efficient computer programs to calculate the structures and properties of molecules and solids, applying these programs to complement the information obtained by actual chemical experiments, predict hitherto unobserved chemical phenomena, and solve related problems. ...
Computational neuroscience is an interdisciplinary science that links the diverse fields of neuroscience, cognitive science, electrical engineering, computer science, physics and mathematics. ...
Computational physics is the study and implementation of numerical algorithms in order to solve problems in physics for which a quantitative theory already exists. ...
Numerical analysis is the study of approximate methods for the problems of continuous mathematics (as distinguished from discrete mathematics). ...
A rootfinding algorithm is a numerical method, or algorithm, for finding a value x such that f(x) = 0, for a given function f. ...
Numerical Integration with the Monte Carlo method: Nodes are random equally distributed. ...
Numerical ordinary differential equations is the part of numerical analysis which studies the numerical solution of ordinary differential equations (ODEs). ...
In mathematics, there is a theory or theories of special functions, particular functions such as the trigonometric functions that have useful or attractive properties, and which occur in different applications often enough to warrant a name and attention of their own. ...
Symbolic mathematics, or symbolic math, relates to the use of computers to manipulate mathematical equations and expressions in symbolic form, as opposed to manipulating the approximations of specific numerical quantities represented by those symbols. ...
A computer algebra system (CAS) is a software program that facilitates symbolic mathematics. ...
Didactics of computer science / Didactics of Informatics The subfield didactics of computer science focuses on cognitive approaches of developing competencies of computer science and specific strategies for analysis, design, implementation and evaluation of excellent lessons in computer science. Didactics of computer science (didactics of informatics) is a subfield of computer science (informatics). ...
Since 1960 experts of higher education, the pioneers of didactics of computer science, are developing guidelines and curricula recommendations. Ten years later computer science has been a subject of secondary education. Didactics of computer science became also a study subject of teacher education. At present, the educational aims of the subject computer science at schools are completely changing from programming of small imperative solutions to modelling, construction and deconstruction of complex and object oriented systems of computer science. But there is a big gap between the didactic needs and the published research results in this field, e. g.:  The Educational Value of Informatics,
 Fundamental Ideas of Informatics,
 Didactic Systems of Informatics,
 Understanding of Informatics Systems,
 Educational Standards of Informatics,
 International Curricula.
Computer science education Some universities teach computer science as a theoretical study of computation and algorithmic reasoning. These programs often feature the theory of computation, analysis of algorithms, formal methods, concurrency theory, databases, computer graphics and systems analysis, among others. They typically also teach computer programming, but treat it as a vessel for the support of other fields of computer science rather than a central focus of highlevel study. The theory of computation is the branch of computer science that deals with whether and how efficiently problems can be solved on a computer. ...
To analyze an algorithm is to determine the amount of resources (such as time and storage) necessary to execute it. ...
In computer science and software engineering, formal methods are mathematicallybased techniques for the specification, development and verification of software and hardware systems. ...
The Dining Philosophers, a classic problem involving concurrency and shared resources In computer science, concurrency is a property of systems in which several computational processes are executing at the same time, and potentially interacting with each other. ...
A database is an information set with a regular structure. ...
This article is about the scientific discipline of computer graphics. ...
Systems analysis is the interdisciplinary branch of science, dealing with analysis of systems, often prior to their automation as computer systems, and the interactions within those systems. ...
Programming redirects here. ...
Other colleges and universities, as well as secondary schools and vocational programs that teach computer science, emphasize the practice of advanced computer programming rather than the theory of algorithms and computation in their computer science curricula. Such curricula tend to focus on those skills that are important to workers entering the software industry. The practical aspects of computer programming are often referred to as software engineering. However, there is a lot of disagreement over what the term "software engineering" actually means, and whether it is the same thing as programming. Secondary school is a term used to describe an institution where the final stage of compulsory schooling, known as secondary education, takes place. ...
Programming redirects here. ...
Software engineering (SE) is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. ...
Many debates are raging within the software engineering community. ...
 See Peter J. Denning, Great principles in computing curricula, Technical Symposium on Computer Science Education, 2004.
Peter J. Denning is a computer scientist and one of the team members of the Multics project. ...
See also  Main list: List of basic computer science topics
Image File history File links Portal. ...
Computer science, or computing science, is the study of the theoretical foundations of information and computation and their implementation and application in computer systems. ...
The knowledge developed by academic computer science (CS) is applied to various nonacademic situations to arrive at systems that help humans perform tasks that were either out of their reach for being too complex or the tasks that are repetitive in nature. ...
Though the history of computer science began long before the twentieth century, this discipline as it is modernly known has mainly been developed after the World War II in the United States. ...
Global concerns about current and future roles of women in computing occupations gained more importance with the emerging information age. ...
For the formal concept of computation, see computation. ...
Informatics includes the science of information, the practice of information processing, and the engineering of information systems. ...
Please use the discussion tab to see the methodology used to compile this list and what additions should and should not be made to it. ...
This is a list of academic conferences in computer science. ...
This is a list of unsolved problems in computer science. ...
Category: ...
This is a list of important publications in computer science, organized by field. ...
This list complements the software engineering article, giving more details and examples. ...
. ...
References  ^ "Computer science is the study of information" Department of Computer and Information Science, Guttenberg Information Technologies
 ^ "Computer science is the study of computation." Computer Science Department, College of Saint Benedict, Saint John's University
 ^ "Computer Science is the study of all aspects of computer systems, from the theoretical foundations to the very practical aspects of managing large software projects." Massey University
 ^ Nigel Tout (2006). Calculator Timeline. Vintage Calculator Web Museum. Retrieved on 20060918.
 ^ Science Museum  Introduction to Babbage. Retrieved on 20060924.
 ^ A Selection and Adaptation From Ada's Notes found in "Ada, The Enchantress of Numbers," by Betty Alexandra Toole Ed.D. Strawberry Press, Mill Valley, CA. Retrieved on 20060504.
 ^ IBM Punch Cards in the U.S. Army. Retrieved on 20060924.
 ^ ^{a} ^{b} Denning, P.J. (2000). "Computer Science: The Discipline". Encyclopedia of Computer Science.
 ^ ^{a} ^{b} David Kahn, The Codebreakers, 1967, ISBN 0684831309.
 ^ Constable, R.L. (March 2000). "Computer Science: Achievements and Challenges circa 2000".
 ^ Abelson, H.; G.J. Sussman with J.Sussman (1996). Structure and Interpretation of Computer Programs, 2nd Ed., MIT Press. ISBN 0262011530. “The computer revolution is a revolution in the way we think and in the way we express what we think. The essence of this change is the emergence of what might best be called procedural epistemology — the study of the structure of knowledge from an imperative point of view, as opposed to the more declarative point of view taken by classical mathematical subjects.”
 ^ ^{a} ^{b} [1]
 ^ Black box traders are on the march The Telegraph, August 26, 2006
 ^ Communications of the ACM 1(4):p.6
 ^ Communications of the ACM 2(1):p.4
 ^ IEEE Computer 28(12):p.136
 ^ Computer Language, Oct 1990
 ^ Parnas, David L. (1998). "Software Engineering Programmes are not Computer Science Programmes". Annals of Software Engineering 6: 19–37. , p. 19: "Rather than treat software engineering as a subfield of computer science, I treat it as an element of the set, {Civil Engineering, Mechanical Engineering, Chemical Engineering, Electrical Engineering, ....}."
Year 2006 (MMVI) was a common year starting on Sunday of the Gregorian calendar. ...
is the 261st day of the year (262nd in leap years) in the Gregorian calendar. ...
Year 2006 (MMVI) was a common year starting on Sunday of the Gregorian calendar. ...
is the 267th day of the year (268th in leap years) in the Gregorian calendar. ...
Year 2006 (MMVI) was a common year starting on Sunday of the Gregorian calendar. ...
is the 124th day of the year (125th in leap years) in the Gregorian calendar. ...
Year 2006 (MMVI) was a common year starting on Sunday of the Gregorian calendar. ...
is the 267th day of the year (268th in leap years) in the Gregorian calendar. ...
Peter J. Denning is a computer scientist and one of the team members of the Multics project. ...
David Kahn is a US historian, journalist and writer. ...
The Codebreakers  The Story of Secret Writing (ISBN 0684831309) is a book written by David Kahn in 1967 chronicling the history of cryptology from ancient Egypt to the time of its writing. ...
Hal Abelson // Harold (Hal) Abelson is the Class of 1922 Professor of Computer Science and Engineering at the MIT, and a fellow of the IEEE. He holds an A.B. degree from Princeton University and a Ph. ...
David Lorge Parnas (born February 10, 1941) is an early pioneer of software engineering who developed the concept of module design which is the foundation of object oriented programming today. ...
The Association for Computing Machinery, or ACM, was founded in 1947 as the worlds first scientific and educational computing society. ...
An organizational unit of the Institute of Electrical and Electronics Engineers (IEEE), established in 1963 when the American Institute of Electrical Engineers (AIEE) and the Institute of Radio Engineers (IRE) merged to create the IEEE. At the time of the merger, the AIEE’s Subcommittee on LargeScale Computing...
The Association for Computing Machinery, or ACM, was founded in 1947 as the worlds first scientific and educational computing society. ...
Peter J. Denning is a computer scientist and one of the team members of the Multics project. ...
Donald Knuth Donald Ervin Knuth (born January 10, 1938) is a renowned computer scientist and Professor Emeritus at Stanford University. ...
Webcast UCLA Computer Science 1 Freshman Computer Science Seminar Section 1 Berkeley Introduction to Computers
External links 