Ciencias de la Computación

format_list_bulleted Contenido keyboard_arrow_down
ImprimirCitar

Las Ciencias de la Computación es el estudio de la computación, la automatización y la información. La informática abarca desde disciplinas teóricas (como algoritmos, teoría de la computación, teoría de la información y automatización) hasta disciplinas prácticas (incluido el diseño y la implementación de hardware y software). La informática generalmente se considera un área de investigación académica y distinta de la programación informática.

Los algoritmos y las estructuras de datos son fundamentales para la informática. La teoría de la computación se refiere a modelos abstractos de computación y clases generales de problemas que pueden resolverse usándolos. Los campos de la criptografía y la seguridad informática implican el estudio de los medios para la comunicación segura y para la prevención de vulnerabilidades de seguridad. Los gráficos por 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 la base 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 enfoca en el diseño y los principios detrás del desarrollo de software. Áreas como sistemas operativos, redes y 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. El Premio Turing es generalmente reconocido como la más alta distinción en informática.

Historia

Los primeros cimientos de lo que se convertiría en 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, existen desde la antigüedad y ayudan 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.

Wilhelm Schickard diseñó y construyó la primera calculadora mecánica en funcionamiento en 1623. En 1673, Gottfried Leibniz demostró una calculadora mecánica digital, llamada Stepped Reckoner. Leibniz puede ser considerado el primer 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 cuando inventó su aritmómetro simplificado, la primera máquina de calcular lo suficientemente fuerte y confiable para usarse 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, lo que finalmente le dio la idea de la primeracalculadora mecánica programable, su motor analítico. Comenzó a desarrollar esta máquina en 1834 y "en menos de dos años, había esbozado muchas de las características más destacadas de la computadora moderna". "Un paso crucial fue la adopción de un sistema de tarjetas perforadas derivado del telar de Jacquard" haciéndolo infinitamente programable. En 1843, durante la traducción de un artículo francés sobre el motor analítico, 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 diseñado específicamente para la implementación. en una computadoraAlrededor de 1885, Herman Hollerith inventó el tabulador, que usaba tarjetas perforadas para procesar información estadística; finalmente, su empresa pasó a formar parte de IBM. Siguiendo a Babbage, aunque desconociendo su trabajo anterior, Percy Ludgate en 1909 publicó el segundo de los dos únicos diseños de motores analíticos mecánicos en la historia. 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, para que desarrollara su gigantesca calculadora programable, la ASCC/Harvard Mark I, basada en la Analítica de Babbage. Engine, que a su vez usaba 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".

Durante la década de 1940, con el desarrollo de máquinas informáticas nuevas y más potentes, 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. A medida que quedó claro que las computadoras podían usarse para algo más que 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 casa de la fraternidad renovada 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.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, con Columbia ofreciendo uno de los primeros cursos de crédito académico en ciencias de la computación en 1946. Las ciencias de la computación comenzaron a establecerse como una disciplina académica distinta en la década de 1950 y principios de la de 1960. 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. Desde que las computadoras prácticas estuvieron disponibles, muchos Las aplicaciones de la computación se han convertido en áreas de estudio diferenciadas por derecho propio.

Etimología

Aunque se propuso por primera vez en 1956, el término "ciencias de la computación" aparece en un artículo de 1959 en Communications of the ACM, 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. Louis justifica el nombre argumentando que, al igual que la ciencia de la administración, la materia es de naturaleza aplicada e interdisciplinaria, al mismo tiempo que tiene las características propias de una disciplina académica. Sus esfuerzos, y los de otros, como el analista numérico George Forsythe, fueron recompensados: las universidades crearon tales departamentos, comenzando con Purdue en 1962.A pesar de su nombre, una parte significativa de las ciencias de la computación no involucra el estudio de las computadoras en sí. Debido a esto, se han propuesto varios nombres alternativos. Ciertos departamentos de las principales universidades prefieren el término ciencias de la computación, para enfatizar precisamente esa diferencia. El científico danés Peter Naur sugirió el término datalogía,para reflejar el hecho de que la disciplina científica gira en torno a los datos y el tratamiento de datos, aunque no necesariamente involucrando a las 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; esto ahora se usa para un campo multidisciplinario de análisis de datos, incluidas estadísticas y bases de datos.

En los primeros días de la informática, en las Comunicaciones de la ACM se sugirieron una serie de términos para los profesionales del campo de la informática: ingeniero de turing, turólogo, hombre de diagramas de flujo, metamatemático aplicado y epistemólogo aplicado. Tres meses después, en la misma revista, se sugirió comptólogo, seguido al año siguiente por hipólogo. También se ha sugerido el término computación. En Europa, a menudo se utilizan términos derivados de traducciones contratadas 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, neerlandé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). "Sin embargo, en los EE. UU., la informática está vinculada con la computación aplicada o la computación en el contexto de otro dominio".

Una cita folclórica, a menudo atribuida a, pero casi ciertamente no formulada por primera vez por, Edsger Dijkstra, afirma que "la informática no se trata más de computadoras que la astronomía de telescopios".El diseño y la implementación de computadoras y sistemas informáticos generalmente se considera competencia de disciplinas distintas de la informática. Por ejemplo, el estudio del hardware de la computadora generalmente se considera parte de la ingeniería informática, mientras que el estudio de los sistemas informáticos comerciales y su implementación a menudo se denomina tecnología de la información o sistemas de información. Sin embargo, ha habido intercambio de ideas entre las diversas disciplinas relacionadas con la informática. La investigación en informática a menudo se cruza 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. Las primeras ciencias de la computación estuvieron fuertemente influenciadas por el trabajo de matemáticos como Kurt Gödel, Alan Turing, John von Neumann, Rózsa Péter y Alonzo Church y sigue habiendo un útil intercambio de ideas entre los dos campos en áreas como la lógica matemática, la categoría teoría, teoría del dominio y álgebra.

La relación entre las ciencias de la computación y la ingeniería de software es un tema polémico, que se enturbia aún más por las disputas sobre el significado del término "ingeniería de software" y cómo se define la ciencia de la computación. David Parnas, siguiendo el ejemplo de la relación entre otras disciplinas de la ingeniería y la ciencia, ha afirmado que el enfoque principal de las ciencias de la computación 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 resultados prácticos. objetivos, haciendo las dos disciplinas separadas pero complementarias.

Los aspectos académicos, políticos y de financiación de las ciencias de la computación tienden a depender de si un departamento se forma con énfasis en matemáticas o 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 a través de 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, las matemáticas o la ingeniería. Allen Newell y Herbert A. Simon argumentaron en 1975,

La informática es una disciplina empírica. Lo habríamos llamado una 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 un estereotipo estrecho del método experimental. No obstante, son experimentos. Cada nueva máquina que se construye es un experimento. En realidad, construir la máquina plantea una pregunta a la naturaleza; y escuchamos la respuesta observando la máquina en funcionamiento y analizándola por todos los medios analíticos y de medición disponibles.

Desde entonces, se ha argumentado que la ciencia de la computación 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 existiendo un problema al definir las leyes y los teoremas de la ciencia de la computación (si existen) y definir el Naturaleza de los experimentos en informática. Los defensores de clasificar las ciencias de la computación como una disciplina de la ingeniería argumentan que la confiabilidad 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.También argumentan que mientras las ciencias empíricas observan lo que existe actualmente, las ciencias de la computación observan lo que es posible que exista y mientras los científicos descubren leyes a partir de la observación, no se han encontrado leyes adecuadas en las ciencias de la computación y, en cambio, se preocupan por crear fenómenos.

Los defensores de clasificar las ciencias de la computación como una disciplina matemática argumentan que los programas de computadora son realizaciones físicas de entidades matemáticas y que los programas pueden razonarse deductivamente a través de métodos matemáticos formales. Los informáticos Edsger W. Dijkstra y Tony Hoare consideran las instrucciones de 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.

Paradigmas de la informática.

Varios científicos informáticos han defendido la distinción de tres paradigmas separados en informática. Peter Wegner argumentó que esos paradigmas son la ciencia, la tecnología y las matemáticas. El grupo de trabajo de Peter Denning argumentó que son teoría, abstracción (modelado) y diseño. Amnon H. Eden los describió como el "paradigma racionalista" (que trata la informática como una rama de las matemáticas, que prevalece en la informática teórica y emplea principalmente el razonamiento deductivo), el "paradigma tecnocrático" (que se puede encontrar en la ingeniería enfoques, más prominentemente en la ingeniería de software), y el "paradigma científico" (que aborda los artefactos relacionados con la computadora desde la perspectiva empírica de las ciencias naturales, Las ciencias de la computación se enfocan en los métodos involucrados en el diseño, la especificación, la programación, la verificación, la implementación y las pruebas de los sistemas informáticos creados por el hombre.

Campos

La informática no se trata más de computadoras que la astronomía de telescopios.—Edsger  Dijkstra

Como disciplina, las ciencias de la computación abarcan una variedad de temas, desde estudios teóricos de algoritmos y los límites de la computación hasta problemas prácticos de implementación de sistemas informáticos en hardware y software. CSAB, anteriormente llamada Computing Sciences Accreditation Board, que está compuesta por representantes de la Association for Computing Machinery (ACM) y la IEEE Computer Society (IEEE CS), identifica cuatro áreas que considera cruciales para la disciplina de las ciencias de la computación: teoría de computación, algoritmos y estructuras de datos, metodología y lenguajes de programación, y elementos y arquitectura informática. Además de estas cuatro áreas, CSAB también identifica campos como la ingeniería de software, la inteligencia artificial, la comunicación y las redes informáticas, los sistemas de bases de datos, la computación paralela, la computación distribuida, la interacción humano-computadora, los gráficos por computadora, los sistemas operativos y la computación numérica y simbólica como siendo áreas importantes de la informática.

Informática teórica

La informática teórica es matemática y de espíritu abstracto, pero deriva su motivación de 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?" 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 P = NP? El problema, uno de los Problemas del Premio del Milenio, es un problema abierto en la teoría de la computación.

DFAejemplo.svgÁrbol de sintaxis.svg{displaystyle M={X:Xno en X}}Clases de complejidad.svg
Teoría de los autómataslenguajes formalesteoría de la computabilidadTeoría de la complejidad computacional
Red de interacción como configuración.pngBlochsphere.svgXNOR ANSI Etiquetado.svgKellerautomat.svg
Modelos de computaciónteoría de la computación cuánticateoría del circuito lógicoAutómata celular

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. Esto fue desarrollado 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 de datos de manera confiable. 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 fin de diseñar métodos de transmisión de datos eficientes y fiables.

hamming.jpgCanal simétrico binario.svgDigitalteilchen.svgH0 h1 fehler.jpgMandelpart2 rojo.png
teoría de la codificaciónCapacidad del canalTeoría de la información algorítmicaTeoría de detección de señalesComplejidad de Kolmogorov

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.

O (n)Clasificación quicksort anim.gifÁrbol (informática).svgTSP Alemania 3.pngSimplexRangeSearching.svgVértices de contracción.jpg
Análisis de algoritmosDiseño de algoritmosEstructuras de datosoptimización combinatoriaGeometría ComputacionalAlgoritmos aleatorizados

Teoría del lenguaje de programación y métodos formales.

La teoría del lenguaje de programación es una rama de la informática que se ocupa del diseño, implementación, análisis, caracterización y clasificación de los lenguajes de programación y sus características individuales. Cae dentro de la disciplina de las ciencias de la computación, dependiendo y afectando a las matemáticas, la ingeniería de software y la lingüística. Es un área de investigación activa, con numerosas revistas académicas dedicadas.

Los métodos formales son un tipo particular de técnica de base matemática para la especificación, desarrollo y verificación de sistemas de software y hardware.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 la ingeniería, realizar un análisis matemático adecuado puede contribuir a la confiabilidad y solidez de un diseño. Forman una base teórica importante para la ingeniería de software, especialmente cuando se trata de seguridad o protección. 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 críticos para la vida y de alta integridad, donde la seguridad es de suma importancia.

IF-THEN-ELSE-END diagrama de flujo.svgGamma vdash x:{text{Int}}Compilador.svgPython add5 sintaxis.svgProp-cuadro-1.svgCoq plus com captura de pantalla.jpg
semántica formalteoría de tiposdiseño del compiladorLenguajes de programaciónVerificación formalDemostración automática de teoremas

Sistemas informáticos y procesos computacionales

Inteligencia artificial

La inteligencia artificial (IA) tiene como objetivo o es necesaria 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 las ciencias sociales. inteligencia. La IA está asociada 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 de evaluación y predicción ha tenido un éxito cada vez mayor como sustituto del control y la intervención humanos en dominios de aplicaciones informáticas que involucran datos complejos del mundo real.

Representación del cerebro humano de Nicolas P. Rougier.pngOjo humano, renderizado de Eye.pngRed neuronal coloreada.svgProceso de decisión de Markov.svg
Teoría del aprendizaje computacionalVisión por computadorRedes neuronalesPlanificación y programación
Español.pngTour del caballero.svgAckley.gifAutonomicSystemModel.png
Procesamiento natural del lenguajeTeoría de juegos computacionalesComputación evolutivaComputación autónoma
Neurona.svgKnnClasificación.svgROS C logo.jpgRegla alineación.gif
Representación y razonamientoReconocimiento de patronesrobóticaInteligencia de enjambre

Organización y arquitectura de computadoras

La arquitectura informática, u organización informática digital, es el diseño conceptual y la estructura operativa fundamental de un sistema informático. Se centra en gran medida en la forma en que la unidad central de procesamiento funciona internamente y accede a las direcciones en la memoria. Los ingenieros informáticos estudian la lógica computacional y el diseño del hardware de la computadora, desde componentes de procesadores individuales, microcontroladores, computadoras personales hasta supercomputadoras y 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.

UNAComputadoraBasic.gifIntel Core2 arch.svgSIMD.svgZ80 arco.svg
Unidad de procesamientoMicroarquitecturamultiprocesamientodiseño del procesador
Roomba original.jpgDiagrama de flujo.pngDiseño del núcleo.svgUarm metal wiki2.jpg
Computación ubicuaArquitectura de sistemasSistemas operativosDe entrada y salida
Computación física.svgFiltro FIR General.svgDep-1.svgEnlazador.svg
Sistema IntegradoComputación en tiempo realConfianzaInterprete

Computación concurrente, paralela y distribuida

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

Red 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 con el objetivo de proteger la información del acceso no autorizado, la interrupción o la modificación mientras se mantiene la accesibilidad y la facilidad de uso 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ómputos distribuidos que pueden ser atacados. 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 clave, 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 está destinada a organizar, almacenar y recuperar grandes cantidades de datos fácilmente. Las bases de datos digitales se gestionan utilizando 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.

Gráficos por computadora y visualización.

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, incluida la visión por computadora, el procesamiento de imágenes y la geometría computacional, y se aplica mucho en los campos de los efectos especiales y los videojuegos.

Simx2=transl OK.svgFWDvsINV Cinemática HighResTransp.png5-cell.gifHud en el gato.jpgAlgoritmo de seguimiento ocular de luz visible.jpgCsg árbol.png
Gráficos 2D por computadoraAnimación por computadoraRepresentaciónrealidad mixtaRealidad virtualModelado sólido

Procesamiento de imagen y sonido

La información puede tomar la forma de imágenes, sonido, video u otro tipo de multimedia. Los bits de información se pueden transmitir a través de 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 juega 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 no resueltos en informática teórica.

DIT-FFT-mariposa.pngPatrón de Bayer en sensor.svgOpus comparación de calidad compatible con daltónicos.svgComparación de calidad jpg vs saveforweb.jpgMeningiomaMRISegmentation.pngÆtoms - Traducción.svg
algoritmos FFTProcesamiento de imágenesReconocimiento de vozCompresión de datosInformática de imágenes médicasSíntesis de voz

Informática aplicada

Ciencias computacionales, finanzas e ingeniería

La computación científica (o ciencia computacional) es el campo de estudio relacionado con la construcción de modelos matemáticos y técnicas de análisis cuantitativo y el uso de computadoras para analizar y resolver problemas científicos. Un uso importante de la computación científica es la simulación de varios procesos, incluida la dinámica de fluidos computacional, los sistemas y circuitos físicos, eléctricos y electrónicos, así como sociedades y situaciones sociales (en particular, juegos de guerra) junto con sus hábitats, entre muchos otros. Las computadoras modernas permiten la optimización de diseños como aviones completos. Se destacan en el diseño de circuitos eléctricos y electrónicos SPICE, 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.

Lorenz atractor yb.svgQuark wiki.jpgNaftaleno-3D-bolas.png1u04-argonaute.pngGalvesLocherbach - Baja resolución.gifPlutchik-rueda.svgRadiografía de la mano, donde el software BoneXpert encuentra automáticamente la edad ósea.jpgElmer-bomba-heatequation.pngBachlut1.png
Análisis numéricofísica computacionalquímica computacionalBioinformáticaneuroinformáticapsicoinformáticaInformática Médicaingeniería computacionalmusicología computacional

Computación social e interacción humano-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 de la interacción humano-computadora 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 de diseñar, implementar y modificar el software para garantizar que sea de alta calidad, asequible, mantenible y rápido de construir. Es un enfoque sistemático para el 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 nuevo software, sino también de su arreglo interno y mantenimiento. Por ejemplo pruebas de software, ingeniería de sistemas, deuda técnica y procesos de desarrollo de software.

Descubrimientos

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

  • La percepción de Gottfried Wilhelm Leibniz, George Boole, Alan Turing, Claude Shannon y Samuel Morse: solo hay dos objetos con los que una computadora tiene que lidiar para representar "cualquier cosa".

Toda la información sobre cualquier problema computable se puede representar usando solo 0 y 1 (o cualquier otro par biestable que pueda alternar entre dos estados fácilmente distinguibles, como "encendido/apagado", "magnetizado/desmagnetizado", "alto -tensión/baja tensión", etc.).

  • La idea de Alan Turing: solo hay cinco acciones que una computadora debe realizar para hacer "cualquier cosa".

Cada algoritmo se puede expresar en un lenguaje para una computadora que consta de solo cinco instrucciones básicas:

  • mover a la izquierda una ubicación;
  • mover a la derecha una ubicación;
  • leer el símbolo en la ubicación actual;
  • imprimir 0 en la ubicación actual;
  • imprimir 1 en la ubicación actual.
  • La idea de Corrado Böhm y Giuseppe Jacopini: solo hay tres formas de combinar estas acciones (en otras más complejas) que se necesitan para que una computadora haga "cualquier cosa".

Solo 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 haz esto, DE LO CONTRARIO haz aquello;
  • repetición: MIENTRAS tal y tal es el caso, HAZ esto.

Tenga en cuenta que 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 diferentes tareas de diferentes maneras. Los paradigmas de programación comunes incluyen:

  • Programación funcional, un estilo de construcción de la estructura y los elementos de los programas informáticos que trata la computación como la evaluación de funciones matemáticas y evita el estado y los datos mutables. Es un paradigma de programación declarativa, lo que significa que la programación se realiza con expresiones o declaraciones en lugar de declaraciones.
  • Programación imperativa, un paradigma de programación que utiliza declaraciones que cambian el estado de un programa. De la misma manera que el modo imperativo en los lenguajes naturales expresa comandos, un programa imperativo consiste en comandos para que los ejecute la computadora. La programación imperativa se centra en describir cómo funciona un programa.
  • Programación orientada a objetos, un paradigma de programación basado en el concepto de "objetos", que pueden contener datos, en forma de campos, a menudo conocidos como atributos; y código, en forma de procedimientos, a menudo conocidos como métodos. Una característica de los objetos es que los procedimientos de un objeto pueden acceder ya menudo modificar los campos de datos del objeto con el que están asociados. Así, los programas informáticos orientados a objetos están hechos de objetos que interactúan entre sí.
  • Programación orientada a servicios, un paradigma de programación que utiliza "servicios" como la unidad de trabajo de la computadora, para diseñar e implementar aplicaciones comerciales integradas y programas de software de misión crítica.

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

Academia

Las conferencias son eventos importantes para la investigación en ciencias de la computación. Durante estas conferencias, investigadores de los sectores público y privado presentan sus trabajos recientes y se reúnen. A diferencia de la mayoría de los otros campos académicos, en ciencias de la computación, el prestigio de los artículos de conferencias es mayor que el de las publicaciones en revistas. 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 mejor manejada por conferencias que por revistas.

Educación

Ciencias de la Computación, conocida por sus sinónimos cercanos, Informática, Estudios de Computación, se ha enseñado en las escuelas del Reino Unido desde los días del procesamiento por lotes, marca tarjetas sensibles y cinta de papel, pero por lo general a unos pocos estudiantes seleccionados. En 1981, la BBC produjo una red de microcomputadoras y aulas, y los estudios de computación se volvieron comunes para los estudiantes de nivel O de GCE (de 11 a 16 años) y de ciencias de la computación para estudiantes de nivel A. Se reconoció su importancia y se convirtió en parte obligatoria del Currículo Nacional, para Key Stage 3 y 4. En septiembre de 2014 se convirtió en un derecho para todos los alumnos mayores de 4 años.

En los EE. UU., con 14.000 distritos escolares decidiendo el plan de estudios, la provisión se fracturó. Según un informe de 2010 de la Asociación de Maquinaria de Computación (ACM) y la Asociación de Maestros de Ciencias de la Computación (CSTA), solo 14 de los 50 estados han adoptado estándares educativos significativos para las ciencias de la computación en la escuela secundaria. Según un informe de 2021, solo el 51 % de las escuelas secundarias de EE. UU. ofrecen informática.

Israel, Nueva Zelanda y Corea del Sur han incluido las ciencias de la computación en sus currículos nacionales de educación secundaria, y varios otros lo están siguiendo.

Contenido relacionado

Teoría de la computabilidad

Las preguntas básicas abordadas por la teoría de la computabilidad...

Intel 80186

El 80186 de Intel, también conocido como iAPX 186, o simplemente 186, es un microprocesador y microcontrolador introducido en 1982. Fue basado en el Intel...

Algoritmo de búsqueda de cadenas

En informática, los algoritmos de búsqueda de cadenas, a veces llamados algoritmos de coincidencia de cadenas, son una clase importante de algoritmos de...
Más resultados...
Tamaño del texto:
Copiar