Ciencias de la computación

large capital lambdaRepresentación gráfica de del algoritmo de ordenamiento quicksort
Tetera de Utah representando los gráficos por computadoraRatón Microsoft Tastenmaus representando la interacción hombre-máquina
Las Ciencias de la computación estudian los fundamentos teóricos de la información y el cómputo, junto con técnicas prácticas para la implementación y aplicación de estos fundamentos teóricos.

Las ciencias de la computación o ciencias de la informática son las ciencias formales que abarcan las bases teóricas de la información y la computación, así como su aplicación en sistemas computacionales.[5]

Existen diversas ramas o disciplinas dentro de las ciencias de la computación; algunos resaltan los resultados específicos del cómputo (como los gráficos por computadora), mientras que otros (como la teoría de la complejidad computacional) se relacionan con propiedades de los algoritmos usados al realizar cómputo; y otros se enfocan en los problemas que requieren la implementación de sistemas computacionales. Por ejemplo, los estudios de la teoría de lenguajes de programación describen un cómputo, mientras que la programación de computadoras aplica lenguajes de programación específicos para desarrollar una solución a un problema computacional específico. Un computólogo se especializa en teoría de la computación y en el diseño e implementación de sistemas de computacionales.[6]

Según Peter J. Denning, la cuestión fundamental en que se basa la ciencia de la computación es: «¿Qué puede ser (eficientemente) automatizado?».[7]

Historia

Charles Babbage diseñó la primera computadora Turing-completa; aunque pasarían décadas antes de que Alan Turing y otros demostraran su relevancia.
Ada Lovelace es reconocida por escribir el primer algoritmo para una computadora universal (la "Máquina analítica" de Babbage).

La historia de la ciencia de la computación antecede a la invención del computador digital moderno. Antes de la década de 1920, el término computador se refería a un ser humano que realizaba cálculos.[8]​ Los primeros cimientos de lo que se convertiría en ciencias de la computación son anteriores a la invención de la computadora digital moderna. Se trataba de máquinas para el cálculo de las tareas numéricas fijas, como el ábaco han existido desde la antigüedad, ayudando en cálculos tales como la multiplicación y la división. Además, los algoritmos para realizar cálculos han existido desde la antigüedad, incluso antes de que se crearan equipos de computación sofisticados. Los antiguos sánscritos tratadistas Shulba Sutras, o "Reglas de la cuerda", es un libro de algoritmos escritos en 800 a. C. para la construcción de objetos geométricos como altares utilizando una clavija y cuerda, un precursor temprano del campo moderno de la geometría computacional.

Blaise Pascal diseñó y construyó la primera calculadora mecánica de trabajo, la Pascalina, en 1642.[17]

Durante la década de 1940, conforme se desarrollaban las nuevas y más poderosas máquinas para computar, el término computador se comenzó a utilizar para referirse a las máquinas y ya no a sus antecesores humanos.[20]​ Desde que se dispone ordenadores prácticos, muchas aplicaciones la de las ciencias de la computación convirtieron en diferentes áreas de estudio en sus propios términos.

Aunque inicialmente muchos creyeron que era imposible que las computadoras en sí mismas podrían constituir en realidad un campo científico de estudio, a finales de los años cincuenta se fue volviendo gradualmente aceptada entre la población mayor académica.[22]

La disciplina científica de las ciencias de la computación nace a principios de 1940 con la confluencia de la teoría de algoritmos, lógica matemática y la invención del programa almacenado en una computadora electrónica.[4]​ Ejemplos de esto son los trabajos de Alan Turing, Alonzo Church y Kurt Gödel en 1930 acerca de los algoritmos y su trabajo en sistemas de reglas (véase Cálculo Lambda, Máquina de Turing y Problemas Indecidibles), los algoritmos creados por Augusta Ada sesenta años antes, la computadora analógica construida por Vannevar Bush en 1920 y las computadoras eléctricas construidas por Howard Aiken y Konrad Zuse en 1930. Los escritos de John Von Neumann dieron una profundidad intelectual considerable a esta disciplina emergente a mediados de la década de 1940.

En 1960, había suficientemente cuerpo de conocimiento que ameritaba la creación de departamentos académicos y programas de grado universitario para esta disciplina.[21]​ Durante la década de 1950, la disciplina de las ciencias de la computación estaba en su etapa de desarrollo, y estos problemas eran algo común.

El tiempo ha dado mejoras significativas en la capacidad de uso y la eficacia de la tecnología de la computación. La sociedad moderna ha presenciado un cambio significativo en los usuarios de la tecnología en cómputo, de ser utilizada únicamente por expertos, profesionales y científicos, a una base de usuarios que es casi omnipresente a la teoría con la cual se desarrolló y funciona este tipo de tecnología. Inicialmente, las computadoras eran bastante costosas, y era necesario un cierto grado de ayuda humana para el uso eficiente - en parte de operadores de computadoras profesionales. Como la adopción equipo se hizo más generalizado y asequible, se necesitaba menos asistencia humana en el uso común.

Mayores logros

El ejército alemán usó la máquina Enigma durante la Segunda Guerra Mundial; su sistema de cifrado fue finalmente descubierto por Alan Turing, considerado el padre de la Computación. La lectura de la información que contenían los mensajes supuestamente encriptados son considerados, a veces, como la causa de haber podido concluir la Segunda Guerra Mundial al menos dos años antes de lo que hubiera acaecido sin su descifrado. El descifrado a gran escala del tráfico de Enigma en Bletchley Park fue uno de los factores más importantes que contribuyeron a la victoria Aliada.[27]

A pesar de su corto tiempo de ser una disciplina científica formal, las ciencias de la computación han hecho un gran número de contribuciones importantes a la ciencia y la sociedad –de hecho, junto con la electrónica, es una ciencia fundacional de la época actual de la historia humana llamada Era de la información y la Revolución de la Información, visto como el tercer gran salto en el progreso tecnológico humano después de la Revolución Industrial (1750-1850) y la revolución neolítica (8000-5000 a. C.).

Estas contribuciones a la humanidad incluyen:

Filosofía

Un gran número de científicos de la computación han argumentado a favor de la distinción de tres paradigmas diferentes en ciencias de la computación. Peter Wegner ha argumentado que esos paradigmas son la ciencia, la tecnología y las matemáticas.[33]​ El grupo de investigación de Peter Denning argumentó que son la abstracción (modelado), y diseño. Amnon H. Eden lo describe como el “paradigma racionalista” (el cual trata a las ciencias de la computación como una rama de las matemáticas, la cual prevalece en ciencias de la computación teórica y principalmente emplea el razonamiento deductivo), el paradigma tecnocrático (que podría ser encontrado en enfoques ingenieriles, más prominente en la ingeniería de software) y el paradigma científico (que se enfoca a objetos relacionados con la computación desde la perspectiva empírica de las ciencias naturales identificable en algunas ramas de la inteligencia artificial).

Nombre del campo

A pesar de su primera proposición en 1956,[36]​Sus esfuerzos y los de otros, como el analista numérico George Forsythe, fueron recompensados: universidades pasaron a crear este tipo de programas de estudio, a partir de 1962 en Purdue.[38]

Algunos departamentos de universidades prefieren el término “ciencias de la computación” para hacer énfasis en esta diferencia. El científico danés Peter Naur sugirió el término datología,[43]​ Pero estas no reflejan el aspecto de la computabilidad, por esta razón en un contexto de investigación científica tanto académica como industrial el término ciencias de la computación es mayormente usado en publicaciones y conferencias científicas.

Campos de las ciencias de la computación

Como disciplina científica, las ciencias de la computación abarcan una gama de temas, desde los estudios teóricos de los algoritmos y los límites de la computación a los problemas prácticos de la implementación de sistemas computacionales en hardware y software.[44]

Ciencias de la computación teóricas

El campo más amplio de la ciencia de la computación teórica abarca tanto la teoría clásica de la computación y una amplia gama de otros temas que se centran en los aspectos más abstractos, lógicos y matemáticos de la computación.

Teoría de la computación

De acuerdo a Peter J. Denning, la pregunta fundamental en ciencias de la computación es, «¿Qué puede ser eficientemente automatizado?»[7]​ El estudio de la teoría de la computación está enfocado en responder preguntas fundamentales acerca de qué puede ser computado y qué cantidad de recursos son requeridos para ejecutar tales cómputos. En un esfuerzo por resolver esta pregunta, la teoría de la computabilidad examina qué problemas computacionales se pueden resolver en varios modelos teóricos de cómputo. La segunda pregunta está dirigida por la teoría de la complejidad computacional, que estudia los costos de tiempo y espacio asociados a diferentes enfoques para resolver una multitud de problemas computacionales.

El famoso problema "¿P=NP?" es uno de los Problemas del milenio,[47]​ es un problema abierto en ciencias de la computación.

DFAexample.svgWang tiles.svgP = NP ?GNITIRW-TERCESBlochsphere.svg
Teoría de autómatasTeoría de la computabilidadTeoría de la complejidad computacionalCriptografíaComputación cuántica

Teoría de la información y códigos

La teoría de la información está relacionada con la cuantificación de la información. Fue desarrollada por Claude E. Shannon para desarrollar los límites fundamentales del procesamiento de señales así como sus operaciones, tales como compresión y almacenamiento de datos así como la comunicación de los datos de manera fiable.[48]​La teoría de códigos es un área de las matemáticas que busca resolver el problema de detectar y corregir errores al momento de transmitir información.[49]​ Los códigos son usados para comprimir datos, criptografía y más recientemente para la codificación de redes. Los códigos son estudiados para el propósito de diseñar métodos eficientes y seguros para la transmisión de datos.

Algoritmos y estructuras de datos

Los algoritmos y las estructuras de datos son el estudio de métodos computacionales comúnmente usados así como su eficiencia computacional.

Sorting quicksort anim.gifSingly-linked-list.svgTSP Deutschland 3.pngSimplexRangeSearching.svg
Análisis de algoritmosAlgoritmosEstructuras de datosOptimización combinatoriaGeometría computacional

Teoría de lenguajes de programación

La teoría del lenguaje de programación es una rama de las ciencias de la computación que se ocupa del diseño, implementación, análisis, caracterización y clasificación de los lenguaje de programación y sus características individuales, cae dentro de la disciplina de las ciencias de la computación, tanto en dependencia de las matemáticas y la lingüística. Es un área de investigación activa, con numerosas revistas académicas y conferencias especializadas en el tema.

Compiler.svgPython add5 syntax.svg
Teoría de tiposCompiladoresLenguajes de programación

Métodos formales

Los métodos formales son un tipo particular de la técnica basada en las matemáticas para la especificación formal, desarrollo y verificación formal de los 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, la realización de un análisis matemático adecuado puede contribuir a la fiabilidad y robustez de un diseño. Estos forman una importante base teórica para la ingeniería de software, especialmente cuando está involucrado la seguridad o robustez. Los métodos formales son un complemento útil para las pruebas de software, ya que ayudan a evitar errores y también pueden dar un marco para hacer pruebas. Para su uso industrial, se requiere el apoyo de herramientas. Sin embargo, el alto costo de la utilización de métodos formales significa que por lo general solo se utilizan en el desarrollo de sistemas críticos de alta integridad donde la vida o la seguridad es de muy alta importancia. Los métodos formales se describen mejor como la aplicación de una bastante amplia variedad de teóricos fundamentales de la informática, en particular, los cálculos lógica, los lenguajes formales, la teoría de autómatas, y la semántica de los programas, sino también de tipo de sistemas y tipos de datos algebraicos a los problemas en el software y hardware de especificación y verificación.

Los métodos formales se describen mejor como la aplicación de una amplia variedad de fundamentos teóricos de las ciencias de la computación, en particular la lógica computacional, lenguajes formales, teoría de autómatas y Semántica de lenguajes de programación pero también áreas como 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

Las ciencias de la computación aplicadas tratan de identificar ciertos aspectos conceptuales y teóricos de las ciencias de la computación que pueden ser aplicados directamente para resolver problemas del mundo real.

Inteligencia artificial

Esta rama de las ciencias de la computación pretende o es requerida para la síntesis de procesos meta-orientados tales como la resolución de problemas, toma de decisiones, la adaptación del medio ambiente, el aprendizaje y la comunicación que se encuentran en los seres humanos y los animales. Desde sus orígenes en la cibernética y en la Conferencia de Dartmouth (1956), la investigación en inteligencia artificial (IA) ha sido necesariamente multidisciplinaria, aprovechando áreas de especialización, tales como las matemáticas, 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 erróneamente es 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 las áreas de desarrollo de software que requieren la comprensión y modelación computacional, tales como las finanzas y la economía, la minería de datos y las ciencias físicas. El término fue acuñado por el científico de la computación y matemático John McCarthy en 1955.

Nicolas P. Rougier's rendering of the human brain.pngNASA Mars Rover.jpgCorner.pngKnnClassification.svg
Aprendizaje automáticoVisión artificialProcesamiento de imágenesReconocimiento de patrones
User-FastFission-brain.gifJulia iteration data.pngSky.pngEarth.png
Ciencia cognitivaMinería de datosComputación evolutivaBúsqueda y recuperación de información
Neuron.svgEnglish.pngHONDA ASIMO.jpgMeningiomaMRISegmentation.png
Representación del conocimientoProcesamiento de lenguaje naturalRobóticaCómputo de imágenes médicas

Arquitectura de computadoras

La arquitectura de computadores u organización de computadoras digitales es el diseño conceptual y la estructura operacional fundamental de un sistema cómputo. Se centra en gran medida de la manera en que la unidad central de procesamiento realiza internamente y accede a las direcciones en la memoria.[50]​ El campo involucra disciplinas de la ingeniería en computación y la ingeniería eléctrica, la selección y la interconexión de los componentes de hardware para crear los equipos que cumplen funciones, de rendimiento, y costes.

NOR ANSI.svgFivestagespipeline.pngSIMD.svg
Lógica digitalMicroarquitecturasMultiprocesamiento
Operating system placement.svgNetwork Library LAN.svgEmp Tables (Database).PNGPadlock.svg
Sistemas operativosRedes de computadorasSistemas de gestión de bases de datosSeguridad de la información
Roomba original.jpgFlowchart.pngIdeal compiler.pngPython add5 syntax.svg
Computación ubicuaArquitectura de softwareDiseño de compiladoresLenguajes de programación

Análisis de rendimiento de computadoras

Análisis de rendimiento del equipo es el estudio del trabajo que fluye a través de los equipos con el objetivo general de mejora de rendimiento y control de tiempo de respuesta, utilizando los recursos de manera eficiente, la eliminación de los cuellos de botella, y la predicción de rendimiento bajo cargas máximas previstas.[51]

Cómputo científico

La ciencia computacional (o computación científica) es el campo de estudio que trata con la construcción de modelos matemáticos y técnicas de análisis cuantitativos, así como el uso de computadoras para analizar y resolver problemas científicos. En el uso práctico, es típicamente la aplicación de simulación por ordenador y otras formas de cálculo a los problemas en diversas disciplinas científicas.

Lorenz attractor yb.svgQuark wiki.jpgNaphthalene-3D-balls.png1u04-argonaute.png
Análisis numéricoFísica computacionalQuímica computacionalBioinformática

Redes de computadoras

Esta rama de las ciencias de la computación tiene como objetivo gestionar la conectividad entre redes (LAN / WAN) de computadoras a nivel mundial.

Sistemas concurrentes, paralelos y distribuidos

Concurrencia es una propiedad de los sistemas en los que varios cálculos están ejecutando de forma simultánea, y, potencialmente, que interactúan entre sí. Un número de modelos matemáticos han sido desarrollados para el cálculo concurrente general, incluyendo las redes de Petri, cálculos de proceso y del modelo de máquina de acceso aleatorio en paralelo. Un sistema distribuido se extiende la idea de la simultaneidad en varios ordenadores conectados a través de una red. Computadoras dentro del mismo sistema distribuido tienen su propia memoria privada, y la información es a menudo intercambian entre sí para lograr un objetivo común.

Bases de datos

Una base de datos tiene la intención de organizar, almacenar y recuperar grandes cantidades de datos de forma sencilla. Bases de datos digitales se gestionan mediante sistemas de gestión de base de datos para almacenar, crear, mantener y consultar los datos, a través de modelos de bases de datos y lenguajes de consulta. Una base de datos es un conjunto de datos interrelacionados entre ellos mismos.

Informática en salud

La informática en salud o informática médica es la aplicación de la informática y las comunicaciones al área de la salud mediante el uso del software médico, y forma parte de las tecnologías sanitarias. Su objetivo principal es prestar servicio a los profesionales de la salud para mejorar la calidad de la atención sanitaria.[52]

Es la intersección de las ciencias de la computación y la atención de la salud. Se ocupa de los recursos, los dispositivos y los métodos necesarios para optimizar la adquisición, almacenamiento, recuperación y utilización de la información en salud y en biomedicina. Los instrumentos informáticos de la salud incluyen no solo los ordenadores, sino también guías de práctica clínica, terminología médica formal, y de sistemas de información y comunicación.

Existen varias formas de definir a la informática médica. Enrico Coiera la define como «el estudio de cómo el conocimiento médico multidisciplinario es creado, conformado, compartido y aplicado».[53]

La informática médica se apoya actualmente en las tecnologías de la información y comunicación (TICs), y por ello se denomina e-salud, telesalud y telemedicina.

Ciencia de la información

El campo estudia la estructura, algoritmos, comportamiento e interacciones de los sistemas naturales y artificiales que guardan, procesan, acceden a y comunican información. También desarrolla sus propios fundamentos conceptuales y teóricos y emplea fundamentos desarrollados en otros campos. Una aplicación moderna es el Big Data, que consiste en el procesamiento de un conjunto de datos (provenientes de fuentes como por ejemplo: transacciones comerciales, formularios web, imágenes, videos, correos electrónicos, redes sociales, entre otros), los cuales son sometidos a herramientas informáticas de análisis que permiten extraer información valiosa para predecir comportamientos futuros y formular estrategias de toma decisiones.[54]

Earth.pngNeuron.pngEnglish.pngWacom graphics tablet and pen.png
Búsqueda y recuperación de informaciónRepresentación del conocimientoProcesamiento de lenguaje naturalInteracción persona-computador

Ingeniería de software

Ingeniería de software es el estudio del diseño, implementación y modificación del software con la finalidad de asegurarse de que es de alta calidad, asequible, fácil de mantener, 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 de software. Los ingenieros de software comercian con la organización y análisis de software — no solo lidian con la creación o fabricación de un nuevo software, sino también con su mantenimiento y disposición interna. Se prevé que estén entre las ocupaciones de más rápido crecimiento entre 2008 y 2018. Debido a la novedad de este subcampo, la educación formal en Ingeniería de software generalmente es parte de los planes de estudio de ciencias de la computación, la gran mayoría de ingenieros de software tienen un grado académico en ciencias de la computación sin tener relación con la ingeniería.[55]

Relación con otros campos

Por ser una disciplina reciente, existen varias definiciones alternativas para la ciencia de la computación. Esta puede ser vista como una forma de ciencia, matemáticas o una nueva disciplina que no puede ser categorizada siguiendo los modelos actuales.

Las ciencias de la computación frecuentemente se cruzan con otras áreas de investigación, tales como la física y la lingüística. Pero es con las matemáticas con las que se considera que tiene un grado mayor de relación. Eso es evidenciado por el hecho de que los primeros trabajos en el área fueran fuertemente influenciados por matemáticos como Kurt Gödel y Alan Turing. En la actualidad sigue habiendo un intercambio de ideas útil entre ambos campos en áreas como la lógica matemática, la teoría de categorías, la teoría de dominios, el álgebra y la geometría.

Otro punto a destacar es que, a pesar de su nombre, las ciencias de la computación raramente involucran el estudio mismo de las máquinas conocidas como computadoras. De hecho, el renombrado científico Edsger Dijkstra es muy citado por la frase «Las ciencias de la computación están tan poco relacionadas con las computadoras como la astronomía con los telescopios». La investigación en ciencias de la computación también suele relacionarse con otras disciplinas, como la ciencia cognitiva, la física (véase computación cuántica), la lingüística, etc.

La relación entre las ciencias de la computación y la ingeniería de software es un tema muy discutido, por disputas sobre lo que realmente significa el término "ingeniería de software" y sobre cómo se define a las ciencias de la computación. Algunas personas creen que la ingeniería de software sería un subconjunto de las ciencias de la computación. Otras, tomando en cuenta la relación entre otras disciplinas científicas y de la ingeniería, creen que el principal objetivo de las ciencias de la computación sería estudiar las propiedades del cómputo en general, mientras que el objetivo de la ingeniería de software sería diseñar cómputos específicos para lograr objetivos prácticos, con lo que se convertiría en disciplinas diferentes. Este punto de vista es el que sostiene, por ejemplo, Parnas (1998). Incluso hay otros que sostienen que no podría existir una ingeniería de software.

Los aspectos académicos, políticos y de financiamiento en las áreas de ciencias de la computación tienden a verse influidos drásticamente por el criterio del departamento encargado de la investigación y la educación en cada universidad, que puede estar orientado a las matemática o a la ingeniería. Los departamentos de ciencias de la computación orientados a las matemáticas teóricas suelen alinearse del lado de la computación científica y las aplicaciones de cálculo numérico.

El término "computación científica", que no debe confundirse con ciencia de la computación, designa a todas aquellas prácticas destinadas a modelar, plantear experimentos y validar teorías científicas sirviéndose de medios computacionales. En estos casos la computación es una mera herramienta y el esfuerzo se dirige a avanzar en los campos objetivo (física, biología, mecánica de fluidos, radiotransmisión...), más que en la propia ciencia de la computación.

Finalmente, el público en general algunas veces confunde la ciencia de la computación con áreas vocacionales que trabajan con computadoras o piensan que trata acerca de su propia experiencia con las computadoras, lo cual suele incluir actividades como los juegos, la navegación web y el procesamiento de texto. Sin embargo, el punto central de la ciencia de la computación va más allá de entender las propiedades de los programas que se emplean para implementar aplicaciones de software como juegos y navegadores web, y utiliza ese entendimiento para crear nuevos programas o mejorar los existentes.[56]

Véase también

Referencias

  1. "Computer science is the study of information" Department of Computer and Information Science, Guttenberg Information Technologies
  2. "Computer science is the study of computation." Computer Science Department, College of Saint Benedict Archivado el 3 de febrero de 2007 en la Wayback Machine., Saint John's University
  3. "Computer Science is the study of all aspects of computer systems, from the theoretical foundations to the very practical aspects of managing large software projects." Massey University
  4. a b c Anthony Ralston, Edwin D. Reilly, David Hemmendinger (2000). Encyclopedia of Computer Science. Wiley. 978-0-470-86412-8. 
  5. http://www.cs.bu.edu/AboutCS/WhatIsCS.pdf.
  6. «WordNet Search - 3.1». Wordnetweb.princeton.edu. Consultado el 14 de mayo de 2012. 
  7. a b c el original el 25 de mayo de 2006. 
  8. David Alan Grier (2005). When computers were human. Princeton University Press. ISBN 84-89660-00-X. 
  9. «Blaise Pascal». School of Mathematics and Statistics University of St Andrews, Scotland. 
  10. «A Brief History of Computing». 
  11. En 1851
  12. «Science Museum - Introduction to Babbage». Archivado desde el original el 8 de septiembre de 2006. Consultado el 24 de septiembre de 2006. 
  13. Anthony Hyman (1982). Charles Babbage, pioneer of the computer. 
  14. "La introducción de tarjetas perforadas en el nuevo motor era importante no sólo como una forma más conveniente de control que los tambores, si no porque se podría programar de forma ilimitada, y estos programas podrían ser almacenados y repetidos sin el peligro de introducir errores en la configuración a mano de la máquina; era importante también porque sirvió para cristalizar sensación de Babbage que había inventado algo realmente nuevo, algo mucho más que una máquina calculadora sofisticada." Bruce Collier, 1970
  15. «A Selection and Adaptation From Ada's Notes found in Ada, The Enchantress of Numbers, by 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. 
  16. "En este sentido Aiken necesitaba de IBM, cuya tecnología incluida el uso de tarjetas perforadas, la acumulación de datos numéricos, y la transferencia de los datos numéricos de un registro a otro ", Bernard Cohen, p.44 (2000)
  17. Brian Randell, p. 187, 1975
  18. La Association for Computing Machinery (ACM) fue fundada en 1947.
  19. «Some EDSAC statistics». Cl.cam.ac.uk. Consultado el 19 de noviembre de 2011. 
  20. «Computer science pioneer Samuel D. Conte dies at 85». Purdue Computer Science. 1 de julio de 2002. Consultado el 12 de diciembre de 2014. 
  21. a b c Levy, Steven (1984). Hackers: Heroes of the Computer Revolution. Doubleday. ISBN 0-385-19195-2. 
  22. a b c Tedre, Matti (2014). The Science of Computing: Shaping a Discipline. Taylor and Francis / CRC Press. 
  23. «IBM 704 Electronic Data Processing System - CHM Revolution» (en inglés). Computerhistory.org. Consultado el 7 de julio de 2013. 
  24. «IBM 709: a powerful new data processing system» (en inglés). Computer History Museum. Archivado desde el original el 4 de marzo de 2016. Consultado el 12 de diciembre de 2014. 
  25. «IBM 704 Electronic Data Processing System - CHM Revolution». Computerhistory.org. Consultado el 7 de julio de 2013. 
  26. «IBM 709: a powerful new data processing system». Computer History Museum. Archivado desde el original el 4 de marzo de 2016. Consultado el 12 de diciembre de 2014. 
  27. a b David Kahn, The Codebreakers, 1967, ISBN 0-684-83130-9.
  28. a b https://web.archive.org/web/20060911104502/http://www.cis.cornell.edu/Dean/Presentations/Slides/bgu.pdf
  29. Constable, R.L. (March 2000). Computer Science: Achievements and Challenges circa 2000 (PDF). Archivado desde el original el 21 de julio de 2010. 
  30. Abelson, H.; G.J. Sussman with J. Sussman (1996). Structure and Interpretation of Computer Programs (2nd edición). MIT Press. ISBN 0-262-01153-0. «La revolución de la computadora es una revolución en la manera de pensar y en la forma en que expresamos lo que pensamos. La esencia de este cambio es la aparición de lo que podría llamarse mejor epistemología procedimental —el estudio de la estructura del conocimiento desde un punto de vista imperativo, en oposición al punto de vista más declarativo tomada por temas matemáticos clásicos–.» 
  31. «Black box traders are on the march.» The Telegraph, 26 de agosto de 2006.
  32. «The Impact of High Frequency Trading on an Electronic Market». Papers.ssrn.com. 10.2139/ssrn.1686004. Consultado el 14 de mayo de 2012. 
  33. Wegner, P. (October 13–15, 1976). «Research paradigms in computer science». San Francisco, California, United States: IEEE Computer Society Press, Los Alamitos, CA. 
  34. Louis Fine (1959). «The Role of the University in Computers, Data Processing, and Related Fields». Communications of the ACM 2 (9): 7-14. 10.1145/368424.368427. 
  35. «Stanford University Oral History». Stanford University. Consultado el 30 de mayo de 2013. 
  36. id., p. 11
  37. "George Forsythe and the Development of Computer Science". Comms. ACM.
  38. Matti Tedre (2006). The Development of Computer Science: A Sociocultural Perspective, p.260
  39. Peter Naur (1966). «The science of datalogy». Communications of the ACM 9 (7): 485. 10.1145/365719.366510. 
  40. Communications of the ACM 1(4):p.6
  41. Communications of the ACM 2(1):p.4
  42. IEEE Computer 28(12):p.136
  43. P. Mounier-Kuhn, L’Informatique en France, de la seconde guerre mondiale au Plan Calcul. L’émergence d’une science, Paris, PUPS, 2010, ch. 3 & 4.
  44. a b Computing Sciences Accreditation Board (28 de mayo de 1997). «Computer Science as a Profession». Archivado desde el original el 17 de junio de 2008. Consultado el 23 de mayo de 2010. 
  45. Committee on the Fundamentals of Computer Science: Challenges and Opportunities, National Research Council (2004). Computer Science: Reflections on the Field, Reflections from the Field. National Academies Press. ISBN 978-0-309-09301-9. 
  46. «Csab, Inc». Csab.org. 3 de agosto de 2011. Consultado el 19 de noviembre de 2011. 
  47. Clay Mathematics Institute P=NP
  48. P. Collins, Graham. «Claude E. Shannon: Founder of Information Theory». Scientific American, Inc. 
  49. «Teoría de Códigos | CIMAT». www.cimat.mx. Consultado el 26 de septiembre de 2016. 
  50. A. Thisted, Ronald. «COMPUTER ARCHITECTURE». The University of Chicago. Consultado el 7 de abril de 1997. 
  51. Wescott, Bob (2013). The Every Computer Performance Book, Chapter 3: Useful laws. CreateSpace. ISBN 1482657759. 
  52. de Quir, F. G. B., & Plazzotta, F. (2015). INFORMÁTICA EN SALUD.
  53. Coiera E, et al. Informática médica. Manual Moderno; 2005. ISBN 9707291990, 9789707291997
  54. «Datos Digitales conectados en Red». Consultado el 7 de enero de 2017. 
  55. «Software Engineering». Archivado desde el original el 17 de junio de 2011. Consultado el 1 de febrero de 2008. 
  56. "Common myths and preconceptions about Cambridge Computer Science" Computer Science Department, University of Cambridge.

Bibliografía

Enlaces externos

Fuentes bibliográficas y motores de búsqueda académicos enfocados a ciencias de la computación
Organizaciones Profesionales
Other Languages
Alemannisch: Informatik
aragonés: Informatica
العربية: علم الحاسوب
asturianu: Informática
azərbaycanca: İnformatika
башҡортса: Информатика
Boarisch: Informatik
žemaitėška: Infuormatėka
беларуская: Інфарматыка
беларуская (тарашкевіца)‎: Інфарматыка
brezhoneg: Urzhiataerezh
kaszëbsczi: Infòrmatika
Cymraeg: Cyfrifiadureg
dansk: Datalogi
Deutsch: Informatik
Zazaki: İnformatik
emiliàn e rumagnòl: Informàtica
Esperanto: Informadiko
euskara: Informatika
estremeñu: Enhormática
føroyskt: Teldufrøði
français: Informatique
Nordfriisk: Informaatik
furlan: Informatiche
kriyòl gwiyannen: Lenfòrmatik
客家語/Hak-kâ-ngî: Thien-nó Khô-ho̍k
hrvatski: Računarstvo
Kreyòl ayisyen: Enfòmatik
հայերեն: Ինֆորմատիկա
interlingua: Informatica
Bahasa Indonesia: Ilmu komputer
Interlingue: Informatica
íslenska: Tölvunarfræði
italiano: Informatica
日本語: 計算機科学
la .lojban.: samske
ქართული: ინფორმატიკა
Qaraqalpaqsha: Informatika
Taqbaylit: Tasenselkimt
қазақша: Информатика
한국어: 컴퓨터 과학
kurdî: Informatîk
Latina: Informatica
Ladino: Informatika
Lëtzebuergesch: Informatik
Ligure: Informatica
lumbaart: Informatega
lietuvių: Informatika
latgaļu: Datorzineiba
latviešu: Datorzinātne
Malagasy: Kajimirindra
олык марий: Информатике
Minangkabau: Ilmu komputer
македонски: Информатика
Bahasa Melayu: Sains komputer
Napulitano: Nfurmateca
Nedersaksies: Infermatika
Nederlands: Informatica
norsk nynorsk: Informatikk
occitan: Informatica
Picard: Informatike
polski: Informatyka
Piemontèis: Anformàtica
română: Informatică
armãneashti: Informatică
русский: Информатика
русиньскый: Інформатіка
sicilianu: Nfurmàtica
srpskohrvatski / српскохрватски: Računarstvo
Simple English: Computer science
slovenščina: Računalništvo
српски / srpski: Информатика
Seeltersk: Informoatik
svenska: Datavetenskap
татарча/tatarça: Информатика
ئۇيغۇرچە / Uyghurche: بیلگیسايار مۈھەندیسلیغی
українська: Інформатика
oʻzbekcha/ўзбекча: Informatika
vèneto: Informadega
Tiếng Việt: Khoa học máy tính
Yorùbá: Ìfitónilétí
Zeêuws: Informaotica
Bân-lâm-gú: Tiān-náu kho-ha̍k
粵語: 電腦科學