Informatics is the science of methods and processes of collecting, storing, processing, transmitting, analyzing and evaluating information using computer technologies that make it possible to use it for decision making.

Computer science includes disciplines related to information processing in computers and computer networks : both abstract , such as the analysis of algorithms , and concrete, for example, the development of programming languages ​​and data transfer protocols.

Research topics in computer science include the following questions: what can and cannot be implemented in programs and databases (computability theory and artificial intelligence), how specific computing and information problems can be solved with maximum efficiency (computational complexity theory), in what form should be stored and recover specific kinds of information ( structures and databases ), how programs and people should interact with each other ( user interface and programming languages ​​and knowledge representation ), etc.

Etymology and meaning of the word

The term is German. Informatik was introduced by the German specialist Karl Steinbuch in the article Informatik: Automatische Informationsverarbeitung (Computer Science: Automatic Information Processing) in 1957.

The term "Computer science" appeared in 1959 in the scientific journal Communications of the ACM, in which Louis Fein advocated the creation of a Graduate School in Computer Sciences similar to Harvard Business School, established in 1921. Justifying this name for the school, Louis Fein referred to Management science, which, like computer science, is applied and interdisciplinary in nature, while having characteristics characteristic of a scientific discipline. The efforts of Louis Fein, numerical analyst George Forsythe and others were successful: universities began creating programs related to computer science, starting with Purdue University in 1962.

The French term "informatique" was coined in 1962 by Philippe Dreyfus, who also offered translations into a number of other European languages.

The terms “informology” and “computer science” were proposed in 1962 by corresponding member of the USSR Academy of Sciences Alexander Kharkevich. The fundamentals of computer science as a science were outlined in the book “Fundamentals of Scientific Information” in 1965, which was republished in 1968 under the title “Fundamentals of Computer Science”.

Despite its English-language name, most scientific areas related to computer science do not include the study of computers themselves. As a result, several alternative names have been proposed. Some departments at large universities prefer the term computing science to highlight the difference between the terms. Danish scientist Peter Naur proposed the term datalogy to reflect the fact that the scientific discipline operates with data and processes data, although not necessarily using computers The first academic institution to include this term in its name was the Department of Data Science at the University of Copenhagen, founded in 1969, where Peter Naur worked, becoming the first professor in data science. This term is used mainly in Scandinavian countries. In the rest of Europe, terms often used are derived from shortened translations of the phrases “automatic information” ( for example, informazione automatica in Italian) and “information and mathematics” (information and mathematics ) , for example, informatique (France) , Informatik (Germany), informatica (Italy, Netherlands), informática (Spain, Portugal), informatika (in Slavic languages) or pliroforiki (πληροφορική, which means computer science ) - in Greece. Similar words have also been adopted in the UK, for example by the School of Computer Science at the University of Edinburgh.  

In the Russian, English, French and German languages ​​in the 1960s there was a tendency to replace the term “documentation” with terms based on the word “information”. In Russian, documentaries became a derivative of the term “documentation” and the terms scientific and scientific-technical information became widespread.

In France, the term officially came into use in 1966. In German, the term Informatik initially had a dual meaning. So, in Germany and Great Britain it had the meaning of “computer science”, that is, it meant everything related to the use of computers, and in the GDR, as well as mainly in Europe, it meant science according to the French and Russian model .

Equivalents in English

It is believed that the terms “ informatics ” in European countries and “informatics” in Russian mean the direction called “ computer science ” in English . Another direction devoted to the study of the structure and general properties of objective (scientific) information, sometimes called documentary science (documentary computer science) or automatic analysis of documents, is closely related to the term “information science.”

It is generally accepted that the term “informatics” was introduced into the English language independently by Walter F. Bauer, the founder of “Informatics Inc.” In the USA, the term is currently English. informatics is related to applied computing or data processing in the context of another field, such as bioinformatics and geoinformatics .

In many dictionaries, informatics and computer science are equated with computer science. In the UNESCO thesaurus, “Informatics - Informatics” is given as a synonym for the translation “Computer science”.

Polysemy

A number of computer scientists have argued that there are three distinct paradigms in computer science. For example, Peter Wegner highlighted science, technology and mathematicsPeter Denning's working group argued that these are theory, abstraction (modeling) and design. Amnon H. Eden described these paradigms as:

  • rationalistic paradigm , where computer science is a branch of mathematics, mathematics dominates theoretical computer science and mainly uses logical inference,
  • technocratic paradigm used in engineering approaches, most important in software engineering.
  • and scientific paradigm , where computer science is a branch of the natural (empirical) sciences, but computer science is different in that experiments are carried out on artificial objects (programs and computers).

History

The earliest foundations of what would become computer science predate the invention of the modern digital computer. Machines for calculating multiple arithmetic problems, such as the abacus, have existed since antiquity, helping with calculations such as multiplication and division.

Blaise Pascal designed and built the first working mechanical calculator, known as Pascal's calculator, in 1642.

In 1673, Gottfried Leibniz demonstrated a mechanical calculator called the "Stepped Reckoner". He can be considered the first computer scientist and information theorist because, among other things, he also described the binary number system.

In 1820, Thomas de Colmar commercialized the mechanical calculator after he created his simplified adding machine , which was the first adding machine robust and reliable enough for daily use. Charles Babbage began designing the first automatic mechanical calculator , his difference engine , in 1822, which ultimately gave him the idea for the first programmable mechanical calculator, his Analytical Engine.

He began work on this machine in 1834, and in less than two years many of the basic features of the modern computer were formulated . The most important step was the use of punched cards produced on a Jacquard loom , which opened up endless possibilities for programming. In 1843, while translating a French paper on the Analytical Engine, Ada Lovelace wrote in one of her many notes an algorithm for calculating Bernoulli numbers , which is considered the first computer program.

Around 1885, Herman Hollerith invented the tabulator, which used punched cards to process statistical information; his company eventually became part of IBM. In 1937, a hundred years after Babbage's pipe dream, Howard Aiken persuaded the management of IBM, which manufactured all kinds of punched card equipment and was involved in the calculator business , to develop its giant ASCC/Harvard Mark I programmable calculator , based on analytical Babbage's machine , which in turn used punched cards and a central computing unit. They said about the finished car: “Babbage’s dream has come true”.

In the 1940s, with the advent of new and more powerful computing machines, the term computer began to refer to these machines rather than the people doing the computing (the word "computer" is now rarely used in this sense). As it became clear that computers could be used for more than just mathematical calculations, the field of computer science research expanded to study computing in general. Computer science achieved the status of an independent scientific discipline in the 1950s and early 1960s. The world's first computer science degree, the Cambridge Diploma in Computer Science, was awarded at the Cambridge University Computer Laboratory in 1953. The first such curriculum in the United States appeared at Purdue University in 1962. With the spread of computers, many new self-sufficient scientific directions arose based on calculations using computers.

Few people could have initially imagined that computers themselves would become the subject of scientific research, but in the late 1950s this opinion spread among most scientists. The now famous IBM brand was at that time one of the participants in the revolution in computer science. IBM (short for International Business Machines) released the IBM 704 and later the IBM 709 computers , which were already widely used while these devices were being studied and tested. “Nevertheless, working with the IBM (computer) was full of disappointments... if there was an error in one letter of one instruction, the program would crash and you had to start all over again”. In the late 1950s, computer science was still in its infancy as a discipline, and such problems were common.

Over time, significant advances have been made in the usability and efficiency of computing. In modern society, there is a clear transition among users of computer technology: from its use only by experts and specialists to its use by everyone. Initially, computers were very expensive and in order to use them effectively, the help of specialists was needed. As computers became more common and accessible, routine tasks required less assistance from specialists.

Key achievements

Despite its short history as a formal scientific discipline, computer science has made fundamental contributions to science and society. Essentially, computer science, along with electronics, is one of the fundamental sciences of the current era of human history called the information age . At the same time, computer science is the leader of the information revolution and the third major step in the development of technology, after the industrial revolution (1750-1850 AD) and the Neolithic revolution (8000-5000 BC).

Computer Science Contribution:

  • The beginning of the " digital revolution ", including the information age and the Internet .
  • A formal definition of computation and computability is given, and a proof is given that there are algorithmically intractable problems.
  • The concept of a programming language was introduced , that is, a means for accurately expressing methodological information at various levels of abstraction.
  • Development of cryptography and cryptanalysis.
  • Computational methods have provided the possibility of practical assessment of processes and situations of great complexity, as well as the possibility of conducting experiments solely through software. The possibility of in-depth study of the mind and mapping of the human genome has become possible, thanks to the Human Genome Project . Distributed computing projects such as Folding@Home are investigating the folding of protein molecules.
  • Algorithmic trading has increased the efficiency and liquidity of financial markets by using artificial intelligence , machine learning and other statistical and numerical techniques on large data ranges. Frequent use of algorithmic trading can exacerbate volatility.
  • Computer graphics and CGI are ubiquitous in modern entertainment, especially in television, film, advertising, animation and video games. Even films that do not (explicitly) use CGI are typically shot on digital cameras and subsequently processed or edited in video processing programs.
  • Modeling of various processes, for example in fluid dynamics, physics, electricity, electronic systems and circuits, as well as for modeling society and social situations (in particular, war games), taking into account the environment, etc. Modern computers make it possible to optimize, for example, designs such as whole aircraft project. Notable software is the electronic circuit simulator SPICE, as well as software for the physical implementation of new (or modified) designs, including integrated circuit design.
  • Artificial intelligence is becoming increasingly important, while also becoming more complex and efficient. There are many applications of artificial intelligence (AI), such as robotic vacuum cleaners that can be used at home. AI is also present in video games, fire support robots and anti-missile systems.

Structure of computer science

Computer science is divided into a number of branches. As a discipline, computer science covers a wide range of topics from theoretical studies of algorithms and the limits of computing to the practical implementation of computing systems in the areas of hardware and software. The CSAB , formerly called the Computer Science Accreditation Board, which includes representatives from the Association for Computing Machinery (ACM) and the Computer Society (IEEE-CS), has identified four areas of critical importance to the discipline of computer science: computational theory , algorithms and data structures , programming methodology and languages , computer elements and architecture . In addition to these four areas, the CSAB identifies the following important areas of computer science: software engineering, artificial intelligence, computer networks and telecommunications, database management systems, parallel computing, distributed computing, human-computer interaction, computer graphics, operating systems, numeric and symbolic calculations.

Theoretical computer science

The vast field of theoretical computer science research includes both the classical theory of algorithms and a wide range of topics related to the more abstract logical and mathematical aspects of computing. Theoretical computer science deals with theories of formal languagesautomataalgorithmscomputability and computational complexity , as well as computational graph theorycryptologylogic (including propositional logic and predicate logic ), formal semantics, and lays the theoretical foundations for the development of programming language compilers.

Theory of algorithms

According to Peter Denning the fundamental questions of computer science include the following question: “What can be effectively automated?” The study of algorithm theory focuses on finding answers to fundamental questions about what can be computed and how much resources are needed to perform those computations. To answer the first question, computability theory considers computational problems that can be solved using various theoretical models of computation . The second question is devoted to the theory of computational complexity ; This theory analyzes the time and memory costs of various algorithms when solving a variety of computational problems.

The famous problem, one of the Millennium Challenges, is an unsolved problem in the theory of algorithms.

Information and coding theory

Information theory is concerned with the quantitative assessment of information. This direction was developed thanks to the works of Claude E. Shannon, who found fundamental limitations on signal processing in operations such as data compression, reliable storage and transmission of data.

Coding theory studies the properties of codes (systems for converting information from one form to another) and their suitability for a particular task. The codes are used for data compression , cryptography , error detection and correction , and more recently also for network coding. Codes are being studied to develop efficient and reliable methods for transmitting data .

Algorithms and data structures

Algorithms and data structures, as a branch of computer science, are concerned with the study of the most commonly used computational methods and evaluation of their computational efficiency.

Theory of programming languages

In the theory of programming languages, as a subfield of computer science, they study the design, implementation, analysis and classification of programming languages ​​as a whole, and also study individual elements of languages. This area of ​​computer science, on the one hand, relies heavily on the achievements of such sciences as mathematics, software engineering and linguistics, on the other hand, it itself has a great influence on their development. The theory of programming languages ​​is actively developing, many scientific journals are devoted to this area.

Formal methods

Formal methods are a kind of mathematical approach designed for the specification , development and verification of software and hardware systems. The use of formal methods in software and hardware development is motivated by the expectation that, as in other engineering disciplines, proper mathematical analysis will ensure the reliability and sustainability of the design. Formal methods are an important theoretical basis in software development, especially when reliability or security are involved. Formal methods are a useful addition to software testing as they help avoid errors and also provide a basis for testing. Their widespread use requires the development of special tools. However, the high cost of using formal methods indicates that they are generally used only in the development of highly integrated and mission-critical systems where reliability and security are of paramount importance. Formal methods have a fairly wide application: from the theoretical foundations of computer science (in particular, computational logic , formal languages , automata theory , programs and semantics ) to type systems and problems of algebraic data types in problems of specification and verification of software and hardware.

Applied computer science

Applied computer science aims to apply the concepts and results of theoretical computer science to the solution of specific problems in specific application areas.

Artificial Intelligence

This is an area of ​​computer science that is inextricably linked with such goal-setting processes as problem solving, decision making, adaptation to environmental conditions, learning and communication, inherent in both people and animals. The emergence of artificial intelligence (AI) is associated with cybernetics and dates back to the Dartmouth Conference (1956). Research in the field of artificial intelligence (AI) was necessarily interdisciplinary, and was based on such sciences as: applied mathematics , mathematical logic , semiotics , electrical engineering , philosophy of mind , neurophysiology and social intelligence . Common people associate artificial intelligence primarily with robotics , but in addition, AI is an integral part of software development in a variety of areas. The starting point in the late 1940s was Alan Turing's question , "Can computers think?" and the question remains virtually unanswered, although the " Turing test " is still used to evaluate computer performance at the scale of human intelligence.

Computer architecture and computer engineering

Computer architecture, or digital computer organization, is the conceptual structure of a computer system. It focuses primarily on the way the CPU performs internal operations and accesses memory addresses. It often involves the disciplines of computer and electrical engineering, selecting and connecting hardware components to create computers that satisfy functional, performance, and financial goals.

Computer engineering is concerned with computer hardware , such as the fundamentals of microprocessor technology, computer architectures, and distributed systems. In this way, it provides a link to electrical engineering .

Computer performance analysis

Computer performance analysis is the study of computer performance to improve throughput , manage response time , efficiently use resources, eliminate bottlenecks , and predict performance under expected peak loads.

Computer graphics and visualization

Computer graphics is the study of digital visual content and involves the synthesis and manipulation of image data. This field is associated with many other areas of computer science, including computer vision , image processing and computational geometry , and is also actively used in the field of special effects and video games .

Computer security and cryptography

Computer security is the field of study of computer technology aimed at protecting information from unauthorized access, destruction, or modification while maintaining the availability and usability of the system for intended users. Cryptography is the science of encrypting and decrypting information. Modern cryptography is largely related to computer science, since the design and use of many encryption and decryption algorithms takes into account their computational complexity.

Computer modeling and numerical methods

Computer modeling and numerical methods are areas of research in the problem of constructing mathematical models , quantitative analysis methods , and the use of computers to analyze and solve scientific problems. In practice, this is usually the application of computer modeling and other forms of computation applied to problems in various scientific disciplines.

Computer networks

Another important area is machine-to-machine communication . It enables electronic data exchange between computers and therefore represents the technical basis for the Internet. In addition to developing routers , switches , and firewalls , this discipline includes the development and standardization of network protocols , such as TCP , HTTP , or SOAP , for exchanging data between machines.

Parallel and distributed systems

Parallelism is a property of systems in which several calculations are performed simultaneously, and at the same time, possibly interact with each other. A number of mathematical models have been developed for the general form of parallel computing, including Petri nets , calculus processes , and the Parallel Random Access Machine model . A distributed system extends the idea of ​​parallelism to multiple computers connected through a network. Computers within the same distributed system have their own memory and often exchange information with each other to achieve a common goal.

Databases

A database is a collection of data organized in accordance with certain rules and maintained in computer memory, characterizing the current state of a certain subject area and used to satisfy the information needs of users. Database management occurs using database management systems (DBMS).

Health Informatics

Health informatics examines computational methods for solving problems in health care.

Information Science

Information science is an interdisciplinary field concerned with the analysis, collection, classification, manipulation, storage, retrieval, dissemination and protection of information.

Software engineering

Software engineering is the application of a systematic, disciplined, measurable approach to the development, operation and maintenance of software, and the study of these approaches; that is, the application of the discipline of engineering to software

Natural computer science

Natural computer science is a field of natural science that studies information processing processes in nature, the brain and human society. It is based on such classical scientific directions as the theories of evolution , morphogenesis and developmental biology, systems research, studies of the brain, DNA, immune system and cell membranes, theory of management and group behavior, history and others. Cybernetics , defined as “the science of the general laws of the processes of control and transmission of information in various systems, be they machines, living organisms or society” is a close, but somewhat different scientific direction. Just like mathematics and the main part of modern computer science, it can hardly be classified as the field of natural sciences, since it differs sharply from them in its methodology (despite the widespread use of mathematical and computer modeling in modern natural sciences).

In the scientific community

Conferences are strategic events for scientific research in computer science. During these conferences, researchers from the public and private sectors meet and present their latest work. The proceedings of these conferences are an important part of the computer science literature.

Magazines

In education

In some universities, computer science is taught as a theoretical study of computation and automatic inference. Such programs often include theory of algorithms, analysis of algorithms, formal methodsparallelism in computer sciencedatabasescomputer graphicssystems analysis, and others. As a rule, such curricula include teaching programming, but do not focus on it as the final goal of learning, but consider programming as a necessary element in the study of all other areas of computer science. The Association for Computing Machinery (ACM) develops guidelines for university computer science curricula.

Other colleges and universities, as well as high schools and vocational schools that teach computer science, emphasize the practice of programming in their courses rather than the theory of algorithms and calculations. Such training programs typically focus on those practical skills that are important to employees in the software engineering industry.

Education in the USA

In recent years, interest in the use of computer science methods in various areas of scientific research and practical development has been increasing. This kind of interest is shown not only by scientists, but also by government agencies. For example, in 2005, the US Presidential Information Technology Advisory Committee prepared a report on this topic. This report presented the results of an analysis of activities in this area in the United States, reporting the need for immediate decisive action in order to prevent the negative trends observed in American science and the education system.

The US economy increasingly relies on computer science professionals, but training in this field is missing from most US academic curricula. A report entitled "Running on Empty: The Failure to Teach K-12 Computer Science in the Digital Age" was released in October 2010 by ACM and the Computer Science Teachers Association (CSTA) and found that only 14 states had adopted computer science education standards in higher education. The report also notes that only in 9 states the subject “Computer Science” is a basic (compulsory) academic subject required for certification in high school.

In alliance with Running on Empty, a new nonpartisan advocacy coalition, Computing in the Core (CinC), was created to influence federal and state policy. As a result of the coalition's work, the Computer Science Education Act was adopted, providing subsidies to those states that are working to improve the quality of computer science education and support computer science teachers.