COMPUTACION
la teoría de la computación es un conjunto de conocimientos racionales, sistematizados y
funcionales que se centran en el estudio de la abstracción de los procesos que ocurren en la
realidad con el fin de reproducirlos con ayuda de sistemas formales, es decir, a través de
códigos de caracteres e instrucciones lógicas, reconocibles por el ser humano, con capacidad
de ser modeladas en las limitaciones de dispositivos que procesan información y que efectúan
cálculos como, por ejemplo, el ordenador. Para ello, se apoya en la teoría de autómatas, a fin
de simular y estandarizar dichos procesos, así como para formalizar los problemas y darles
solución
Teoría de autómatas[editar]
Artículo principal: Teoría de autómatas
Esta teoría provee modelos matemáticos que formalizan el concepto
de computadora o algoritmo de manera suficientemente simplificada y general para que se
puedan analizar sus capacidades y limitaciones. Algunos de estos modelos juegan un papel
central en varias aplicaciones de las ciencias de la computación, incluyendo procesamiento de
texto, compiladores, diseño de hardware e inteligencia artificial.
Existen muchos otros tipos de autómatas como las máquinas de acceso aleatorio, autómatas
celulares, máquinas ábaco y las máquinas de estado abstracto; sin embargo en todos los
casos se ha mostrado que estos modelos no son más generales que la máquina de Turing,
pues la máquina de Turing tiene la capacidad de simular cada uno de estos autómatas. Esto
da lugar a que se piense en la máquina de Turing como el modelo universal de computadora.
Teoría de la computabilidad[editar]
Artículo principal: Teoría de la computabilidad
Véase también: Indecidibilidad
Esta teoría explora los límites de la posibilidad de solucionar problemas mediante algoritmos.
Gran parte de las ciencias computacionales están dedicadas a resolver problemas de forma
algorítmica, de manera que el descubrimiento de problemas imposibles es una gran sorpresa.
La teoría de la computabilidad es útil para no tratar de resolver algorítmicamente estos
problemas, ahorrando así tiempo y esfuerzo.
Los problemas se clasifican en esta teoría de acuerdo a su grado de imposibilidad:
 Los computables son aquellos para los cuales sí existe un algoritmo que siempre los
resuelve cuando hay una solución y además es capaz de distinguir los casos que no la
tienen. También se les conoce como decidibles, resolubles o recursivos.
 Los semicomputables son aquellos para los cuales hay un algoritmo que es capaz
encontrar una solución si es que existe, pero ningún algoritmo que determine cuando la
solución no existe (en cuyo caso el algoritmo para encontrar la solución entraría a
un bucle infinito). El ejemplo clásico por excelencia es el problema de la parada. A estos
problemas también se les conoce como listables, recursivamente
enumerables o reconocibles, porque si se enlistan todos los casos posibles del problema,
es posible reconocera aquellos que sí tienen solución.
 Los incomputables son aquellos para los cuales no hay ningún algoritmo que los pueda
resolver, no importando que tengan o no solución. El ejemplo clásico por excelencia es
el problema de la implicación lógica, que consiste en determinar cuándo una proposición
lógica es un teorema; para este problema no hay ningún algoritmo que en todos los casos
pueda distinguir si una proposición o su negación es un teorema.
Hay una versión más general de esta clasificación, donde los problemas incomputables se
subdividen a su vez en problemas más difíciles que otros. La herramienta principal para lograr
estas clasificaciones es el concepto de reducibilidad: Un problema se reduce al
problema si bajo la suposición de que se sabe resolver el problema es posible
resolver al problema ; esto se denota por , e informalmente significa que el
problema no es más difícil de resolver que el problema . Por ejemplo, bajo la
suposición de que una persona sabe sumar, es muy fácil enseñarle a multiplicar haciendo
sumas repetidas, de manera que multiplicar se reduce a sumar.
Teoría de la complejidad computacional[editar]
Artículo principal: Complejidad computacional
Véase también: Clase de complejidad
Aun cuando un problema sea computable, puede que no sea posible resolverlo en la práctica
si se requiere mucha memoria o tiempo de ejecución. La teoría de la complejidad
computacional estudia las necesidades de memoria, tiempo y otros recursos computacionales
para resolver problemas; de esta manera es posible explicar por qué unos problemas son más
difíciles de resolver que otros. Uno de los mayores logros de esta rama es la clasificación de
problemas, similar a la tabla periódica, de acuerdo a su dificultad. En esta clasificación los
problemas se separan por clases de complejidad.
Esta teoría tiene aplicación en casi todas las áreas de conocimiento donde se desee resolver
un problema computacionalmente, porque los investigadores no solo desean utilizar un
método para resolver un problema, sino utilizar el más rápido. La teoría de la complejidad
computacional también tiene aplicaciones en áreas como la criptografía, donde se espera que
descifrar un código secreto sea un problema muy difícil a menos que se tenga la contraseña,
en cuyo caso el problema se vuelve fácil.
Otras subramas[editar]
 Modelos de cómputo Estudia abstracciones de hacer un cómputo. Aquí se incluyen los
clásicos modelos de la teoría de autómatas además de otros modelos como funciones
recursivas, cálculo lambda e inclusive lenguajes de programación.
 Teoría algorítmica de la información Centra su atención en la complejidad para describir
algorítmicamente una secuencia de datos (cadena); aquí la complejidad está medida por
la longitud de su descripción más pequeña.
 Especificación y verificación formal Busca metodologías para garantizar que un
problema esté correctamente modelado y sistemas formales para validar la corrección de
la solución algorítmica.
 La Teoría del aprendizaje computacional busca algoritmos que hagan que las
computadoras modifiquen sus comportamientos de manera autónoma con base en datos
empíricos, y concretamente en ejemplos y contraejemplos. A este tipo de aprendizaje se
le llama aprendizaje supervisado. De forma análoga a la teoría de la complejidad
computacional, en esta teoría las funciones se clasifican por su grado de dificultad de ser
aprendidas.
 Teoría de tipos Busca la clasificación de enunciados de acuerdo a los tipos de valores
que calculan utilizando herramientas de teoría de lenguajes formales.
Historia[editar]
Véanse también: Entscheidungsproblemy Tesis de Church-Turing.
La teoría de la computación comienza propiamente a principios del siglo XX, poco antes que
las computadoras electrónicas fuesen inventadas. En esta época varios matemáticos se
preguntaban si existía un método universal para resolver todos los problemas matemáticos.
Para ello debían desarrollar la noción precisa de método para resolver problemas, es decir, la
definición formal de algoritmo.
Algunos de estos modelos formales fueron propuestos por precursores como Alonzo
Church (cálculo Lambda), Kurt Gödel (funciones recursivas) y Alan Turing (máquina de
Turing). Se ha mostrado que estos modelos son equivalentes en el sentido de que pueden
simular los mismos algoritmos, aunque lo hagan de maneras diferentes. Entre los modelos de
cómputo más recientes se encuentran los lenguajes de programación, que también han
mostrado ser equivalentes a los modelos anteriores; esto es una fuerte evidencia de
la conjetura de Church-Turing, de que todo algoritmo habido y por haber se puede simular en
una máquina de Turing, o equivalentemente, usando funciones recursivas. En 2007 Nachum
Dershowitz y Yuri Gurevich publicaron una demostración de esta conjetura basándose en
cierta axiomatización de algoritmos.1
Uno de los primeros resultados de esta teoría fue la existencia de problemas imposibles de
resolver algorítmicamente, siendo el problema de la parada el más famoso de ellos. Para
estos problemas no existe ni existirá ningún algoritmo que los pueda resolver, no importando
la cantidad de tiempo o memoria se disponga en una computadora. Asimismo, con la llegada
de las computadoras modernas se constató que algunos problemas resolubles en teoría eran
imposibles en la práctica, puesto que dichas soluciones necesitaban cantidades irrealistas de
tiempo o memoria para poderse encontrar.
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.9 En 1673 Gottfried Leibniz creó una calculadora mecánica digital, llamada el 'Stepped
Reckoner'.10 Él puede ser considerado el primer computólogo y teórico de la información, entre
otras razones, porque fue el primero en documentar el sistema numérico binario. En
1820, Charles Xavier Thomas de Colmar lanzó la calculadora mecánica industrial11 cuando
lanzó su simplificado aritmómetro, que fue la primera máquina de calcular lo suficientemente
fuerte y lo suficientemente confiable para ser usada a diario en un entorno industrial. Charles
Babbage inició el diseño de la primera calculadora automática mecánica, su máquina
diferencial, en 1822, que finalmente le dio la idea de la primera calculadora mecánica
programable, su máquina analítica.12 Él comenzó a desarrollar esta máquina en 1834 y "en
menos de dos años que había esbozado muchas de las características más destacadas del
moderno equipo. Un paso fundamental fue la adopción de un sistema de tarjetas perforadas
derivado del telar de Jacquard"13 haciéndolo infinitamente programable.14 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 incluye el artículo, un algoritmo para calcular los números de Bernoulli,
que es considerado como el primer programa de ordenador.15 Alrededor de 1885, Herman
Hollerith inventó la máquina tabuladora, que usaba tarjetas perforadas para procesar
información estadística; finalmente, su compañía se convirtió en parte de IBM. En 1937, cien
años después del sueño imposible de Babbage, Howard Aiken convencidos por IBM, que
estaban manufacturando todo tipo de equipos de tarjetas perforadas y así como la calculadora
de negocio 16 para desarrollar su calculadora programable gigante, el ASCC/Harvard Mark I,
se basó en la máquina analítica de Babbage, que a su vez utiliza las tarjetas perforadas y una
unidad central de cálculo. Cuando se terminó de construir la máquina, algunas personas lo
aclamaron como "el sueño de Babbage hecho realidad".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.18 Cuando se hizo evidente que las computadoras no
solamente podrían utilizarse para realizar cálculos matemáticos, el campo de las ciencias de la
computación se amplió para estudiar cómputo en general. Las ciencias de la computación
empezaron a establecerse como una disciplina académica distinta de las demás en la década
de 1950 y principios de 1960.719 Entonces surgió el primer programa de grado universitario
mundo, el Cambridge Diploma in Computer Science, se inició en la Universidad de
Cambridge en el Cambridge Computer Lab (departamento de ciencias de la computación) en
1953. El primer programa de grado universitario en ciencias de la computación en los Estados
Unidos se formó en Universidad de Purdue en 1962.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.2122 Es la marca
IBM que a 2015 es muy conocida la que formó parte de la revolución de las ciencias de la
computación durante este tiempo. IBM (abreviación de International Business Machines) lanzó
el IBM 70423 y más tarde las computadoras de IBM 70924 que fueron ampliamente utilizadas
durante el período de exploración de este tipo de dispositivos. "Sin embargo, el trabajo con las
IBM [computadoras] fue frustrante ... si hubieras perdido tanto como una letra en una
instrucción, el programa chocaría, y usted tendría que empezar todo el proceso otra vez".21
Durante a finales de 1950, la disciplinas de las ciencias de la computación estaban en sus
etapas de desarrollo más primordiales, y tales cuestiones eran comunes.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.

Computacion s.m

  • 1.
    COMPUTACION la teoría dela computación es un conjunto de conocimientos racionales, sistematizados y funcionales que se centran en el estudio de la abstracción de los procesos que ocurren en la realidad con el fin de reproducirlos con ayuda de sistemas formales, es decir, a través de códigos de caracteres e instrucciones lógicas, reconocibles por el ser humano, con capacidad de ser modeladas en las limitaciones de dispositivos que procesan información y que efectúan cálculos como, por ejemplo, el ordenador. Para ello, se apoya en la teoría de autómatas, a fin de simular y estandarizar dichos procesos, así como para formalizar los problemas y darles solución Teoría de autómatas[editar] Artículo principal: Teoría de autómatas Esta teoría provee modelos matemáticos que formalizan el concepto de computadora o algoritmo de manera suficientemente simplificada y general para que se puedan analizar sus capacidades y limitaciones. Algunos de estos modelos juegan un papel central en varias aplicaciones de las ciencias de la computación, incluyendo procesamiento de texto, compiladores, diseño de hardware e inteligencia artificial. Existen muchos otros tipos de autómatas como las máquinas de acceso aleatorio, autómatas celulares, máquinas ábaco y las máquinas de estado abstracto; sin embargo en todos los casos se ha mostrado que estos modelos no son más generales que la máquina de Turing, pues la máquina de Turing tiene la capacidad de simular cada uno de estos autómatas. Esto da lugar a que se piense en la máquina de Turing como el modelo universal de computadora. Teoría de la computabilidad[editar] Artículo principal: Teoría de la computabilidad Véase también: Indecidibilidad Esta teoría explora los límites de la posibilidad de solucionar problemas mediante algoritmos. Gran parte de las ciencias computacionales están dedicadas a resolver problemas de forma algorítmica, de manera que el descubrimiento de problemas imposibles es una gran sorpresa. La teoría de la computabilidad es útil para no tratar de resolver algorítmicamente estos problemas, ahorrando así tiempo y esfuerzo. Los problemas se clasifican en esta teoría de acuerdo a su grado de imposibilidad:  Los computables son aquellos para los cuales sí existe un algoritmo que siempre los resuelve cuando hay una solución y además es capaz de distinguir los casos que no la tienen. También se les conoce como decidibles, resolubles o recursivos.  Los semicomputables son aquellos para los cuales hay un algoritmo que es capaz encontrar una solución si es que existe, pero ningún algoritmo que determine cuando la solución no existe (en cuyo caso el algoritmo para encontrar la solución entraría a un bucle infinito). El ejemplo clásico por excelencia es el problema de la parada. A estos problemas también se les conoce como listables, recursivamente enumerables o reconocibles, porque si se enlistan todos los casos posibles del problema, es posible reconocera aquellos que sí tienen solución.  Los incomputables son aquellos para los cuales no hay ningún algoritmo que los pueda resolver, no importando que tengan o no solución. El ejemplo clásico por excelencia es el problema de la implicación lógica, que consiste en determinar cuándo una proposición lógica es un teorema; para este problema no hay ningún algoritmo que en todos los casos pueda distinguir si una proposición o su negación es un teorema.
  • 2.
    Hay una versiónmás general de esta clasificación, donde los problemas incomputables se subdividen a su vez en problemas más difíciles que otros. La herramienta principal para lograr estas clasificaciones es el concepto de reducibilidad: Un problema se reduce al problema si bajo la suposición de que se sabe resolver el problema es posible resolver al problema ; esto se denota por , e informalmente significa que el problema no es más difícil de resolver que el problema . Por ejemplo, bajo la suposición de que una persona sabe sumar, es muy fácil enseñarle a multiplicar haciendo sumas repetidas, de manera que multiplicar se reduce a sumar. Teoría de la complejidad computacional[editar] Artículo principal: Complejidad computacional Véase también: Clase de complejidad Aun cuando un problema sea computable, puede que no sea posible resolverlo en la práctica si se requiere mucha memoria o tiempo de ejecución. La teoría de la complejidad computacional estudia las necesidades de memoria, tiempo y otros recursos computacionales para resolver problemas; de esta manera es posible explicar por qué unos problemas son más difíciles de resolver que otros. Uno de los mayores logros de esta rama es la clasificación de problemas, similar a la tabla periódica, de acuerdo a su dificultad. En esta clasificación los problemas se separan por clases de complejidad. Esta teoría tiene aplicación en casi todas las áreas de conocimiento donde se desee resolver un problema computacionalmente, porque los investigadores no solo desean utilizar un método para resolver un problema, sino utilizar el más rápido. La teoría de la complejidad computacional también tiene aplicaciones en áreas como la criptografía, donde se espera que descifrar un código secreto sea un problema muy difícil a menos que se tenga la contraseña, en cuyo caso el problema se vuelve fácil. Otras subramas[editar]  Modelos de cómputo Estudia abstracciones de hacer un cómputo. Aquí se incluyen los clásicos modelos de la teoría de autómatas además de otros modelos como funciones recursivas, cálculo lambda e inclusive lenguajes de programación.  Teoría algorítmica de la información Centra su atención en la complejidad para describir algorítmicamente una secuencia de datos (cadena); aquí la complejidad está medida por la longitud de su descripción más pequeña.  Especificación y verificación formal Busca metodologías para garantizar que un problema esté correctamente modelado y sistemas formales para validar la corrección de la solución algorítmica.  La Teoría del aprendizaje computacional busca algoritmos que hagan que las computadoras modifiquen sus comportamientos de manera autónoma con base en datos empíricos, y concretamente en ejemplos y contraejemplos. A este tipo de aprendizaje se le llama aprendizaje supervisado. De forma análoga a la teoría de la complejidad computacional, en esta teoría las funciones se clasifican por su grado de dificultad de ser aprendidas.  Teoría de tipos Busca la clasificación de enunciados de acuerdo a los tipos de valores que calculan utilizando herramientas de teoría de lenguajes formales.
  • 3.
    Historia[editar] Véanse también: EntscheidungsproblemyTesis de Church-Turing. La teoría de la computación comienza propiamente a principios del siglo XX, poco antes que las computadoras electrónicas fuesen inventadas. En esta época varios matemáticos se preguntaban si existía un método universal para resolver todos los problemas matemáticos. Para ello debían desarrollar la noción precisa de método para resolver problemas, es decir, la definición formal de algoritmo. Algunos de estos modelos formales fueron propuestos por precursores como Alonzo Church (cálculo Lambda), Kurt Gödel (funciones recursivas) y Alan Turing (máquina de Turing). Se ha mostrado que estos modelos son equivalentes en el sentido de que pueden simular los mismos algoritmos, aunque lo hagan de maneras diferentes. Entre los modelos de cómputo más recientes se encuentran los lenguajes de programación, que también han mostrado ser equivalentes a los modelos anteriores; esto es una fuerte evidencia de la conjetura de Church-Turing, de que todo algoritmo habido y por haber se puede simular en una máquina de Turing, o equivalentemente, usando funciones recursivas. En 2007 Nachum Dershowitz y Yuri Gurevich publicaron una demostración de esta conjetura basándose en cierta axiomatización de algoritmos.1 Uno de los primeros resultados de esta teoría fue la existencia de problemas imposibles de resolver algorítmicamente, siendo el problema de la parada el más famoso de ellos. Para estos problemas no existe ni existirá ningún algoritmo que los pueda resolver, no importando la cantidad de tiempo o memoria se disponga en una computadora. Asimismo, con la llegada de las computadoras modernas se constató que algunos problemas resolubles en teoría eran imposibles en la práctica, puesto que dichas soluciones necesitaban cantidades irrealistas de tiempo o memoria para poderse encontrar. 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.9 En 1673 Gottfried Leibniz creó una calculadora mecánica digital, llamada el 'Stepped Reckoner'.10 Él puede ser considerado el primer computólogo y teórico de la información, entre otras razones, porque fue el primero en documentar el sistema numérico binario. En 1820, Charles Xavier Thomas de Colmar lanzó la calculadora mecánica industrial11 cuando lanzó su simplificado aritmómetro, que fue la primera máquina de calcular lo suficientemente fuerte y lo suficientemente confiable para ser usada a diario en un entorno industrial. Charles Babbage inició el diseño de la primera calculadora automática mecánica, su máquina diferencial, en 1822, que finalmente le dio la idea de la primera calculadora mecánica programable, su máquina analítica.12 Él comenzó a desarrollar esta máquina en 1834 y "en menos de dos años que había esbozado muchas de las características más destacadas del moderno equipo. Un paso fundamental fue la adopción de un sistema de tarjetas perforadas derivado del telar de Jacquard"13 haciéndolo infinitamente programable.14 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 incluye el artículo, un algoritmo para calcular los números de Bernoulli,
  • 4.
    que es consideradocomo el primer programa de ordenador.15 Alrededor de 1885, Herman Hollerith inventó la máquina tabuladora, que usaba tarjetas perforadas para procesar información estadística; finalmente, su compañía se convirtió en parte de IBM. En 1937, cien años después del sueño imposible de Babbage, Howard Aiken convencidos por IBM, que estaban manufacturando todo tipo de equipos de tarjetas perforadas y así como la calculadora de negocio 16 para desarrollar su calculadora programable gigante, el ASCC/Harvard Mark I, se basó en la máquina analítica de Babbage, que a su vez utiliza las tarjetas perforadas y una unidad central de cálculo. Cuando se terminó de construir la máquina, algunas personas lo aclamaron como "el sueño de Babbage hecho realidad".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.18 Cuando se hizo evidente que las computadoras no solamente podrían utilizarse para realizar cálculos matemáticos, el campo de las ciencias de la computación se amplió para estudiar cómputo en general. Las ciencias de la computación empezaron a establecerse como una disciplina académica distinta de las demás en la década de 1950 y principios de 1960.719 Entonces surgió el primer programa de grado universitario mundo, el Cambridge Diploma in Computer Science, se inició en la Universidad de Cambridge en el Cambridge Computer Lab (departamento de ciencias de la computación) en 1953. El primer programa de grado universitario en ciencias de la computación en los Estados Unidos se formó en Universidad de Purdue en 1962.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.2122 Es la marca IBM que a 2015 es muy conocida la que formó parte de la revolución de las ciencias de la computación durante este tiempo. IBM (abreviación de International Business Machines) lanzó el IBM 70423 y más tarde las computadoras de IBM 70924 que fueron ampliamente utilizadas durante el período de exploración de este tipo de dispositivos. "Sin embargo, el trabajo con las IBM [computadoras] fue frustrante ... si hubieras perdido tanto como una letra en una instrucción, el programa chocaría, y usted tendría que empezar todo el proceso otra vez".21 Durante a finales de 1950, la disciplinas de las ciencias de la computación estaban en sus etapas de desarrollo más primordiales, y tales cuestiones eran comunes.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.