stringtranslate.com

Ciencias de la Computación

Áreas fundamentales de la informática

La informática es el estudio de la computación , la información y la automatización . [1] [2] [3] La informática abarca disciplinas teóricas (como algoritmos , teoría de la computación y teoría de la información ) hasta disciplinas aplicadas (incluido el diseño e implementación de hardware y software ). [4] [5] [6]

Los algoritmos y las estructuras de datos son fundamentales para la informática. [7] La ​​teoría de la computación se ocupa de los modelos abstractos de computación y las clases generales de problemas que se pueden resolver utilizándolos. Los campos de la criptografía y la seguridad informática implican el estudio de los medios para la comunicación segura y la prevención de vulnerabilidades de seguridad . Los gráficos de computadora y la geometría computacional abordan la generación de imágenes. La teoría del lenguaje de programación considera diferentes formas de describir los procesos computacionales, y la teoría de bases de datos se ocupa de la gestión de repositorios de datos. La interacción humano-computadora investiga las interfaces a través de las cuales interactúan los humanos y las computadoras, y la ingeniería de software se centra en el diseño y los principios detrás del desarrollo de software. Áreas como los sistemas operativos , las redes y los sistemas integrados investigan los principios y el diseño detrás de los sistemas complejos . La arquitectura informática describe la construcción de componentes informáticos y equipos operados por computadora. La inteligencia artificial y el aprendizaje automático tienen como objetivo sintetizar procesos orientados a objetivos como la resolución de problemas, la toma de decisiones, la adaptación ambiental, la planificación y el aprendizaje que se encuentran en humanos y animales. Dentro de la inteligencia artificial, la visión por computadora tiene como objetivo comprender y procesar datos de imágenes y videos, mientras que el procesamiento del lenguaje natural tiene como objetivo comprender y procesar datos textuales y lingüísticos.

La preocupación fundamental de la informática es determinar qué se puede y qué no se puede automatizar. [2] [8] [3] [9] [10] El Premio Turing es generalmente reconocido como la más alta distinción en informática. [11] [12]

Historia

Gottfried Wilhelm Leibniz (1646-1716) desarrolló la lógica en un sistema numérico binario y ha sido llamado el "fundador de la informática". [13]
A Charles Babbage se le denomina a veces el «padre de la informática». [14]
Ada Lovelace publicó el primer algoritmo pensado para ser procesado en un ordenador. [15]

Los primeros cimientos de lo que se convertiría en la ciencia informática son anteriores a la invención de la computadora digital moderna . Las máquinas para calcular tareas numéricas fijas, como el ábaco, han existido desde la antigüedad, ayudando en cálculos como la multiplicación y la división. Los algoritmos para realizar cálculos han existido desde la antigüedad, incluso antes del desarrollo de equipos informáticos sofisticados. [16]

Wilhelm Schickard diseñó y construyó la primera calculadora mecánica funcional en 1623. [17] En 1673, Gottfried Leibniz demostró una calculadora mecánica digital, llamada Reckoner escalonado . [18] Leibniz puede ser considerado el primer científico informático y teórico de la información, por varias razones, incluido el hecho de que documentó el sistema numérico binario. En 1820, Thomas de Colmar lanzó la industria de la calculadora mecánica [nota 1] cuando inventó su aritmómetro simplificado , la primera máquina calculadora lo suficientemente fuerte y confiable para ser utilizada diariamente en un entorno de oficina. Charles Babbage comenzó el diseño de la primera calculadora mecánica automática , su máquina diferencial , en 1822, que finalmente le dio la idea de la primera calculadora mecánica programable , su máquina analítica . [19] Comenzó a desarrollar esta máquina en 1834, y "en menos de dos años, había esbozado muchas de las características sobresalientes de la computadora moderna". [20] "Un paso crucial fue la adopción de un sistema de tarjetas perforadas derivado del telar Jacquard " [20] haciéndolo infinitamente programable. [nota 2] En 1843, durante la traducción de un artículo francés sobre la máquina analítica, Ada Lovelace escribió, en una de las muchas notas que incluyó, un algoritmo para calcular los números de Bernoulli , que se considera el primer algoritmo publicado específicamente diseñado para su implementación en una computadora. [21] Alrededor de 1885, Herman Hollerith inventó el tabulador , que usaba tarjetas perforadas para procesar información estadística; finalmente su compañía pasó a formar parte de IBM . Siguiendo a Babbage, aunque sin saber de su trabajo anterior, Percy Ludgate publicó en 1909 [22] el segundo de los dos únicos diseños de máquinas analíticas mecánicas de la historia. En 1914, el ingeniero español Leonardo Torres Quevedo publicó sus Ensayos sobre automática [ 23] y diseñó, inspirado por Babbage, una máquina calculadora electromecánica teórica que debía ser controlada por un programa de sólo lectura. El artículo también introdujo la idea de la aritmética de punto flotante [ 24] [25]En 1920, para celebrar el centenario de la invención del aritmómetro, Torres presentó en París el Aritmómetro Electromecánico , un prototipo que demostraba la viabilidad de una máquina analítica electromecánica, [26] en la que se podían escribir órdenes y los resultados imprimirse automáticamente. [27] En 1937, cien años después del sueño imposible de Babbage, Howard Aiken convenció a IBM, que fabricaba todo tipo de equipos de tarjetas perforadas y también estaba en el negocio de las calculadoras [28] para que desarrollara su calculadora programable gigante, la ASCC/Harvard Mark I , basada en la máquina analítica de Babbage, que a su vez utilizaba tarjetas y una unidad central de cómputo. Cuando la máquina estuvo terminada, algunos la aclamaron como "el sueño de Babbage hecho realidad". [29]

Durante la década de 1940, con el desarrollo de nuevas y más potentes máquinas de computación como la computadora Atanasoff-Berry y ENIAC , el término computadora pasó a referirse a las máquinas en lugar de a sus predecesores humanos. [30] A medida que se hizo evidente que las computadoras podían usarse para más que solo cálculos matemáticos, el campo de la informática se amplió para estudiar la computación en general. En 1945, IBM fundó el Laboratorio de Computación Científica Watson en la Universidad de Columbia en la ciudad de Nueva York . La renovada casa de la fraternidad en el West Side de Manhattan fue el primer laboratorio de IBM dedicado a la ciencia pura. El laboratorio es el precursor de la División de Investigación de IBM, que hoy opera instalaciones de investigación en todo el mundo. [31] En última instancia, la estrecha relación entre IBM y la Universidad de Columbia fue fundamental en el surgimiento de una nueva disciplina científica, y Columbia ofreció uno de los primeros cursos de crédito académico en informática en 1946. [32] La informática comenzó a establecerse como una disciplina académica distinta en la década de 1950 y principios de la de 1960. [33] [34] El primer programa de grado en ciencias de la computación del mundo, el Diploma de Cambridge en Ciencias de la Computación , comenzó en el Laboratorio de Computación de la Universidad de Cambridge en 1953. El primer departamento de ciencias de la computación en los Estados Unidos se formó en la Universidad de Purdue en 1962. [35] Desde que las computadoras prácticas estuvieron disponibles, muchas aplicaciones de la computación se han convertido en áreas de estudio distintas por derecho propio.

Etimología y alcance

Aunque se propuso por primera vez en 1956, [36] el término "ciencia de la computación" aparece en un artículo de 1959 en Communications of the ACM , [37] en el que Louis Fein aboga por la creación de una Escuela de Graduados en Ciencias de la Computación análoga a la creación de la Escuela de Negocios de Harvard en 1921. [38] Louis justifica el nombre argumentando que, al igual que la ciencia de la gestión , la materia es de naturaleza aplicada e interdisciplinaria, al tiempo que tiene las características típicas de una disciplina académica. [37] Sus esfuerzos, y los de otros como el analista numérico George Forsythe , fueron recompensados: las universidades continuaron creando dichos departamentos, comenzando por Purdue en 1962. [39] A pesar de su nombre, una cantidad significativa de la ciencia de la computación no implica el estudio de las computadoras en sí. Debido a esto, se han propuesto varios nombres alternativos. [40] Ciertos departamentos de las principales universidades prefieren el término ciencia de la computación , para enfatizar precisamente esa diferencia. El científico danés Peter Naur sugirió el término datalogía [41] para reflejar el hecho de que la disciplina científica gira en torno a los datos y el tratamiento de datos, aunque no necesariamente involucra computadoras. La primera institución científica en utilizar el término fue el Departamento de Datalogía de la Universidad de Copenhague, fundado en 1969, siendo Peter Naur el primer profesor de datalogía. El término se utiliza principalmente en los países escandinavos. Un término alternativo, también propuesto por Naur, es ciencia de datos ; ahora se utiliza para un campo multidisciplinario de análisis de datos, que incluye estadísticas y bases de datos.

En los primeros días de la informática, se sugirieron varios términos para los profesionales del campo de la informática en las Comunicaciones de la ACM : turingineer , turologist , flow-charts-man , applied meta-mathematician y applied epistemologist . [42] Tres meses después, en la misma revista, se sugirió comptologist , seguido al año siguiente por hypologist . [43] También se ha sugerido el término computics . [44] En Europa, se utilizan a menudo términos derivados de traducciones contraídas de la expresión «información automática» (p. ej., «informazione automatica» en italiano) o «información y matemáticas», p. ej., informatique (francés), Informatik (alemán), informatica (italiano, holandés), informática (español, portugués), informatika ( lenguas eslavas y húngaro ) o pliroforiki ( πληροφορική , que significa informática) en griego . También se han adoptado palabras similares en el Reino Unido (como en la Escuela de Informática de la Universidad de Edimburgo ). [45] «En los EE. UU., sin embargo, la informática está vinculada con la informática aplicada, o la informática en el contexto de otro dominio». [46]

Una cita folclórica, a menudo atribuida a Edsger Dijkstra (aunque casi con certeza no fue la primera en formularla) , afirma que «la informática no tiene que ver con ordenadores, al igual que la astronomía con los telescopios». [nota 3] El diseño y la implementación de ordenadores y sistemas informáticos se considera generalmente competencia de disciplinas distintas a la informática. Por ejemplo, el estudio del hardware informático suele considerarse parte de la ingeniería informática , mientras que el estudio de los sistemas informáticos comerciales y su implementación suele denominarse tecnología de la información o sistemas de información . Sin embargo, ha habido un intercambio de ideas entre las diversas disciplinas relacionadas con la informática. La investigación en informática también suele cruzarse con otras disciplinas, como la ciencia cognitiva , la lingüística , las matemáticas , la física , la biología , las ciencias de la Tierra , la estadística , la filosofía y la lógica .

Algunos consideran que la informática tiene una relación mucho más estrecha con las matemáticas que muchas disciplinas científicas, y algunos observadores dicen que la informática es una ciencia matemática. [33] La informática temprana estuvo fuertemente influenciada por el trabajo de matemáticos como Kurt Gödel , Alan Turing , John von Neumann , Rózsa Péter y Alonzo Church y continúa habiendo un intercambio útil de ideas entre los dos campos en áreas como la lógica matemática , la teoría de categorías , la teoría del dominio y el álgebra . [36]

La relación entre la informática y la ingeniería de software es un tema polémico, que se complica aún más por las disputas sobre lo que significa el término "ingeniería de software" y cómo se define la informática. [47] David Parnas , inspirándose en la relación entre otras disciplinas de ingeniería y ciencia, ha afirmado que el enfoque principal de la informática es estudiar las propiedades de la computación en general, mientras que el enfoque principal de la ingeniería de software es el diseño de cálculos específicos para lograr objetivos prácticos, lo que hace que las dos disciplinas sean separadas pero complementarias. [48]

Los aspectos académicos, políticos y de financiación de la informática tienden a depender de si un departamento se forma con énfasis en matemáticas o con énfasis en ingeniería. Los departamentos de informática con énfasis en matemáticas y con orientación numérica consideran la alineación con la ciencia computacional . Ambos tipos de departamentos tienden a hacer esfuerzos para unir el campo educativamente, si no en toda la investigación.

Filosofía

Epistemología de la informática

A pesar de la palabra ciencia en su nombre, existe un debate sobre si la informática es o no una disciplina de la ciencia, [49] las matemáticas, [50] o la ingeniería. [51] Allen Newell y Herbert A. Simon argumentaron en 1975,

La informática es una disciplina empírica. La habríamos llamado ciencia experimental, pero, al igual que la astronomía, la economía y la geología, algunas de sus formas únicas de observación y experiencia no encajan en el estereotipo estrecho del método experimental. No obstante, son experimentos. Cada nueva máquina que se construye es un experimento. En realidad, la construcción de la máquina plantea una pregunta a la naturaleza; y escuchamos la respuesta observando la máquina en funcionamiento y analizándola con todos los medios analíticos y de medición disponibles. [51]

Desde entonces se ha argumentado que la informática puede clasificarse como una ciencia empírica, ya que hace uso de pruebas empíricas para evaluar la corrección de los programas , pero sigue habiendo un problema en la definición de las leyes y teoremas de la informática (si existen) y la definición de la naturaleza de los experimentos en la informática. [51] Los defensores de clasificar la informática como una disciplina de ingeniería argumentan que la fiabilidad de los sistemas computacionales se investiga de la misma manera que los puentes en la ingeniería civil y los aviones en la ingeniería aeroespacial . [51] También argumentan que mientras que las ciencias empíricas observan lo que existe actualmente, la informática observa lo que es posible que exista y, aunque los científicos descubren leyes a partir de la observación, no se han encontrado leyes adecuadas en la informática y, en cambio, se ocupa de crear fenómenos. [51]

Los defensores de clasificar la informática como una disciplina matemática argumentan que los programas informáticos son realizaciones físicas de entidades matemáticas y programas que pueden razonarse deductivamente a través de métodos formales matemáticos . [51] Los científicos informáticos Edsger W. Dijkstra y Tony Hoare consideran las instrucciones para los programas informáticos como oraciones matemáticas e interpretan la semántica formal de los lenguajes de programación como sistemas axiomáticos matemáticos . [51]

Paradigmas de la informática

Varios científicos informáticos han defendido la distinción de tres paradigmas separados en la ciencia de la computación. Peter Wegner sostuvo que esos paradigmas son la ciencia, la tecnología y las matemáticas. [52] El grupo de trabajo de Peter Denning sostuvo que son la teoría, la abstracción (modelado) y el diseño. [33] Amnon H. Eden los describió como el "paradigma racionalista" (que trata la ciencia de la computación como una rama de las matemáticas, que prevalece en la ciencia de la computación teórica y emplea principalmente el razonamiento deductivo), el "paradigma tecnocrático" (que podría encontrarse en enfoques de ingeniería, más prominentemente en la ingeniería de software), y el "paradigma científico" (que aborda los artefactos relacionados con la computación desde la perspectiva empírica de las ciencias naturales , [53] identificable en algunas ramas de la inteligencia artificial ). [54] La ciencia de la computación se centra en los métodos involucrados en el diseño, especificación, programación, verificación, implementación y prueba de sistemas informáticos creados por humanos. [55]

Campos

Como disciplina, la informática abarca una variedad de temas, desde estudios teóricos de algoritmos y los límites de la computación hasta las cuestiones prácticas de implementación de sistemas informáticos en hardware y software. [56] [57] CSAB , anteriormente llamada Computing Sciences Accreditation Board (Junta de Acreditación de Ciencias de la Computación), que está formada por representantes de la Association for Computing Machinery (ACM) y la IEEE Computer Society (IEEE CS) [58] , identifica cuatro áreas que considera cruciales para la disciplina de la informática: teoría de la computación , algoritmos y estructuras de datos , metodología y lenguajes de programación , y elementos y arquitectura de la computadora . Además de estas cuatro áreas, CSAB también identifica campos como la ingeniería de software, la inteligencia artificial, las redes y comunicaciones de computadoras, los sistemas de bases de datos, la computación paralela, la computación distribuida, la interacción hombre-computadora, los gráficos de computadora, los sistemas operativos y la computación numérica y simbólica como áreas importantes de la informática. [56]

Informática teórica

La informática teórica es matemática y abstracta en su espíritu, pero su motivación se basa en la computación práctica y cotidiana. Su objetivo es comprender la naturaleza de la computación y, como consecuencia de esta comprensión, proporcionar metodologías más eficientes.

Teoría de la computación

Según Peter Denning , la pregunta fundamental que subyace a la informática es "¿Qué se puede automatizar?" [3] La teoría de la computación se centra en responder preguntas fundamentales sobre qué se puede calcular y qué cantidad de recursos se requieren para realizar esos cálculos. En un esfuerzo por responder a la primera pregunta, la teoría de la computabilidad examina qué problemas computacionales se pueden resolver en varios modelos teóricos de computación . La segunda pregunta la aborda la teoría de la complejidad computacional , que estudia los costos de tiempo y espacio asociados con diferentes enfoques para resolver una multitud de problemas computacionales.

El famoso problema P = NP?, uno de los Problemas del Premio del Milenio , [59] es un problema abierto en la teoría de la computación.

Teoría de la información y la codificación

La teoría de la información, estrechamente relacionada con la probabilidad y la estadística , está relacionada con la cuantificación de la información. Fue desarrollada por Claude Shannon para encontrar límites fundamentales en las operaciones de procesamiento de señales , como la compresión de datos y el almacenamiento y la comunicación confiable de datos. [60] La teoría de la codificación es el estudio de las propiedades de los códigos (sistemas para convertir información de una forma a otra) y su idoneidad para una aplicación específica. Los códigos se utilizan para la compresión de datos , la criptografía , la detección y corrección de errores y, más recientemente, también para la codificación de redes . Los códigos se estudian con el propósito de diseñar métodos de transmisión de datos eficientes y confiables. [61]

Estructuras de datos y algoritmos

Las estructuras de datos y los algoritmos son los estudios de los métodos computacionales comúnmente utilizados y su eficiencia computacional.

Teoría de lenguajes de programación y métodos formales

La teoría de los lenguajes de programación es una rama de la informática que se ocupa del diseño, la implementación, el análisis, la caracterización y la clasificación de los lenguajes de programación y sus características individuales . Se enmarca dentro de la disciplina de la informática, tanto en función de las matemáticas , la ingeniería de software y la lingüística como en función de ellas . Es un área de investigación activa, con numerosas revistas académicas dedicadas a ello.

Los métodos formales son un tipo particular de técnica basada en las matemáticas para la especificación , desarrollo y verificación de sistemas de software y hardware . [62] El uso de métodos formales para el diseño de software y hardware está motivado por la expectativa de que, como en otras disciplinas de ingeniería, realizar un análisis matemático apropiado puede contribuir a la confiabilidad y robustez de un diseño. Forman una base teórica importante para la ingeniería de software, especialmente cuando está involucrada la seguridad. Los métodos formales son un complemento útil para las pruebas de software, ya que ayudan a evitar errores y también pueden proporcionar un marco para las pruebas. Para uso industrial, se requiere soporte de herramientas. Sin embargo, el alto costo de usar métodos formales significa que generalmente solo se usan en el desarrollo de sistemas de alta integridad y críticos para la vida , donde la seguridad es de suma importancia. Los métodos formales se describen mejor como la aplicación de una variedad bastante amplia de fundamentos teóricos de la ciencia informática , en particular cálculos lógicos , lenguajes formales , teoría de autómatas y semántica de programas , pero también sistemas de tipos y tipos de datos algebraicos a problemas en la especificación y verificación de software y hardware.

Ciencias de la computación aplicadas

Gráficos y visualización por computadora

Los gráficos por computadora son el estudio de los contenidos visuales digitales e implican la síntesis y manipulación de datos de imágenes. El estudio está conectado con muchos otros campos de la informática, como la visión artificial , el procesamiento de imágenes y la geometría computacional , y se aplica ampliamente en los campos de los efectos especiales y los videojuegos .

Procesamiento de imagen y sonido

La información puede tomar la forma de imágenes, sonido, vídeo u otros elementos multimedia. Los bits de información pueden transmitirse mediante señales . Su procesamiento es la noción central de la informática , la visión europea de la computación , que estudia los algoritmos de procesamiento de información independientemente del tipo de portador de información, ya sea eléctrico, mecánico o biológico. Este campo desempeña un papel importante en la teoría de la información , las telecomunicaciones , la ingeniería de la información y tiene aplicaciones en la computación de imágenes médicas y la síntesis de voz , entre otras. ¿Cuál es el límite inferior de la complejidad de los algoritmos de transformada rápida de Fourier ? es uno de los problemas sin resolver en la informática teórica .

Ciencias computacionales, finanzas e ingeniería

La computación científica (o ciencia computacional ) es el campo de estudio que se ocupa de la construcción de modelos matemáticos y técnicas de análisis cuantitativo y del uso de computadoras para analizar y resolver problemas científicos . Un uso importante de la computación científica es la simulación de diversos procesos, incluyendo la dinámica de fluidos computacional , los sistemas y circuitos físicos, eléctricos y electrónicos, así como las sociedades y situaciones sociales (en particular los juegos de guerra) junto con sus hábitats, entre muchos otros. Las computadoras modernas permiten la optimización de diseños tales como aeronaves completas. En el diseño de circuitos eléctricos y electrónicos son notables SPICE, [63] así como el software para la realización física de diseños nuevos (o modificados). Este último incluye software de diseño esencial para circuitos integrados . [64]

Computación social e interacción hombre-computadora

La computación social es un área que se ocupa de la intersección del comportamiento social y los sistemas computacionales. La investigación sobre la interacción entre humanos y computadoras desarrolla teorías, principios y pautas para los diseñadores de interfaces de usuario.

Ingeniería de software

La ingeniería de software es el estudio del diseño, la implementación y la modificación del software para garantizar que sea de alta calidad, asequible, mantenible y rápido de construir. Es un enfoque sistemático del diseño de software, que implica la aplicación de prácticas de ingeniería al software. La ingeniería de software se ocupa de la organización y el análisis del software; no solo se ocupa de la creación o fabricación de software nuevo, sino de su organización interna y mantenimiento. Por ejemplo, las pruebas de software , la ingeniería de sistemas , la deuda técnica y los procesos de desarrollo de software .

Inteligencia artificial

La inteligencia artificial (IA) tiene como objetivo o se requiere para sintetizar procesos orientados a objetivos como la resolución de problemas, la toma de decisiones, la adaptación ambiental, el aprendizaje y la comunicación que se encuentran en humanos y animales. Desde sus orígenes en la cibernética y en la Conferencia de Dartmouth (1956), la investigación en inteligencia artificial ha sido necesariamente interdisciplinaria, recurriendo a áreas de especialización como las matemáticas aplicadas , la lógica simbólica , la semiótica , la ingeniería eléctrica , la filosofía de la mente , la neurofisiología y la inteligencia social . La IA se asocia en la mente popular con el desarrollo robótico , pero el principal campo de aplicación práctica ha sido como un componente integrado en áreas de desarrollo de software , que requieren comprensión computacional. El punto de partida a fines de la década de 1940 fue la pregunta de Alan Turing " ¿Pueden pensar las computadoras? ", y la pregunta permanece efectivamente sin respuesta, aunque la prueba de Turing todavía se usa para evaluar la producción de la computadora en la escala de la inteligencia humana. Pero la automatización de tareas evaluativas y predictivas ha tenido cada vez más éxito como sustituto de la supervisión e intervención humanas en dominios de aplicación informática que involucran datos complejos del mundo real.

Sistemas informáticos

Arquitectura y organización de computadoras

La arquitectura de computadoras, u organización digital de computadoras, es el diseño conceptual y la estructura operativa fundamental de un sistema informático. Se centra principalmente en la forma en que la unidad central de procesamiento funciona internamente y accede a las direcciones en la memoria. [65] Los ingenieros informáticos estudian la lógica computacional y el diseño del hardware de las computadoras , desde los componentes individuales del procesador , los microcontroladores y las computadoras personales hasta las supercomputadoras y los sistemas integrados . El término "arquitectura" en la literatura informática se remonta al trabajo de Lyle R. Johnson y Frederick P. Brooks Jr. , miembros del departamento de Organización de Máquinas en el principal centro de investigación de IBM en 1959.

Computación concurrente, paralela y distribuida

La concurrencia es una propiedad de los sistemas en los que se ejecutan varios cálculos simultáneamente y potencialmente interactúan entre sí. [66] Se han desarrollado varios modelos matemáticos para el cálculo concurrente general, incluidas las redes de Petri , los cálculos de procesos y el modelo de máquina de acceso aleatorio paralelo . [67] Cuando varias computadoras están conectadas en una red mientras se usa la concurrencia, esto se conoce como un sistema distribuido. Las computadoras dentro de ese sistema distribuido tienen su propia memoria privada y se puede intercambiar información para lograr objetivos comunes. [68]

Redes de computadoras

Esta rama de la informática tiene como objetivo gestionar redes entre ordenadores de todo el mundo.

Seguridad informática y criptografía

La seguridad informática es una rama de la tecnología informática cuyo objetivo es proteger la información contra accesos, interrupciones o modificaciones no autorizados, manteniendo al mismo tiempo la accesibilidad y usabilidad del sistema para los usuarios previstos.

La criptografía histórica es el arte de escribir y descifrar mensajes secretos. La criptografía moderna es el estudio científico de los problemas relacionados con los cálculos distribuidos que pueden ser atacados. [69] Las tecnologías estudiadas en la criptografía moderna incluyen el cifrado simétrico y asimétrico , las firmas digitales , las funciones hash criptográficas , los protocolos de acuerdo de claves , la cadena de bloques , las pruebas de conocimiento cero y los circuitos ilegibles .

Bases de datos y minería de datos

Una base de datos tiene como finalidad organizar, almacenar y recuperar grandes cantidades de datos de forma sencilla. Las bases de datos digitales se gestionan mediante sistemas de gestión de bases de datos para almacenar, crear, mantener y buscar datos, a través de modelos de bases de datos y lenguajes de consulta . La minería de datos es un proceso de descubrimiento de patrones en grandes conjuntos de datos.

Descubrimientos

El filósofo de la informática Bill Rapaport señaló tres grandes ideas de la ciencia informática : [70]

Toda la información sobre cualquier problema computable se puede representar usando sólo 0 y 1 (o cualquier otro par biestable que pueda oscilar entre dos estados fácilmente distinguibles, como "encendido/apagado", "magnetizado/desmagnetizado", "alto voltaje/bajo voltaje", etc.).
Cada algoritmo puede expresarse en un lenguaje informático que consta de sólo cinco instrucciones básicas: [71]
  • mover una posición a la izquierda;
  • moverse una posición a la derecha;
  • leer el símbolo en la ubicación actual;
  • imprimir 0 en la ubicación actual;
  • imprimir 1 en la ubicación actual.
Sólo se necesitan tres reglas para combinar cualquier conjunto de instrucciones básicas en otras más complejas:
  • secuencia : primero haz esto, luego haz aquello;
  • selección : SI tal y tal es el caso, ENTONCES haga esto, DE LO CONTRARIO haga aquello;
  • repetición : MIENTRAS tal y tal sea el caso, HAGA esto.
Las tres reglas de la idea de Boehm y Jacopini se pueden simplificar aún más con el uso de goto (lo que significa que es más elemental que la programación estructurada ).

Paradigmas de programación

Los lenguajes de programación se pueden utilizar para realizar distintas tareas de distintas maneras. Los paradigmas de programación más comunes son:

Muchos lenguajes ofrecen soporte para múltiples paradigmas, lo que hace que la distinción sea más una cuestión de estilo que de capacidades técnicas. [76]

Investigación

Los congresos son eventos importantes para la investigación en informática. Durante ellos, investigadores de los sectores público y privado presentan sus trabajos más recientes y se reúnen. A diferencia de lo que ocurre en la mayoría de los demás campos académicos, en informática el prestigio de los trabajos de congresos es mayor que el de las publicaciones en revistas científicas. [77] [78] Una explicación propuesta para esto es que el rápido desarrollo de este campo relativamente nuevo requiere una rápida revisión y distribución de los resultados, una tarea que se realiza mejor en congresos que en revistas científicas. [79]

Véase también

Notas

  1. ^ En 1851
  2. ^ "La introducción de tarjetas perforadas en la nueva máquina fue importante no sólo como una forma más conveniente de control que los tambores, o porque los programas podían ahora tener una extensión ilimitada, y podían almacenarse y repetirse sin el peligro de introducir errores al configurar la máquina a mano; fue importante también porque sirvió para cristalizar el sentimiento de Babbage de que había inventado algo realmente nuevo, algo mucho más que una sofisticada máquina calculadora." Bruce Collier, 1970
  3. ^ Véase la entrada «Ciencias de la computación» en Wikiquote para conocer el historial de esta cita.
  4. ^ La palabra "cualquier cosa" se escribe entre comillas porque hay cosas que las computadoras no pueden hacer. Un ejemplo es: responder a la pregunta de si un programa de computadora dado arbitrariamente terminará o se ejecutará para siempre (el problema de la detención ).

Referencias

  1. ^ "¿Qué es la informática?". Departamento de Informática, Universidad de York . Archivado desde el original el 11 de junio de 2020. Consultado el 11 de junio de 2020 .
  2. ^ ab ¿Qué se puede automatizar? Estudio de investigación en ciencias de la computación e ingeniería. Serie de ciencias de la computación. MIT Press. 1980. ISBN 978-0262010603. Archivado del original el 9 de enero de 2021.
  3. ^ abc Denning, PJ; Comer, DE; Gries, D.; Mulder, MC; Tucker, A.; Turner, AJ; Young, PR (febrero de 1989). "Computing as a discipline". Computer . 22 (2): 63–70. doi :10.1109/2.19833. ISSN  1558-0814. Archivado desde el original el 3 de marzo de 2022 . Consultado el 3 de marzo de 2022 . La disciplina de la computación es el estudio sistemático de los procesos algorítmicos que describen y transforman la información, su teoría, análisis, diseño, eficiencia, implementación y aplicación. La pregunta fundamental que subyace a toda la computación es: "¿Qué se puede automatizar (de manera eficiente)?
  4. ^ "Búsqueda en WordNet—3.1". Búsqueda en WordNet . Wordnetweb.princeton.edu. Archivado desde el original el 18 de octubre de 2017 . Consultado el 14 de mayo de 2012 .
  5. ^ "Definición de informática | Dictionary.com". www.dictionary.com . Archivado desde el original el 11 de junio de 2020 . Consultado el 11 de junio de 2020 .
  6. ^ "¿Qué es la informática? | Licenciatura en informática en UMD". undergrad.cs.umd.edu . Archivado desde el original el 27 de noviembre de 2020 . Consultado el 15 de julio de 2022 .
  7. ^ Harel, David (2014). Algoritmia: el espíritu de la computación. Springer Berlin. ISBN 978-3-642-44135-6. OCLC  876384882. Archivado desde el original el 17 de junio de 2020 . Consultado el 17 de junio de 2020 .
  8. ^ Patton, Richard D.; Patton, Peter C. (2009), Nof, Shimon Y. (ed.), "¿Qué se puede automatizar? ¿Qué no se puede automatizar?", Springer Handbook of Automation , Springer Handbooks, Berlín, Heidelberg: Springer, págs. 305–313, doi :10.1007/978-3-540-78831-7_18, ISBN 978-3-540-78831-7, archivado del original el 11 de enero de 2023 , consultado el 3 de marzo de 2022
  9. ^ Forsythe, George (5-10 de agosto de 1969). "Computer Science and Education". Actas del Congreso IFIP de 1968. La pregunta "¿Qué se puede automatizar?" es una de las preguntas filosóficas y prácticas más inspiradoras de la civilización contemporánea.
  10. ^ Knuth, Donald E. (1 de agosto de 1972). "George Forsythe y el desarrollo de la ciencia informática". Comunicaciones de la ACM . 15 (8): 721–726. doi : 10.1145/361532.361538 . ISSN  0001-0782. S2CID  12512057.
  11. ^ Hanson, Vicki L. (23 de enero de 2017). «Celebrando los 50 años del premio Turing». Comunicaciones de la ACM . 60 (2): 5. doi : 10.1145/3033604 . ISSN  0001-0782. S2CID  29984960.
  12. ^ Scott, Eric; Martins, Marcella Scoczynski Ribeiro; Yafrani, Mohamed El; Volz, Vanessa; Wilson, Dennis G (5 de junio de 2018). "ACM conmemora 50 años del premio ACM AM Turing y los mayores logros de la informática". ACM SIGEVOlution . 10 (3): 9–11. doi :10.1145/3231560.3231563. ISSN  1931-8499. S2CID  47021559.
  13. ^ "2021: 375 aniversario del nacimiento de Leibniz, padre de la informática". people.idsia.ch . Archivado desde el original el 21 de septiembre de 2022 . Consultado el 4 de febrero de 2023 .
  14. ^ "Charles Babbage Institute: Who Was Charles Babbage?". cbi.umn.edu . Archivado desde el original el 9 de enero de 2007. Consultado el 28 de diciembre de 2016 .
  15. ^ "Ada Lovelace | Babbage Engine | Computer History Museum". www.computerhistory.org . Archivado desde el original el 25 de diciembre de 2018 . Consultado el 28 de diciembre de 2016 .
  16. ^ "Historia de la informática". cs.uwaterloo.ca . Archivado desde el original el 29 de julio de 2017. Consultado el 15 de julio de 2022 .
  17. ^ "Wilhelm Schickard – Ein Computer Pioneer" (PDF) (en alemán). Archivado desde el original (PDF) el 19 de septiembre de 2020. Consultado el 4 de diciembre de 2016 .
  18. ^ Keates, Fiona (25 de junio de 2012). "Una breve historia de la informática". The Repository . The Royal Society. Archivado desde el original el 29 de junio de 2012 . Consultado el 19 de enero de 2014 .
  19. ^ «Museo de la Ciencia, Máquina analítica de Babbage, 1834-1871 (modelo de prueba)». Archivado desde el original el 30 de agosto de 2019. Consultado el 11 de mayo de 2020 .
  20. ^ ab Hyman, Anthony (1982). Charles Babbage: pionero de la informática . Oxford University Press . ISBN 978-0691083032.
  21. ^ "Una selección y adaptación de las notas de Ada encontradas en Ada, La hechicera de los números", por Betty Alexandra Toole Ed.D. Strawberry Press, Mill Valley, CA". Archivado desde el original el 10 de febrero de 2006 . Consultado el 4 de mayo de 2006 .
  22. ^ "La colección de informática de John Gabriel Byrne" (PDF) . Archivado desde el original el 16 de abril de 2019. Consultado el 8 de agosto de 2019 .
  23. Torres Quevedo, L. (1914). "Ensayos sobre Automática – Su definición. Extensión teórica de sus aplicaciones". Revista de la Academia de Ciencias Exacta , 12, págs. 391–418.
  24. ^ Torres Quevedo, Leonardo. Automática: Complemento de la Teoría de las Máquinas, (pdf), pp. 575-583, Revista de Obras Públicas, 19 de noviembre de 1914.
  25. ^ Ronald T. Kneusel. Números y computadoras, Springer, págs. 84-85, 2017. ISBN 978-3319505084 
  26. ^ Randell, Brian. Computadoras digitales: Historia de los orígenes, (pdf), p. 545, Computadoras digitales: Orígenes, Enciclopedia de Ciencias de la Computación, enero de 2003.
  27. ^ Randell 1982, pág. 6, 11–13.
  28. ^ "En este sentido, Aiken necesitaba a IBM, cuya tecnología incluía el uso de tarjetas perforadas, la acumulación de datos numéricos y la transferencia de datos numéricos de un registro a otro", Bernard Cohen, p.44 (2000)
  29. ^ Brian Randell, pág. 187, 1975
  30. ^ La Asociación para Maquinaria Computacional (ACM) fue fundada en 1947.
  31. ^ "Archivos IBM: 1945". Ibm.com. 23 de enero de 2003. Archivado desde el original el 5 de enero de 2019. Consultado el 19 de marzo de 2019 .
  32. ^ "IBM100 – Los orígenes de la informática". Ibm.com. 15 de septiembre de 1995. Archivado desde el original el 5 de enero de 2019. Consultado el 19 de marzo de 2019 .
  33. ^ abc Denning, PJ; Comer, DE; Gries, D.; Mulder, MC; Tucker, A.; Turner, AJ; Young, PR (febrero de 1989). «La informática como disciplina». Computer . 22 (2): 63–70. doi :10.1109/2.19833. ISSN  1558-0814. Archivado desde el original el 3 de marzo de 2022 . Consultado el 3 de marzo de 2022 .
  34. ^ "Algunas estadísticas de la EDSAC". Universidad de Cambridge. Archivado desde el original el 3 de septiembre de 2007. Consultado el 19 de noviembre de 2011 .
  35. ^ "El pionero de la ciencia informática Samuel D. Conte muere a los 85 años". Purdue Computer Science. 1 de julio de 2002. Archivado desde el original el 6 de octubre de 2014. Consultado el 12 de diciembre de 2014 .
  36. ^ ab Tedre, Matti (2014). La ciencia de la computación: dando forma a una disciplina . Taylor y Francis / CRC Press.
  37. ^ ab Louis Fine (1960). "El papel de la universidad en las computadoras, el procesamiento de datos y campos relacionados". Comunicaciones de la ACM . 2 (9): 7–14. doi : 10.1145/368424.368427 . S2CID  6740821.
  38. ^ "Historia oral de la Universidad de Stanford". Universidad de Stanford. Archivado desde el original el 4 de abril de 2017. Consultado el 30 de mayo de 2013 .
  39. ^ Donald Knuth (1972). "George Forsythe y el desarrollo de la informática" . Comunicaciones. ACM . Archivado el 20 de octubre de 2013 en Wayback Machine .
  40. ^ Matti Tedre (2006). «El desarrollo de la informática: una perspectiva sociocultural» (PDF) . pág. 260. Archivado (PDF) desde el original el 9 de octubre de 2022. Consultado el 12 de diciembre de 2014 .
  41. ^ Peter Naur (1966). "La ciencia de la datalogía". Comunicaciones de la ACM . 9 (7): 485. doi : 10.1145/365719.366510 . S2CID  47558402.
  42. ^ Weiss, EA; Corley, Henry PT "Cartas al editor". Comunicaciones de la ACM . 1 (4): 6. doi : 10.1145/368796.368802 . S2CID  5379449.
  43. ^ Comunicaciones de la ACM 2(1):p.4
  44. ^ IEEE Computer 28(12): pág. 136
  45. ^ P. Mounier-Kuhn, L'Informatique en France, de la seconde guerre mondiale au Plan Calcul. L'émergence d'une science , París, PUPS, 2010, cap. 3 y 4.
  46. ^ Groth, Dennis P. (febrero de 2010). "¿Por qué una licenciatura en informática?". Comunicaciones de la ACM . Cacm.acm.org. Archivado desde el original el 11 de enero de 2023. Consultado el 14 de junio de 2016 .
  47. ^ Tedre, M. (2011). "La informática como ciencia: un estudio de puntos de vista en competencia". Mentes y máquinas . 21 (3): 361–387. doi :10.1007/s11023-011-9240-4. S2CID  14263916.
  48. ^ Parnas, DL (1998). "Los programas de ingeniería de software no son programas de informática". Anales de ingeniería de software . 6 : 19–37. doi :10.1023/A:1018949113292. S2CID  35786237., p. 19: "En lugar de tratar la ingeniería de software como un subcampo de la informática, la trato como un elemento del conjunto: ingeniería civil, ingeniería mecánica, ingeniería química, ingeniería eléctrica, [...]"
  49. ^ Luk, RWP (2020). "Una visión de cómo la informática puede ser una ciencia". Science & Philosophy . 8 (2): 17–47. doi :10.23756/sp.v8i2.531.
  50. ^ Knuth, DE (1974). "La ciencia informática y su relación con las matemáticas". The American Mathematical Monthly . 81 (4): 323–343. doi :10.2307/2318994. JSTOR  2318994.
  51. ^ abcdefg «La filosofía de la informática». The Philosophy of Computer Science (Stanford Encyclopedia of Philosophy) . Metaphysics Research Lab, Stanford University. 2021. Archivado desde el original el 16 de septiembre de 2021. Consultado el 16 de septiembre de 2021 .
  52. ^ Wegner, P. (13-15 de octubre de 1976). Paradigmas de investigación en ciencias de la computación: Actas de la 2.ª Conferencia Internacional sobre Ingeniería de Software . San Francisco, California, Estados Unidos: IEEE Computer Society Press, Los Alamitos, CA.
  53. ^ Denning, Peter J. (2007). "La informática es una ciencia natural". Comunicaciones de la ACM . 50 (7): 13–18. doi :10.1145/1272516.1272529. S2CID  20045303.
  54. ^ Eden, AH (2007). "Tres paradigmas de la informática" (PDF) . Mentes y máquinas . 17 (2): 135–167. CiteSeerX 10.1.1.304.7763 . doi :10.1007/s11023-007-9060-8. S2CID  3023076. Archivado desde el original (PDF) el 15 de febrero de 2016. 
  55. ^ Turner, Raymond; Angius, Nicola (2019). «La filosofía de la informática». En Zalta, Edward N. (ed.). The Stanford Encyclopedia of Philosophy . Archivado desde el original el 14 de octubre de 2019. Consultado el 14 de octubre de 2019 .
  56. ^ ab "Computer Science as a Profession". Computing Sciences Accreditation Board. 28 de mayo de 1997. Archivado desde el original el 17 de junio de 2008. Consultado el 23 de mayo de 2010 .
  57. ^ Comité sobre los fundamentos de la informática: desafíos y oportunidades, Consejo Nacional de Investigación (2004). Ciencias de la computación: reflexiones sobre el campo, reflexiones desde el campo. National Academies Press. ISBN 978-0-309-09301-9. Archivado desde el original el 18 de febrero de 2011 . Consultado el 31 de agosto de 2008 .
  58. ^ "CSAB Leading Computer Education". CSAB. 3 de agosto de 2011. Archivado desde el original el 20 de enero de 2019. Consultado el 19 de noviembre de 2011 .
  59. ^ Clay Mathematics Institute P = NP Archivado el 14 de octubre de 2013 en Wayback Machine .
  60. ^ P. Collins, Graham (14 de octubre de 2002). «Claude E. Shannon: fundador de la teoría de la información». Scientific American . Archivado desde el original el 16 de enero de 2014. Consultado el 12 de diciembre de 2014 .
  61. ^ Van-Nam Huynh; Vladik Kreinovich; Songsak Sriboonchitta; 2012. Análisis de incertidumbre en econometría con aplicaciones . Springer Science & Business Media. pág. 63. ISBN 978-3-642-35443-4
  62. ^ Phillip A. Laplante, (2010). Enciclopedia de ingeniería de software, conjunto de tres volúmenes (versión impresa). CRC Press. pág. 309. ISBN 978-1-351-24926-3
  63. ^ Muhammad H. Rashid, (2016). SPICE para electrónica de potencia y energía eléctrica . CRC Press. pág. 6. ISBN 978-1-4398-6047-2
  64. ^ "¿Qué es un circuito integrado (CI)? Un componente vital de la electrónica moderna". WhatIs.com . Archivado desde el original el 15 de noviembre de 2021. Consultado el 15 de noviembre de 2021 .
  65. ^ A. Thisted, Ronald (7 de abril de 1997). "Computer Architecture" (PDF) . Universidad de Chicago. Archivado (PDF) del original el 9 de octubre de 2022.
  66. ^ Jiacun Wang, (2017). Sistemas integrados en tiempo real . Wiley. pág. 12. ISBN 978-1-119-42070-5
  67. ^ Gordana Dodig-Crnkovic; Raffaela Giovagnoli, (2013). Computing Nature: Perspectiva del centenario de Turing . Springer Science & Business Media. pág. 247. ISBN 978-3-642-37225-4
  68. ^ Simon Elias Bibri (2018). Ciudades inteligentes y sostenibles del futuro: el potencial sin explotar de la analítica de big data y la informática sensible al contexto para avanzar en la sostenibilidad . Springer. pág. 74. ISBN 978-3-319-73981-6
  69. ^ Katz, Jonathan (2008). Introducción a la criptografía moderna. Yehuda Lindell. Boca Raton: Chapman & Hall/CRC. ISBN 978-1-58488-551-1. OCLC  137325053. Archivado desde el original el 6 de mayo de 2022 . Consultado el 17 de noviembre de 2021 .
  70. ^ Rapaport, William J. (20 de septiembre de 2013). "¿Qué es la computación?". Universidad Estatal de Nueva York en Buffalo. Archivado desde el original el 14 de febrero de 2001. Consultado el 31 de agosto de 2013 .
  71. ^ B. Jack Copeland, (2012). El cerebro electrónico de Alan Turing: la lucha por construir el ACE, el ordenador más rápido del mundo . OUP Oxford. pág. 107. ISBN 978-0-19-960915-4
  72. ^ Charles W. Herbert, (2010). Introducción a la programación con Alice 2.2 . Cengage Learning. pág. 122. ISBN 0-538-47866-7
  73. ^ Md. Rezaul Karim; Sridhar Alla, (2017). Scala y Spark para análisis de big data: explora los conceptos de programación funcional, transmisión de datos y aprendizaje automático . Packt Publishing Ltd. pág. 87. ISBN 978-1-78355-050-0
  74. ^ Lex Sheehan, (2017). Aprendiendo programación funcional en Go: cambie la forma en que aborda sus aplicaciones usando programación funcional en Go . Packt Publishing Ltd. p. 16. ISBN 978-1-78728-604-7
  75. ^ Evelio Padilla, (2015). Sistemas de automatización de subestaciones: diseño e implementación . Wiley. pág. 245. ISBN 978-1-118-98730-8
  76. ^ "Lenguaje de programación multiparadigma". MDN Web Docs . Fundación Mozilla . Archivado desde el original el 21 de agosto de 2013.
  77. ^ Meyer, Bertrand (abril de 2009). "Punto de vista: evaluación de la investigación en informática". Comunicaciones de la ACM . 25 (4): 31–34. doi :10.1145/1498765.1498780. S2CID  8625066.
  78. ^ Patterson, David (agosto de 1999). "Evaluación de científicos e ingenieros informáticos para ascensos y permanencia en el cargo". Asociación de Investigación en Computación. Archivado desde el original el 22 de julio de 2015. Consultado el 19 de julio de 2015 .
  79. ^ Fortnow, Lance (agosto de 2009). "Viewpoint: Time for Computer Science to Grow Up" (Punto de vista: es hora de que la informática crezca). Communications of the ACM (Comunicaciones de la ACM) . 52 (8): 33–35. doi : 10.1145/1536616.1536631 .

Lectura adicional

Enlaces externos