Computer's science
The computer sciences or informatics sciences are the formal sciences that cover the theoretical bases of information and computation, as well as their application in computational systems. The body of knowledge of computer science is often described as the systematic study of algorithmic processes that describe and transform information: their theory, analysis, design, efficiency, implementation, systematized algorithms, and application. In terms More specific, it deals with the systematic study of the feasibility, structure, expression and mechanization of methodical procedures (or algorithms) that underlie the acquisition, representation, processing, storage, communication and access to information. The information may be encoded in the form of bits in a computer's memory, or in some other object, such as the genes and proteins in a biological cell.
There are various branches or disciplines within computer science; some highlight the specific results of computation (such as computer graphics), while others (such as computational complexity theory) relate to properties of the algorithms used to perform computation; and others focus on problems that require the implementation of computer systems. For example, programming language theory studies describing a computation, while computer programming applies specific programming languages to develop a solution to a specific computational problem. A computer scientist specializes in the theory of computing and in the design and implementation of computer systems.
According to Peter J. Denning, the fundamental question underlying computer science is: "What can be (efficiently) automated?"
History
The history of computer science predates the invention of the modern digital computer. Before the 1920s, the term computer referred to a human being who performed calculations. The first foundations of what would become computer science predate the invention of the digital computer. modern. These were machines for calculating fixed numerical tasks, like the abacus have been around since ancient times, aiding in calculations such as multiplication and division. Furthermore, algorithms for performing calculations have been around since ancient times, even before sophisticated computing equipment was created. The ancient Sanskrit scholars Shulba Sutras, or "Rules of the Rope," is a book of algorithms written in 800 B.C. C. for the construction of geometric objects such as altars using a peg and string, an early precursor to the modern field of computational geometry.
Blaise Pascal designed and built the first working mechanical calculator, the Pascalina, in 1642. In 1673 Gottfried Leibniz created a digital mechanical calculator, called the Stepped Reckoner. He can be considered the first computer scientist and information theorist, among other reasons, because he was the first to document the binary number system. In 1820, Charles Xavier Thomas of Colmar launched the industrial mechanical calculator when he released his simplified arithmometer, which was the first calculating machine strong enough and reliable enough for daily use in an industrial setting. Charles Babbage began the design of the first automatic mechanical calculator, his difference engine, in 1822, which eventually gave him the idea for the first programmable mechanical calculator, his Analytical Engine. He began developing this machine in 1834 and in less than two years had outlined many of the salient features of modern equipment. A fundamental step was the adoption of a punch card system derived from the Jacquard loom, making it infinitely programmable. In 1843, during the translation of a French article on the analytical engine, Ada Lovelace wrote, in one of the many notes included in the article, an algorithm for calculating Bernoulli numbers, which is considered the first computer program. Around 1885, Herman Hollerith invented the tabulating machine, which used punched cards to process statistical information; eventually his company became part of IBM. In 1937, one hundred years after Babbage's pipe dream, Howard Aiken was convinced by IBM (who were manufacturing all kinds of punch card equipment and as well as the business calculator) to develop their giant programmable calculator, the ASCC/Harvard Mark I. It was based on Babbage's analytical engine, which in turn uses punched cards and a central computing unit. When the machine was finished, some people hailed it as "Babbage's dream come true".
New machines
During the 1940s, as new and more powerful computing machines were developed, the term computer came to be used to refer to machines and no longer to their human ancestors. it became clear that computers could not only be used to perform mathematical calculations, the field of computer science was broadened to study computation in general. Computer science began to establish itself as a distinct academic discipline in the 1950s and early 1960s. The world's first university degree program then emerged, the Cambridge Diploma in Computer Science, from the Cambridge Computer Lab. (Department of Computer Science) at the University of Cambridge, in 1953. The first undergraduate degree program in computer science in the United States was formed at Purdue University in 1962. Since practical computers have become available, many Applications of computer science became different areas of study on their own terms.
Although many initially believed that it was impossible that computers in themselves could actually constitute a scientific field of study, by the late 1950s it was gradually becoming accepted among the older academic population.
The scientific discipline of computer science was born in the early 1940s with the confluence of algorithm theory, mathematical logic, and the invention of the stored program in an electronic computer. Examples of this are the works of Alan Turing, Alonzo Church and Kurt Gödel in 1930 about algorithms and their work on rule systems (see Lambda Calculus, Turing Machine, and Undecidable Problems), the algorithms created by Augusta Ada sixty years earlier, the analog computer built by Vannevar Bush in 1920 and electrical computers built by Howard Aiken and Konrad Zuse in the 1930s. The writings of John Von Neumann gave considerable intellectual depth to this emerging discipline in the mid-1940s.
By 1960, there was a sufficient body of knowledge to warrant the creation of academic departments and degree programs for this discipline. IBM is recognized as the brand that was part of the computer science revolution during that time. IBM (short for International Business Machines) released the IBM 704 and later the IBM 709 computers, which were widely used during the period of exploring such devices. "However, working with IBM [team] was frustrating...if you miss a letter in any instruction, the program would crash, and you would have to start the whole process over again" During the 1950s, the discipline of computer science was in its development stage, and these problems were commonplace.
Time has brought significant improvements in the usability and efficiency of computing technology. Modern society has witnessed a significant shift in the users of computing technology, from being used solely by experts, professionals and scientists, to a user base that is almost ubiquitous to the theory with which this type of computing was developed and works. technology. Initially, computers were quite expensive, and a certain degree of human assistance was necessary for efficient use - partly by professional computer operators. As computer adoption became more widespread and affordable, less human assistance was needed in common use.
Greatest Achievements
Despite its short time as a formal scientific discipline, computer science has made a number of important contributions to science and society – in fact, along with electronics, it is a foundational science of computer science. current epoch in human history called the Information Age and the Information Revolution, seen as the third great leap in human technological progress after the Industrial Revolution (1750-1850) and the Neolithic revolution (8000-5000 BCE).).
These contributions to humanity include:
- The beginning of the "Digital Revolution", which includes the current Information Age and the Internet.
- A formal definition of computing and computing, and a formal demonstration that there are problems that are computationally insoluble and intractable.
- The concept of programming language, a tool for accurate expression of methodological information at various levels of abstraction.
- In cryptology, Enigma's crypto-analysis was an important factor, which contributed to the Allied victory in World War II.
- The Scientific Compute allowed the evaluation of processes and situations of great complexity, as well as experimentation by software. It also allowed the advance in research of the human mind and the mapping of the human genome together with the Human Genome Project. Distributed computing projects such as Folding@home that studied protein folding.
- Computer graphics and computer-generated images became omnipresent in the modern era of entertainment, especially in television, cinema, advertising, animation and video games. [chuckles]required]
- Simulation of several processes, including computer fluid dynamics, physical, electrical, electronic and circuit systems, as well as societies and social situations (especially war games), along with their habitats, among many others. Modern computers allow the optimization of designs such as complete planes. The design of electric and electronic circuits with SPICE is highlighted, as well as software for the physical realization of new designs. The latter includes essential design software for integrated circuits.
- Artificial Intelligence (IA) is increasingly important, as it becomes more efficient and complex over time. There are many AI applications, some can be seen at home, such as robotic vacuum cleaners. It is also present in video games and in the modern battlefield in unmanned planes, anti-missile systems, and squad support robots.
Philosophy
Some computer scientists have argued for distinguishing three different paradigms in computer science. Peter Wegner has argued that those paradigms are science, technology, and mathematics. Peter Denning's research group argued that they are abstraction (modelling), and design. Amnon H. Eden describes it as the “rationalist paradigm” (which treats computer science as a branch of mathematics, which is prevalent in theoretical computer science and primarily employs deductive reasoning), the technocratic paradigm (which could be found in engineering approaches, most prominent in software engineering) and the scientific paradigm (which approaches objects related to computing from the empirical perspective of the natural sciences identifiable in some branches of artificial intelligence).
Despite its first proposition in 1956, the term "computer science" appears in 1959 in an article in Communications of the ACM (a prestigious scientific publication for experienced readers). in all fields of computing and information systems), in which Louis Fein discusses the creation of a School of Graduate Studies in Computer Science analogous to the creation of Harvard Business School in 1921, justifying the name with the argument that: As administrative science, the subject or area of knowledge can be applied, it is interdisciplinary in nature and has the typical characteristics of an academic discipline. His efforts and those of others, such as numerical analyst George Forsythe, were rewarded: universities went on to create such programs of study, beginning in 1962 at Purdue. Despite the name of this academic discipline, a significant number of topics in computer science do not involve the study of computers, for this reason many alternative names have been proposed.
Some university departments prefer the term “computer science” to emphasize this difference. Danish scientist Peter Naur suggested the term datalogy, to reflect the fact that this scientific discipline revolves around data and data processing, while not necessarily involving computers. The first scientific institution to use the term was the Department of Datalogy at the University of Copenhagen, founded in 1969, with Peter Naur as professor of datalogy. The term is used in Scandinavian countries. In the early years of computing, a number of terms for practitioners in the computing field were proposed in the journal Communications of the ACM – turing engineer, turologist , flowchart man, meta-applied mathematician, and applied epistemologist. Three months later in that same publication science, the term computologist was suggested. The following year in the same publication the term hypologo arose. The term computica has also been suggested. In Europe, terms derived from translations of the expression " automatic information" (e.g. "informazione automatica" in Italian) or "information and mathematics" are frequently used, e.g. informatique (French), Informatik (German), Informática (Italy, the Netherlands), Informática (Spain and Portugal), informatika (Slavic languages) or pliroforiki (πληροφορική, meaning informatics) in Greek. Similar words have been adopted in some places in the UK, for example at the University of Edinburgh. But these do not reflect the aspect of computability, for this reason in both an academic and industrial scientific research context the term computer science it is mostly used in scientific publications and conferences.
Computer Science Fields
As a scientific discipline, computer science covers a range of topics, from theoretical studies of algorithms and the limits of computation to practical problems of implementing computer systems in hardware and software. Computing Sciences Accreditation Board or the Accreditation Board in Computer Science. –Composed of representatives of the Association for Computing Machinery (ACM), and the IEEE Computing Society (IEEE-CS) – identifies four areas that it considers crucial for the discipline of computer science: theory of computation, algorithms and structures data, methodology and programming languages, and computer architecture. In addition to these four areas, C.S.A.B. It also identifies areas such as software engineering, artificial intelligence, computer networks, database systems, parallel computing, distributed computing, human-computer interaction, computer graphics, operating systems, numerical and symbolic computation, being important areas of the computer science.
The broader field of theoretical computer science encompasses both classical theory of computation and a wide range of other topics that focus on the more abstract, logical, and mathematical aspects of computing.
Theory of Computation
According to Peter J. Denning, the fundamental question in computer science is, "What can be efficiently automated?" The study of computer theory is focused on answering fundamental questions about what can be computed and what amount of resources are required to perform such computations. In an effort to answer this question, computability theory examines which computational problems can be solved in various theoretical models of computation. The second question is addressed by computational complexity theory, which studies the time and space costs associated with different approaches to solving a multitude of computational problems.
The famous problem "P=NP?" is one of the Millennium Problems, it is an open problem in computer science.
P = NP? | GNITIRW-TERCES | |||
Theory of automatons | Theory of computing | Computer complexity theory | Criptography | Quantum computing |
Information theory and codes
Information theory is concerned with the quantification of information. It was developed by Claude E. Shannon to develop the fundamental limits of signal processing and its operations, such as data compression and storage as well as reliable data communication. Code theory is an area of mathematics that seeks to solve the problem of detecting and correcting errors when transmitting information. Codes are used to compress data, cryptography, and more recently for network coding. The codes are studied for the purpose of designing efficient and secure methods for data transmission.
Algorithms and data structures
Algorithms and data structures are the study of commonly used computational methods and their computational efficiency.
O(n2){displaystyle O(n^{2}}}} | ||||
Analysis of algorithms | Algoritmos | Data structures | Combined optimization | Computational geometry |
Theory of programming languages
Programming language theory is a branch of computer science that deals with the design, implementation, analysis, characterization, and classification of programming languages and their individual characteristics, falls within the discipline of computer science. computing, both in dependence on mathematics and linguistics. It is an active research area, with numerous academic journals and specialized conferences on the subject.
Interpreter Interpreter x:Int{displaystyle Gamma vdash x:{text{Int}}}}} | ||
Type theory | Compilers | Programming languages |
Formal Methods
Formal methods are a particular type of technique based on mathematics for the formal specification, development, and formal verification of software and hardware systems. The use of formal methods for software and hardware design is motivated by the expectation that proper mathematical analysis can contribute to the reliability and robustness of a design. These form an important theoretical basis for software engineering, especially when security or robustness is involved. Formal methods are a useful adjunct to software testing, as they help prevent bugs and can also provide a framework for testing. For its industrial use, the support of tools is required. However, the high cost of using formal methods means that they are generally only used in the development of high-integrity, critical systems where life or safety is of very high importance.
Formal methods are best described as applying a wide variety of theoretical foundations from computer science, particularly computational logic, formal languages, automata theory, and programming language semantics but also areas such as computer systems. types and types of algebraic data to problems in the specification and verification of software and hardware.
Applied Computer Science
Applied computer science attempts to identify certain conceptual and theoretical aspects of computer science that can be directly applied to solving real-world problems.
Artificial intelligence
This branch of computer science is intended or required for the synthesis of goal-oriented processes such as problem solving, decision making, environmental adaptation, learning, and communication found in humans and animals. Since its origins in cybernetics and the Dartmouth Conference (1956), artificial intelligence (AI) research has necessarily been multidisciplinary, drawing on areas of expertise such as mathematics, symbolic logic, semiotics, electrical engineering, philosophy of mind, neurophysiology, and social intelligence. AI is erroneously associated in the popular mind with robotic development, but its main field of practical application has been as an embedded component in areas of software development that require computational understanding and modeling, such as finance and economics. data mining and physical sciences. The term was coined by the computer scientist and mathematician John McCarthy in 1955.
Computer Architecture
Computer architecture or organization of digital computers is the conceptual design and fundamental operational structure of a computing system. It focuses largely on the way the central processing unit internally performs and accesses addresses in memory. The field involves disciplines of computer engineering and electrical engineering, the selection and interconnection of computer components. hardware to create equipment that meets functions, performance, and costs.
Computer performance analysis
Equipment performance analysis is the study of the work that flows through the equipment with the general objective of improving performance and controlling response time, using resources efficiently, eliminating bottlenecks, and the prediction of performance under anticipated maximum loads.
Scientific Computing
Computer science (or scientific computing) is the field of study that deals with the construction of mathematical models and quantitative analysis techniques, as well as the use of computers to analyze and solve scientific problems. In practical use, it is typically the application of computer simulation and other forms of computation to problems in various scientific disciplines.
Numerical analysis | Computer physics | Computational chemistry | Bioinformatics |
Computer networks
This branch of computer science aims to manage the connectivity between networks (LAN / WAN) of computers worldwide.
Concurrent, parallel and distributed systems
Concurrency is a property of systems in which multiple computations are running simultaneously, and potentially interacting with each other. A number of mathematical models have been developed for general concurrent computation, including Petri nets, process computations, and the parallel random access machine model. A distributed system extends the idea of simultaneity across multiple computers connected via a network. Computers within the same distributed system have their own private memory, and information is often exchanged with each other to achieve a common goal.
Databases
A database is intended to organize, store, and retrieve large amounts of data in a simple way. Digital databases are managed by database management systems to store, create, maintain, and query data, through database models and query languages. A database is a set of interrelated data among themselves.
Health informatics
Information Science
The field studies the structure, algorithms, behavior, and interactions of natural and man-made systems that store, process, access, and communicate information. It also develops its own conceptual and theoretical foundations and employs foundations developed in other fields. A modern application is Big Data, which consists of processing a set of data (from sources such as commercial transactions, web forms, images, videos, emails, social networks, among others), which are submitted to computer analysis tools that allow extracting valuable information to predict future behaviors and formulate decision-making strategies.
Information search and recovery | Representation of knowledge | Processing of natural language | Personal-computing interaction |
Software engineering
Software engineering is the study of designing, implementing, and modifying software in order to ensure that it is of high quality, affordable, easy to maintain, and quick to build. It is a systematic approach to software design, which involves the application of software engineering practices. Software engineers deal in software organization and analysis — they deal not only with creating or manufacturing new software, but also with its internal maintenance and layout. They are projected to be among the fastest growing occupations between 2008 and 2018. Due to the novelty of this subfield, formal education in Software Engineering is generally part of computer science curricula, the vast majority of engineers software developers have a degree in computer science with no engineering background.
Relation to other fields
Because it is a recent discipline, there are several alternative definitions for computer science. This can be seen as a form of science, mathematics or a new discipline that cannot be categorized according to current models.
Computer science frequently intersects with other research areas, such as physics and linguistics. But it is with mathematics that it is considered to have a greater degree of relationship. This is evidenced by the fact that early work in the area was heavily influenced by mathematicians such as Kurt Gödel and Alan Turing. Today there continues to be a useful exchange of ideas between the two fields in areas such as mathematical logic, category theory, domain theory, algebra, and geometry.
Another point to note is that, despite its name, computer science rarely involves the actual study of the machines known as computers. In fact, the renowned scientist Edsger Dijkstra is widely quoted for the phrase "Computer science is as little related to computers as astronomy is to telescopes." Computer science research is also often related to other disciplines, such as cognitive science, physics (see quantum computing), linguistics, etc.
The relationship between computer science and software engineering is a hotly contested topic, with disputes over what the term "software engineering" and about how computer science is defined. Some people believe that software engineering would be a subset of computer science. Others, taking into account the relationship between other scientific and engineering disciplines, believe that the main objective of computer science would be to study the properties of computation in general, while the objective of software engineering would be to design specific computations for achieve practical goals, thereby becoming different disciplines. This point of view is the one held, for example, by Parnas (1998). There are even others who maintain that software engineering could not exist.
Academic, political, and funding issues in the fields of computer science tend to be drastically influenced by the judgment of the department in charge of research and education at each university, which may be math-oriented or engineering-oriented. Computer science departments oriented towards theoretical mathematics tend to align themselves on the side of scientific computing and numerical computation applications.
The term "scientific computing", not to be confused with computer science, designates all those practices aimed at modeling, setting up experiments and validating scientific theories using computational means. In these cases, computing is a mere tool and the effort is aimed at advancing in the objective fields (physics, biology, fluid mechanics, radio transmission...), rather than in computing science itself.
Finally, the general public sometimes confuses computer science with vocational areas dealing with computers or thinks it is about their own experience with computers, which often includes activities such as gaming, web browsing, and text processing. However, the focus of computer science goes beyond understanding the properties of the programs used to implement software applications such as games and web browsers, and uses that understanding to create new programs or improve existing ones.
Contenido relacionado
Programmable Read Only Memory
Patrick Volkerding
Javascript