Computer science is the study of computation, automation, and
information.[1][2][3] Computer science spans theoretical disciplines (such as
    algorithms, theory of computation, information theory, and automation) to
    practical disciplines (including the design and implementation of hardware
    and software).[4][5][6] Computer science is generally considered an academic
    discipline and distinct from computer programming which is considered to
    be a technical eld.[7]
    Algorithms and data structures are central to computer science.[8] The
    theory of computation concerns abstract models of computation and
    general classes of problems that can be solved using them. The elds of
    cryptography and computer security involve studying the means for secure
    communication and for preventing security vulnerabilities. Computer
    graphics and computational geometry address the generation of images.
    Programming language theory considers different ways to describe
    computational processes, and database theory concerns the management
    of repositories of data. Human–computer interaction investigates the
    interfaces through which humans and computers interact, and software
    engineering focuses on the design and principles behind developing
    software. Areas such as operating systems, networks and embedded
    systems investigate the principles and design behind complex systems.
    Computer architecture describes the construction of computer components
    and computer-operated equipment. Arti cial intelligence and machine
    learning aim to synthesize goal-orientated processes such as problem-
    solving, decision-making, environmental adaptation, planning and learning
    found in humans and animals. Within arti cial intelligence, computer vision
    aims to understand and process image and video data, while natural
    language processing aims to understand and process textual and linguistic
    data.
    The fundamental concern of computer science is determining what can and
    cannot be automated.[2][9][3][10][11] The Turing Award is generally recognized as
    the highest distinction in computer science.[12][13]
    History
    Main article: History of computer science
            History of computing
       fi
                                 fi
                                      fi
                                                            fi
                      Hardware
     •   Hardware before 1960 Hardware 1960s to
                         present
                       Software
     •    Software Unix Free software and open-
                    source software
                   Computer science
     • Arti cial intelligence Compiler construction
        Early computer science Operating systems
       Programming languages Prominent pioneers
                   Software engineering
                   Modern concepts
     •    General-purpose CPUs Graphical user
           interface Internet Laptops Personal
         computers Video games World Wide Web
                      By country
     •    Bulgaria Eastern Bloc Poland Romania
                 Soviet Union Yugoslavia
               Timeline of computing
     • before 1950 1950–1979 1980–1989 1990–
       1999 2000–2009 2010–2019 2020–present
                   more timelines ...
            Glossary of computer science
     •                     Category
fi
 •                                         vte
Gottfried Wilhelm Leibniz (1646–1716) developed logic in a binary number system
and has been called the "founder of computer science".[14]
Charles Babbage is sometimes referred to as the "father of computing".[15]
Ada Lovelace published the rst algorithm intended for processing on a computer.[16]
The earliest foundations of what would become computer science predate
the invention of the modern digital computer. Machines for calculating xed
numerical tasks such as the abacus have existed since antiquity, aiding in
computations such as multiplication and division. Algorithms for performing
computations have existed since antiquity, even before the development of
sophisticated computing equipment.[17]
Wilhelm Schickard designed and constructed the rst working mechanical
calculator in 1623.[18] In 1673, Gottfried Leibniz demonstrated a digital
               fi
                                          fi
                                                                 fi
     mechanical calculator, called the Stepped Reckoner.[19] Leibniz may be
     considered the rst computer scientist and information theorist, because of
     various reasons, including the fact that he documented the binary number
     system. In 1820, Thomas de Colmar launched the mechanical calculator
     industry[note 1] when he invented his simpli ed arithmometer, the rst
     calculating machine strong enough and reliable enough to be used daily in
     an of ce environment. Charles Babbage started the design of the rst
     automatic mechanical calculator, his Difference Engine, in 1822, which
     eventually gave him the idea of the rst programmable mechanical
     calculator, his Analytical Engine.[20] He started developing this machine in
     1834, and "in less than two years, he had sketched out many of the salient
     features of the modern computer".[21] "A crucial step was the adoption of a
     punched card system derived from the Jacquard loom"[21] making it in nitely
     programmable.[note 2] In 1843, during the translation of a French article on the
     Analytical Engine, Ada Lovelace wrote, in one of the many notes she
     included, an algorithm to compute the Bernoulli numbers, which is
     considered to be the rst published algorithm ever speci cally tailored for
     implementation on a computer.[22] Around 1885, Herman Hollerith invented
     the tabulator, which used punched cards to process statistical information;
     eventually his company became part of IBM. Following Babbage, although
     unaware of his earlier work, Percy Ludgate in 1909 published[23] the 2nd of
     the only two designs for mechanical analytical engines in history. In 1937,
     one hundred years after Babbage's impossible dream, Howard Aiken
     convinced IBM, which was making all kinds of punched card equipment
     and was also in the calculator business[24] to develop his giant
     programmable calculator, the ASCC/Harvard Mark I, based on Babbage's
     Analytical Engine, which itself used cards and a central computing unit.
     When the machine was nished, some hailed it as "Babbage's dream come
     true".[25]
     During the 1940s, with the development of new and more powerful
     computing machines such as the Atanasoff–Berry computer and ENIAC,
     the term computer came to refer to the machines rather than their human
     predecessors.[26] As it became clear that computers could be used for more
     than just mathematical calculations, the eld of computer science
     broadened to study computation in general. In 1945, IBM founded the
     Watson Scienti c Computing Laboratory at Columbia University in New
     York City. The renovated fraternity house on Manhattan's West Side was
fi
        fi
             fi
                  fi
                       fi
                              fi
                                   fi
                                    fi
                                                   fi
                                                           fi
                                                                fi
                                                                     fi
                         IBM's rst laboratory devoted to pure science. The lab is the forerunner of
                         IBM's Research Division, which today operates research facilities around
                         the world.[27] Ultimately, the close relationship between IBM and Columbia
                         University was instrumental in the emergence of a new scienti c discipline,
                         with Columbia offering one of the rst academic-credit courses in computer
                         science in 1946.[28] Computer science began to be established as a distinct
                         academic discipline in the 1950s and early 1960s.[29][30] The world's rst
                         computer science degree program, the Cambridge Diploma in Computer
                         Science, began at the University of Cambridge Computer Laboratory in
                         1953. The rst computer science department in the United States was
                         formed at Purdue University in 1962.[31] Since practical computers became
                         available, many applications of computing have become distinct areas of
                         study in their own rights.
                         See also: History of computing and History of informatics
                         Etymology
                         See also: Informatics § Etymology
                         Although rst proposed in 1956,[32] the term "computer science" appears in
                         a 1959 article in Communications of the ACM,[33] in which Louis Fein argues
                         for the creation of a Graduate School in Computer Sciences analogous to
                         the creation of Harvard Business School in 1921.[34] Louis justi es the name
                         by arguing that, like management science, the subject is applied and
                         interdisciplinary in nature, while having the characteristics typical of an
                         academic discipline.[33] His efforts, and those of others such as numerical
                         analyst George Forsythe, were rewarded: universities went on to create
                         such departments, starting with Purdue in 1962.[35] Despite its name, a
                         signi cant amount of computer science does not involve the study of
                         computers themselves. Because of this, several alternative names have
                         been proposed.[36] Certain departments of major universities prefer the term
                         computing science, to emphasize precisely that difference. Danish scientist
                         Peter Naur suggested the term datalogy,[37] to re ect the fact that the
                         scienti c discipline revolves around data and data treatment, while not
                         necessarily involving computers. The rst scienti c institution to use the
                         term was the Department of Datalogy at the University of Copenhagen,
                         founded in 1969, with Peter Naur being the rst professor in datalogy. The
                         term is used mainly in the Scandinavian countries. An alternative term, also
fi
     fi
          fi
               fi
                    fi                             
                                               fi
                                                    fi
                                                         fi
                                                              fl
                                                                   fi
                                                                           fi
                                                                            fi
                                                                                 fi
          proposed by Naur, is data science; this is now used for a multi-disciplinary
           eld of data analysis, including statistics and databases.
          In the early days of computing, a number of terms for the practitioners of
          the eld of computing were suggested in the Communications of the ACM
          —turingineer, turologist, ow-charts-man, applied meta-mathematician, and
          applied epistemologist.[38] Three months later in the same journal,
          comptologist was suggested, followed next year by hypologist.[39] The term
          computics has also been suggested.[40] In Europe, terms derived from
          contracted translations of the expression "automatic information" (e.g.
          "informazione automatica" in Italian) or "information and mathematics" are
          often used, e.g. informatique (French), Informatik (German), informatica
          (Italian, Dutch), informática (Spanish, Portuguese), informatika (Slavic
          languages and Hungarian) or pliroforiki (πληροφορική, which means
          informatics) in Greek. Similar words have also been adopted in the UK (as
          in the School of Informatics, University of Edinburgh).[41] "In the U.S.,
          however, informatics is linked with applied computing, or computing in the
          context of another domain."[42]
          A folkloric quotation, often attributed to—but almost certainly not rst
          formulated by—Edsger Dijkstra, states that "computer science is no more
          about computers than astronomy is about telescopes."[note 3] 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.
          However, there has been exchange of ideas between the various
          computer-related disciplines. Computer science research also often
          intersects other disciplines, such as cognitive science, linguistics,
          mathematics, physics, biology, Earth science, statistics, philosophy, and
          logic.
          Computer science is considered by some to have a much closer
          relationship with mathematics than many scienti c disciplines, with some
          observers saying that computing is a mathematical science.[29] Early
          computer science was strongly in uenced by the work of mathematicians
          such as Kurt Gödel, Alan Turing, John von Neumann, Rózsa Péter and
          Alonzo Church and there continues to be a useful interchange of ideas
fi
     fi
                       fl
                                fl
                                               fi
                                                                fi
between the two elds in areas such as mathematical logic, category
theory, domain theory, and algebra.[32]
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 de ned.[43]
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 speci c
computations to achieve practical goals, making the two separate but
complementary disciplines.[44]
The academic, political, and funding aspects of computer science tend to
depend on whether a department is formed with a mathematical emphasis
or with an engineering emphasis. Computer science departments with a
mathematics emphasis and with a numerical orientation consider alignment
with computational science. Both types of departments tend to make efforts
to bridge the eld educationally if not across all research.
 fi
      fi
                                               fi
                                                    fi