stringtranslate.com

historia del software

El software es un conjunto de instrucciones programadas almacenadas en la memoria de computadoras digitales con programa almacenado para su ejecución por el procesador. El software es un desarrollo reciente en la historia de la humanidad y es fundamental para la era de la información .

Los programas de Ada Lovelace para la máquina analítica de Charles Babbage en el siglo XIX son a menudo considerados los fundadores de la disciplina. Sin embargo, los esfuerzos del matemático quedaron sólo teóricos, ya que la tecnología de la época de Lovelace y Babbage resultó insuficiente para construir su computadora. A Alan Turing se le atribuye ser la primera persona en proponer una teoría para el software en 1935, lo que condujo a los dos campos académicos de la informática y la ingeniería de software .

La primera generación de software para las primeras computadoras digitales con programas almacenados a fines de la década de 1940 tenía sus instrucciones escritas directamente en código binario , generalmente escritas para computadoras centrales . Más tarde, el desarrollo de lenguajes de programación modernos junto con el avance de la computadora doméstica ampliaría enormemente el alcance y la amplitud del software disponible, comenzando con el lenguaje ensamblador y continuando con la programación funcional y los paradigmas de programación orientados a objetos .

Antes de las computadoras digitales con programa almacenado

Orígenes de la informática

La informática como concepto se remonta a la antigüedad, con dispositivos como el ábaco , el mecanismo de Antikythera , los astrolabios, los relojes astronómicos mecánicos y las calculadoras mecánicas. [1] El mecanismo de Antikythera es un ejemplo de un antiguo dispositivo astronómico mecánico altamente complejo. [2]

Sin embargo, estos dispositivos eran puro hardware y no tenían software: sus capacidades informáticas estaban directamente ligadas a su forma e ingeniería específicas.

El software requiere el concepto de un procesador de propósito general (lo que ahora se describe como una máquina de Turing ), así como una memoria de computadora en la que se puedan almacenar, iniciar y detener individualmente conjuntos reutilizables de rutinas y funciones matemáticas que comprenden programas, y sólo aparece recientemente. en la historia humana.

El primer algoritmo informático conocido fue escrito por Ada Lovelace en el siglo XIX para Analytical Engine , para traducir el trabajo de Luigi Menabrea sobre los números de Bernoulli para la instrucción de máquinas. [3] [3] Sin embargo, esto siguió siendo solo teórico: el menor estado de ingeniería en la vida de estos dos matemáticos resultó insuficiente [ cita necesaria ] para construir la máquina analítica.

La primera teoría moderna del software fue propuesta por Alan Turing en su ensayo de 1935 Números computables con una aplicación al Entscheidungsproblem (problema de decisión) . [4]

Esto finalmente condujo a la creación de campos académicos gemelos de ciencias de la computación e ingeniería de software , que estudian el software y su creación. La informática es más teórica (el ensayo de Turing es un ejemplo de informática), mientras que la ingeniería de software se centra en cuestiones más prácticas.

Sin embargo, antes de 1946, el software tal como lo entendemos ahora (programas almacenados en la memoria de computadoras digitales con programas almacenados  ) aún no existía. En cambio, los primeros dispositivos informáticos electrónicos fueron reconectados para "reprogramarlos". La ENIAC , una de las primeras computadoras electrónicas, fue programada en gran parte por mujeres que anteriormente habían trabajado como computadoras humanas . [5] [6] Los ingenieros daban a los programadores planos del cableado de ENIAC y esperaban que descubrieran cómo programar la máquina. [7] Las mujeres que trabajaron como programadoras prepararon el ENIAC para su primera revelación pública, cableando los paneles de conexión para las manifestaciones. [8] [9] [10] Kathleen Booth desarrolló el lenguaje ensamblador en 1950 para facilitar la programación de las computadoras en las que trabajaba en Birkbeck College . [11]

Grace Hopper y UNIVAC

Grace Hopper trabajó como una de las primeras programadoras del Harvard Mark I. [12] Más tarde creó un manual de 500 páginas para la computadora. [13] A Hopper a menudo se le atribuye falsamente haber acuñado los términos "error" y " depuración ", cuando encontró una polilla en el Mark II, causando un mal funcionamiento; [14] sin embargo, el término ya estaba en uso cuando encontró la polilla. [14] Hopper desarrolló el primer compilador y trasladó su idea de trabajar en las computadoras Mark a trabajar en UNIVAC en la década de 1950. [15] Hopper también desarrolló el lenguaje de programación FLOW-MATIC para programar el UNIVAC. [14] Frances E. Holberton , que también trabaja en UNIVAC, desarrolló un código [ se necesita aclaración ] , C-10, que permitía a los programadores usar entradas de teclado y creó el generador de clasificación y fusión en 1951. [16] [17] Adele Mildred Koss y Hopper también creó el precursor de un generador de informes . [dieciséis]

Primeros días del software informático (1948-1979)

En su manuscrito "Una teoría matemática de la comunicación", Claude Shannon (1916-2001) describió cómo se podría implementar la lógica binaria para programar una computadora. Posteriormente, los primeros programadores informáticos utilizaron código binario para indicar a las computadoras que realizaran diversas tareas. Sin embargo, el proceso fue muy arduo. Los programadores informáticos tuvieron que proporcionar largas cadenas de código binario para indicarle a la computadora qué tipo de datos debía almacenar. El código y los datos tenían que cargarse en las computadoras utilizando varios mecanismos tediosos, incluido accionar interruptores o perforar agujeros en posiciones predefinidas en tarjetas y cargar estas tarjetas perforadas en una computadora. Con estos métodos, si se comete un error, es posible que sea necesario volver a cargar todo el programa desde el principio.

La primera vez que una computadora con programa almacenado mantuvo un software en una memoria electrónica y lo ejecutó con éxito fue a las 11 de la mañana del 21 de junio de 1948, en la Universidad de Manchester, en la computadora Manchester Baby . Fue escrito por Tom Kilburn y calculó el factor más alto del número entero 2^18 = 262,144. Comenzando con un divisor de prueba grande, realizó la división de 262,144 mediante restas repetidas y luego verificó si el resto era cero. En caso contrario, disminuía el divisor de prueba en uno y repetía el proceso. Google lanzó un homenaje al Manchester Baby, celebrandolo como el "nacimiento del software".

FORTRAN fue desarrollado por un equipo dirigido por John Backus en IBM en la década de 1950. El primer compilador se lanzó en 1957. El lenguaje resultó tan popular para la informática científica y técnica que en 1963 todos los principales fabricantes habían implementado o anunciado FORTRAN para sus computadoras. [18] [19]

COBOL se concibió por primera vez cuando Mary K. Hawes convocó una reunión (que incluía a Grace Hopper ) en 1959 para discutir cómo crear un lenguaje informático para compartir entre empresas. [16] La innovación de Hopper con COBOL fue desarrollar una nueva forma simbólica de escribir programación. [13] Su programación se autodocumentaba. [20] Betty Holberton ayudó a editar el lenguaje que se envió a la Imprenta del Gobierno en 1960. [21] FORMAC fue desarrollado por Jean E. Sammet en la década de 1960. [21] Su libro, Lenguajes de programación: historia y fundamentos (1969), se convirtió en un texto influyente. [21] [22]

Misión Apolo

Margaret Hamilton junto a una pila de código que ella y su equipo escribieron para las computadoras de la Misión Apollo.

La misión Apolo a la Luna dependía de un software para programar las computadoras de los módulos de aterrizaje. [23] [24] Las computadoras fueron programadas con un lenguaje llamado "Basic" (sin relación con el lenguaje de programación BASIC desarrollado en Dartmouth aproximadamente al mismo tiempo). [25] El software también tenía un intérprete que estaba compuesto por una serie de rutinas y un ejecutivo (como un sistema operativo moderno ), que especificaba qué programas ejecutar y cuándo. [25] Ambos fueron diseñados por Hal Laning . [25] Margaret Hamilton , que anteriormente había estado involucrada en problemas de confiabilidad del software cuando trabajaba en el sistema de defensa aérea SAGE de EE. UU., también formó parte del equipo de software Apollo. [23] [26] Hamilton estaba a cargo del software de vuelo a bordo de las computadoras Apollo. [23] Hamilton consideró que las operaciones de software no eran sólo parte de la máquina, sino que también estaban estrechamente relacionadas con las personas que operaban el software. [25] Hamilton también acuñó el término " ingeniería de software " mientras trabajaba en la NASA. [27]

El "software" real para las computadoras de las misiones Apolo estaba formado por cables que pasaban por núcleos magnéticos. [28] Donde el cable pasaba por un núcleo magnético, eso representaba un "1" y donde el cable pasaba alrededor del núcleo, eso representaba un "0". [28] Cada núcleo almacenó 64 bits de información. [28] Hamilton y otros crearían el software perforando agujeros en tarjetas perforadas, que luego se procesarían en una computadora central Honeywell donde se podría simular el software. [23] Cuando el código era "sólido", se envió para ser tejido en los núcleos magnéticos de Raytheon , donde mujeres conocidas como "Ancianitas" trabajaban en los cables. [23] El programa en sí era "indestructible" y podía incluso resistir la caída de rayos, como le ocurrió al Apolo 12 . [28] Cablear las computadoras tomó varias semanas, lo que congeló el desarrollo de software durante ese tiempo. [29]

Mientras usaba los simuladores para probar la programación, Hamilton descubrió formas en que el código podía producir errores peligrosos cuando se cometían errores humanos al usarlo. [23] La NASA creía que los astronautas no cometerían errores debido a su entrenamiento. [30] A Hamilton no se le permitió programar código para evitar errores que provocarían un fallo del sistema, por lo que anotó el código en la documentación del programa. [23] Sus ideas de agregar código de verificación de errores fueron rechazadas por ser "excesivas". [23] Sin embargo, exactamente lo que Hamilton predijo que sucedería ocurrió en el vuelo Apolo 8 , cuando un error humano hizo que la computadora borrara todos los datos de navegación. [23]

Paquetes de software con hardware y sus cuestiones legales.

Posteriormente, los fabricantes de equipos originales (OEM), como Data General , Digital Equipment e IBM , vendieron el software a varios clientes junto con el hardware . Cuando un cliente compraba una minicomputadora , en ese momento la computadora más pequeña del mercado, la computadora no venía con el software preinstalado , sino que debía ser instalada por ingenieros empleados por el OEM. [ cita necesaria ]

Este paquete atrajo la atención de los reguladores antimonopolio estadounidenses, que demandaron a IBM por "vinculación" inadecuada en 1969, alegando que era una violación antimonopolio que los clientes que querían obtener su software también tuvieran que comprar o arrendar su hardware para poder hacerlo. Sin embargo, el Departamento de Justicia de Estados Unidos abandonó el caso, después de muchos años de desgaste, al concluir que "carecía de mérito". [31]

Data General también enfrentó problemas legales relacionados con la agrupación, aunque en este caso se debió a una demanda civil de un posible competidor. Cuando Data General presentó Data General Nova , una empresa llamada Digidyne quería utilizar su sistema operativo RDOS en su propio clon de hardware . Data General se negó a conceder la licencia de su software y reclamó sus "derechos de agrupación". La Corte Suprema de los EE. UU. sentó un precedente llamado Digidyne v. Data General en 1985 al permitir que se mantuviera la decisión de un tribunal de apelaciones del noveno circuito sobre el caso, y Data General finalmente se vio obligado a otorgar una licencia para el sistema operativo porque se dictaminó que restringir la licencia solo a DG El hardware era un acuerdo de vinculación ilegal . [32] Aunque el Tribunal de Distrito señaló que "ningún jurado razonable pudo concluir que dentro de este mercado grande y dinámico con competidores mucho mayores", Data General "tenía el poder de mercado para restringir el comercio a través de un acuerdo de vinculación ilegal", la vinculación del sistema operativo al hardware se consideró ilegal per se en apelación. [33]

En 2008, Apple Inc. demandó a Psystar Corporation por distribuir clones no autorizados de Macintosh con OS X preinstalado y contrademandó. Uno de los argumentos de la contrademanda, citando el caso Data General, fue que Apple domina el mercado de ordenadores compatibles con OS X al vincular ilegalmente el sistema operativo a los ordenadores Apple. El juez del Tribunal de Distrito William Alsup rechazó este argumento, diciendo, como el Tribunal de Distrito había dictaminado en el caso Data General más de 20 años antes, que el mercado relevante no era simplemente un sistema operativo (Mac OS) sino todos los sistemas operativos de PC, incluido Mac OS. , y señalando que Mac OS no disfrutaba de una posición dominante en ese mercado más amplio. La sentencia de Alsup también señaló que el sorprendente precedente de Data General de que la vinculación de productos con derechos de autor era siempre ilegal había sido "implícitamente anulada" por el veredicto en el caso Illinois Tool Works Inc. contra Independent Ink, Inc. [34]

Software empaquetado (finales de la década de 1960 hasta el presente)

A finales del decenio de 1960 comenzó a desarrollarse una industria que producía software empaquetado de forma independiente (software que no se producía "únicamente" para un cliente individual ni "se incluía" con hardware informático). [35]

Unix (década de 1970-presente)

Unix fue uno de los primeros sistemas operativos que se hizo popular y muy influyente, y todavía existe hoy. La variante más popular de Unix en la actualidad es macOS (anteriormente llamado OS X y Mac OS X), mientras que Linux está estrechamente relacionado con Unix.

El auge de las microcomputadoras

En enero de 1975, Micro Instrumentation and Telemetry Systems comenzó a vender su kit de microcomputadora Altair 8800 por correo. Microsoft lanzó su primer producto Altair BASIC ese mismo año y los aficionados comenzaron a desarrollar programas para ejecutar estos kits. Tiny BASIC se publicó como un programa mecanografiado en el Dr. Dobb's Journal y se desarrolló en colaboración.

En 1976, Peter R. Jennings, por ejemplo, creó su programa Microchess para el kit KIM-1 de MOS Technology , pero como no venía con una unidad de cinta, enviaba el código fuente en un pequeño folleto a sus clientes de pedidos por correo. , y tendrían que escribir todo el programa a mano. En 1978, Kathe y Dan Spracklen publicaron la fuente de su programa Sargon (ajedrez) en una revista de informática. Más tarde, Jennings pasó a vender cintas de papel y, finalmente, casetes compactos con el programa.

Era un proceso lento e incómodo escribir el código fuente de una revista de informática, y un solo carácter mal escrito (o peor aún, mal impreso) podía hacer que el programa fuera inoperable, pero la gente aun así lo hacía. ( La tecnología de reconocimiento óptico de caracteres , que en teoría podría haberse utilizado para escanear los listados en lugar de transcribirlos a mano, aún no se utilizaba ampliamente).

Incluso con la proliferación de cartuchos y cintas de casete en los años 1980 para la distribución de software comercial, los programas gratuitos (como programas educativos sencillos con el fin de enseñar técnicas de programación) todavía se imprimían con frecuencia, porque era más barato que fabricar y adjuntar cintas de casete a los archivos. revistas.

Sin embargo, finalmente una combinación de cuatro factores puso fin a esta práctica de imprimir listas completas de códigos fuente de programas completos en revistas de informática:

Muy rápidamente, el software comercial empezó a ser pirateado y los productores de software comercial estaban muy descontentos con esto. Bill Gates , cofundador de Microsoft , fue uno de los primeros en moralizar contra la piratería de software con su famosa Carta abierta a los aficionados en 1976. [36]

Década de 1980 hasta el presente

Antes de la microcomputadora, un programa de software exitoso normalmente vendía hasta 1.000 unidades a entre 50.000 y 60.000 dólares cada una. A mediados de la década de 1980, el software de computadora personal vendía miles de copias por entre 50 y 700 dólares cada una. Empresas como Microsoft, MicroPro y Lotus Development tenían decenas de millones de dólares en ventas anuales. [37] De manera similar, dominaron el mercado europeo con versiones localizadas de productos que ya tenían éxito. [38]

Un momento crucial en la historia de la informática fue la publicación en la década de 1980 de las especificaciones para la computadora personal IBM publicadas por el empleado de IBM Philip Don Estridge , que rápidamente llevaron al dominio de la PC en los mercados mundiales de computadoras de escritorio y más tarde de portátiles, un dominio que continúa. para este día. Microsoft, al negociar con éxito con IBM para desarrollar el primer sistema operativo para PC ( MS-DOS ), se benefició enormemente del éxito de la PC durante las décadas siguientes, a través del éxito de MS-DOS y su complemento-sucesor, Microsoft Windows . Ganar la negociación fue un momento crucial en la historia de Microsoft.

Software gratuito y de código abierto

Desarrollos recientes

Tiendas de aplicaciones

Las aplicaciones para dispositivos móviles (teléfonos móviles y tabletas) se han denominado "apps" en los últimos años. Apple optó por canalizar las ventas de aplicaciones para iPhone y iPad a través de su App Store y, por lo tanto, examinar ambas aplicaciones y obtener una parte de cada aplicación paga vendida. Apple no permite aplicaciones que puedan usarse para eludir su tienda de aplicaciones (por ejemplo, máquinas virtuales como las máquinas virtuales Java o Flash).

La plataforma Android , por el contrario, tiene múltiples tiendas de aplicaciones disponibles y los usuarios generalmente pueden seleccionar cuál usar (aunque Google Play requiere un dispositivo compatible o rooteado).

Este movimiento se replicó para sistemas operativos de escritorio con el software GNOME (para Linux), Mac App Store (para macOS) y Windows Store (para Windows). Todas estas plataformas siguen siendo, como siempre, no exclusivas: permiten instalar aplicaciones desde fuera de la tienda de aplicaciones y, de hecho, desde otras tiendas de aplicaciones.

El explosivo aumento de la popularidad de las aplicaciones, especialmente para iPhone pero también para Android, provocó una especie de " fiebre del oro ", en la que algunos programadores esperanzados dedicaron una cantidad significativa de tiempo a crear aplicaciones con la esperanza de hacerse ricos. Como en las verdaderas fiebres del oro, no todos estos empresarios esperanzados tuvieron éxito.

Formalización del desarrollo de software.

El desarrollo de planes de estudio en informática ha dado como resultado mejoras en el desarrollo de software. Los componentes de estos planes de estudio incluyen:

  1. Programación estructurada y orientada a objetos [39]
  2. Estructuras de datos [40]
  3. Análisis de algoritmos [41]
  4. Lenguajes formales [42] y construcción de compiladores [43]
  5. Algoritmos de gráficos por computadora [44]
  6. Ordenar y buscar [45]
  7. Métodos Numéricos , [46] Optimización y Estadísticas [47]
  8. Inteligencia artificial [48] y aprendizaje automático [49]

Cómo el software ha afectado al hardware

A medida que más y más programas entran en el ámbito del firmware, y el hardware en sí se vuelve más pequeño, más barato y más rápido como lo predice la ley de Moore , un número cada vez mayor de tipos de funcionalidades de computación realizadas primero por software se han unido a las filas del hardware, como por ejemplo con unidades de procesamiento de gráficos . (Sin embargo, el cambio a veces ha ido en sentido contrario por razones de costo u otras razones, como por ejemplo con los softmodems y el microcódigo ).

Hoy en día, la mayoría de las empresas de hardware tienen más programadores de software en nómina que diseñadores de hardware [ cita necesaria ] , ya que las herramientas de software han automatizado muchas tareas de los ingenieros de placas de circuito impreso (PCB).

Cronología de software y lenguajes de programación

Las siguientes tablas incluyen el desarrollo año tras año de muchos aspectos diferentes del software informático, entre ellos:

  1. Idiomas de alto nivel [50] [51]
  2. Sistemas operativos [52]
  3. Software y aplicaciones de red [53]
  4. Hardware, algoritmos y aplicaciones de gráficos por computadora [54] [55]
  5. Hojas de cálculo
  6. Procesamiento de textos
  7. Diseño asistido por ordenador [56]

1971-1974

1975-1978

1979-1982

1983-1986

1987-1990

1991-1994

1995-1998

1999-2002

2003-2006

2007-2010

2011-2014

Ver también

Referencias

  1. ^ Ancient Discoveries, Episodio 11: Ancient Robots, History Channel , archivado desde el original el 1 de marzo de 2014 , consultado el 6 de septiembre de 2008
  2. ^ Libre, Tony (2009). "Decodificando una computadora antigua: la tecnología griega rastreó los cielos". Científico americano . 301 (6): 76–83. Código Bib : 2009SciAm.301f..76F. doi : 10.1038/scientificamerican1209-76. PMID  20058643 . Consultado el 15 de octubre de 2022 .
  3. ^ ab Evans 2018, pag. 21.
  4. ^ Hally, Mike (2005). Cerebros electrónicos/Historias de los albores de la era de las computadoras . Londres: British Broadcasting Corporation y Granta Books. pag. 79.ISBN _ 1-86207-663-4.
  5. ^ Evans 2018, pag. 39.
  6. ^ Luz 1999, pag. 469.
  7. ^ Luz 1999, pag. 470.
  8. ^ Luz 1999, pag. 472.
  9. ^ Luz 1999, pag. 473.
  10. ^ Evans 2018, pag. 51.
  11. ^ Connolly, Cornelia; Salón, Tony; Lenaghan, Jim (10 de enero de 2018). "Las mujeres que abrieron el camino en la programación informática". RTE.es decir . Consultado el 25 de noviembre de 2018 .
  12. ^ Smith 2013, pag. 6.
  13. ^ ab Smith 2013, pág. 7.
  14. ^ abc Gürer 1995, pag. 176.
  15. ^ Ceruzzi 1998, pag. 84-85.
  16. ^ abc Gürer 1995, pag. 177.
  17. ^ "Muere Frances Holberton, pionera en lenguajes informáticos". El diario del correo . 12 de diciembre de 2001 . Consultado el 24 de noviembre de 2018 a través de Newspapers.com.
  18. ^ Jean E. Sammet (1969). Lenguajes de programación: historia y fundamentos , Prentice Hall, Englewood Cliffs, Nueva Jersey.
  19. ^ RW Bemer (1969). Una historia político-social de Algol , Revisión anual en programación automática, págs. 151-237. Prensa de Pérgamo, Oxford.
  20. ^ Ceruzzi 1998, pag. 92.
  21. ^ abc Gürer 1995, pag. 179.
  22. ^ "Autoridad informática para hablar aquí". Los tiempos . 9 de abril de 1972 . Consultado el 13 de octubre de 2018 a través de Newspapers.com.
  23. ^ abcdefghi Harvey IV, Harry Gould (13 de octubre de 2015). "Su código llevó a los humanos a la Luna e inventó el software". CABLEADO . Consultado el 25 de noviembre de 2018 .
  24. ^ "Las líneas de código que lo cambiaron todo; el Apolo 11, el JPEG, el primer anuncio emergente y otros 33 bits de software que han transformado nuestro mundo". Pizarra . 14 de octubre de 2019 . Consultado el 17 de octubre de 2019 .
  25. ^ abcd Mindell 2008, pag. 149.
  26. ^ "Margarita Hamilton". Museo de Historia de la Computación . Consultado el 25 de noviembre de 2018 .
  27. ^ "Conozca a Margaret Hamilton, la científica que nos dio la" ingeniería de software"". Revista de software IEEE | Sociedad de Computación IEEE . 2018-06-08 . Consultado el 25 de noviembre de 2018 .
  28. ^ abcd Mindell 2008, pag. 154.
  29. ^ Mindell 2008, pag. 157.
  30. ^ Mindell 2008, pag. 160.
  31. ^ G. David Garson (enero de 2006). Tecnología de la información pública y gobernanza electrónica: gestión del estado virtual. Aprendizaje de Jones y Bartlett. págs.229–. ISBN 978-0-7637-3468-8.
  32. ^ Gary Myers (noviembre de 1985). "Acuerdos vinculantes y la industria informática: Digidyne Corp. frente a Data General". Revista de derecho de Duke . 1985 (5): 1027–1056. doi :10.2307/1372482. JSTOR  1372482.
  33. ^ El juez WHITE, al que se suma el juez BLACKMUN, en desacuerdo.
  34. ^ "Copia archivada" (PDF) . Archivado desde el original (PDF) el 1 de enero de 2017 . Consultado el 31 de diciembre de 2016 .{{cite web}}: CS1 maint: archived copy as title (link)
  35. ^ Ensmenger, Nathan (2010). "Los chicos de la informática se hacen cargo" . pag. 55.ISBN _ 978-0-262-05093-7.
  36. ^ Brad Lockwood (13 de octubre de 2008). Bill Gates: Perfil de un emprendedor digital: edición súper grande de lectura fácil de 18 puntos. LeaCómoQuieres.com. págs.25–. ISBN 978-1-4270-9149-9.
  37. ^ Caruso, Denise (2 de abril de 1984). "Boomerang de estrategias de empresa". InfoMundo . págs. 80–83 . Consultado el 10 de febrero de 2015 .
  38. ^ Schrage, Michael (17 de febrero de 1985). "IBM gana dominio en el mercado informático europeo". El Correo de Washington . ISSN  0190-8286 . Consultado el 29 de agosto de 2018 .
  39. ^ Booch, Grady (1997). Análisis y Diseño Orientado a Objetos con Aplicaciones . Addison-Wesley.
  40. ^ Peter latón. (2008) Estructuras de datos avanzadas , Cambridge University Press
  41. ^ Cormen, Thomas H .; Leiserson, Charles E .; Rivest, Ronald L. y Stein, Clifford . (2001) Introducción a los algoritmos , MIT Press y McGraw-Hill.
  42. ^ Hopcroft, John E. y Jeffrey D. Ullman , (1979) Introducción a la teoría, los lenguajes y la computación de los autómatas
  43. ^ Aho, Alfred V. , Sethi, Ravi y Ullman, Jeffrey D. (1988). Compiladores: principios, técnicas y herramientas . Addison-Wesley.
  44. ^ Shirley, Pedro . (2009) Fundamentos de gráficos por computadora  - 3.a edición
  45. ^ Knuth, Donald . (1998) El arte de la programación informática : Volumen 3: Clasificación y búsqueda
  46. ^ Prensa, William H. , Saul A. Teukolsky , William T. Vetterling , Brian P. Flannery . (2007) Recetas numéricas, tercera edición: El arte de la informática científica
  47. ^ Barón, Michael. (2006) Probabilidad y estadística para informáticos.
  48. ^ Russell, Stuart J. y Peter Norvig (2009) Inteligencia artificial: un enfoque moderno (tercera edición)
  49. ^ Mitchell, Tom . (1997) Aprendizaje automático .
  50. ^ Aaby, Anthony (2004). Introducción a los lenguajes de programación .
  51. ^ Wexelblat, Richard L. Historia de los lenguajes de programación
  52. ^ Puestos (2005). Sistemas operativos, componentes internos y principios de diseño . pearson
  53. ^ Kurose, James; Ross, Keith (2005). Redes de computadoras: un enfoque de arriba hacia abajo . Pearson.
  54. ^ Wayne Carlson (2003) Una historia crítica de la animación y los gráficos por computadora
  55. ^ Ferguson, R. Stuart. (2013) Algoritmos prácticos para gráficos por computadora en 3D
  56. ^ Narayan, K. Lalit (2008). Diseño y fabricación asistidos por ordenador . Prentice Hall

Fuentes

enlaces externos