COMPUTER SCIENCE
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 sub-fields; some emphasize the computation of specific results (such as computer graphics), while others (such as computational complexity theory) relate to properties of computational problems. 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 with solutions. A further subfield, human-computer interaction, focuses on the challenges in making computers and computations useful, usable and universally accessible to people.Contents
1 History 2 Major achievements 3 Relationship with other fields 4 Fields of computer science 4.1 Mathematical foundations 4.2 Theory of computation 4.3 Algorithms and data structures 4.4 Programming languages and compilers 4.5 Concurrent, parallel, and distributed systems 4.6 Software engineering 4.7 Computer architecture 4.8 Communications 4.9 Databases 4.10 Artificial intelligence 4.11 Soft computing 4.12 Computer graphics 4.13 Human-Computer Interaction 4.14 Scientific computing 5 Computer science education 6 See also 7 References 8 External links // HistoryMain article: History of computer scienceThe history of computer science predates the invention of the modern digital computer by many years. Machines for calculating fixed numerical tasks have existed since antiquity, such as the abacus. Wilhelm Schickard built the first mechanical calculator in 1623.<4> Charles Babbage designed a difference engine in Victorian times<5>, and around 1900 the IBM corporation sold punch-card machines<6>. However all of these machines were constrained to perform a single task, or at best, some subset of all possible tasks.Prior to the 1950s, the term computer referred to a human clerk who performed calculations. Early researchers in what came to be called computer science, such as Kurt Gödel, Alonzo Church, and Alan Turing, were interested in the question of computability: what things can be computed by a human clerk who simply follows a list of instructions with paper and pencil, for as long as necessary, and without ingenuity or insight?<citation needed> Part of the motivation for this work was the desire to develop computing machines that could automate the often tedious and error-prone work of a human computer. Their key insight was to construct universal computing systems capable (in theory) of performing all possible computable tasks, and thus generalising all previous dedicated-task machines into the single notion of the universal computer. The creation of the concept of a universal computer marked the birth of modern computer science.<citation needed>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.<7> Since practical computers became available, many applications of computing have become distinct areas of study in their own right. Major achievementsThis section is a stub. You can help by expanding it.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:A formal definition of computation and computability, and proof that there are computationally unsolvable and intractable problems<8>. The concept of a programming language, a tool for the precise expression of methodological information at various levels of abstraction<9> The theory and practice of compilers for translating between programming languages<citation needed> Practical applications: the PC, the internet, search engines, scientific computing <citation needed>