Ciencias de la Computación |
---|
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]
History of computing |
---|
Hardware |
Software |
Computer science |
Modern concepts |
By country |
Timeline of computing |
Glossary of computer science |
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 las calculadoras mecánicas [nota 1] cuando inventó su aritmómetro simplificado , la primera máquina calculadora lo suficientemente fuerte y confiable para ser utilizada a diario 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.
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.
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]
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]
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]
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.
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.
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]
Teoría de la codificación | Capacidad del canal | Teoría de la información algorítmica | Teoría de detección de señales | Complejidad de Kolmogorov |
Las estructuras de datos y los algoritmos son los estudios de los métodos computacionales comúnmente utilizados y su eficiencia computacional.
O ( n 2 ) | |||||
Análisis de algoritmos | Diseño de algoritmos | Estructuras de datos | Optimización combinatoria | Geometría computacional | Algoritmos aleatorios |
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.
Semántica formal | Teoría de tipos | Diseño del compilador | Lenguajes de programación | Verificación formal | Demostración automática de teoremas |
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 .
Gráficos de computadora en 2D | Animación por computadora | Representación | Realidad mixta | Realidad virtual | Modelado de sólidos |
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 .
Algoritmos FFT | Procesamiento de imágenes | Reconocimiento de voz | Compresión de datos | Computación de imágenes médicas | Síntesis de voz |
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]
Análisis numérico | Física computacional | Química computacional | Bioinformática | Neuroinformática | Psicoinformática | Informática médica | Ingeniería computacional | Musicología computacional |
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.
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 .
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.
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.
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]
Esta rama de la informática tiene como objetivo gestionar redes entre ordenadores de todo el mundo.
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 .
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.
El filósofo de la informática Bill Rapaport señaló tres grandes ideas de la ciencia informática : [70]
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]
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]
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)?
pregunta "¿Qué se puede automatizar?" es una de las preguntas filosóficas y prácticas más inspiradoras de la civilización contemporánea.