GRANDES PERSONAJES EN LA HISTORIA DE LA INFORMÁTICA (PARTE I) El ábaco El ábaco es un dispositivo que sirve para efectuar operaciones aritméticas sencillas (sumas, restas y multiplicaciones). Consiste en un cuadro de madera con barras paralelas por las que corren bolas movibles, útil también para enseñar estos cálculos simples. Su origen se remonta a la antigua Mesopotamia, más de 2000 años antes de nuestra era. Charles Babbage (finales siglo XVIII) Charles Babbage FRS (Teignmouth, Devonshire, Gran Bretaña, 26 de diciembre de 1791 - Londres, 18 de octubre de 1871) fue un matemático británico y científico de la computación. Charles Babbage se licenció en la Universidad de Cambridge en 1814. Poco después, en 1815, fundó con J. Herschel la Analytic Society con el propósito de renovar de la enseñanza de las matemáticas en Inglaterra. En 1816 fue elegido miembro de la Royal Society y en 1828 ingresó en su universidad como profesor de matemáticas. Aunque había destacado en el área de la teoría de funciones y análisis algebraico, Charles Babbage se volcó en el intento por conseguir una máquina capaz de realizar con precisión tablas matemáticas. En 1833 completó su "máquina diferencial", capaz de calcular los logaritmos e imprimirlos de 1 a 108.000 con notable precisión, y formuló los fundamentos teóricos de cualquier autómata de cálculo. Por entonces Babbage ya conocía los sistemas decimales de conteo, y estaba familiarizado con la descomposición de complejas operaciones matemáticas en secuencias sencillas. Después de esto, Babbage se volcó en el proyecto de diseñar una "máquina analítica" que fuese capaz de procesar cualquier secuencia de instrucciones aritméticas. La idea era construir una máquina que fuese programable para hacer cualquier tipo de cálculo, no sólo los referentes al cálculo de tablas logarítmicas o funciones polinómicas. La máquina analítica trabajaba con una aritmética de coma fija en base 10 y poseía una memoria capaz de almacenar 1.000 números de 50 dígitos cada uno y una unidad aritmética estaría encargada de realizar las operaciones aritméticas. Para esta realización contó con fondos del gobierno inglés y con la colaboración de la que está considerada como la primera programadora de la historia, Ada Lovelace, hija del poeta Lord Byron. 1 Aunque no consiguió su propósito, Charles Babbage sentó los principios básicos de las computadoras modernas, como el concepto de programa o instrucciones básicas (que se introducen en la máquina de manera independiente de los datos), el uso de la memoria para retener resultados y la unidad aritmética. La máquina de Babbage, construida exclusivamente con piezas mecánicas y multitud de ruedas dentadas, utilizaba las tarjetas perforadas para la introducción de datos y programas, e imprimía en papel los resultados con técnicas muy similares a las que se emplearon hasta mediados de los años 70. Aunque la máquina analítica ha pasado a la historia como el prototipo del ordenador moderno, nunca se construyó un modelo a escala real. Pero, aun si se hubiera construido, la máquina analítica habría sido movida por una máquina de vapor y, debido a sus componentes totalmente mecánicos, su velocidad de cálculo no hubiera sido muy grande. En compañía de Ada Lovelace, que empleó mucho de su tiempo en la publicación de las ideas de su maestro, Babbage dedicó sus últimos años y recursos a una máquina infalible que fuese capaz de predecir los ganadores de las carreras de caballos. En honor de Lady Ada Lovelace, el Departamento de Defensa de los Estados Unidos denominó ADA a un lenguaje de programación de computadoras de alto nivel. A finales del siglo XIX, el ingeniero estadounidense Herman Hollerith utilizó una tecnología nueva, la electricidad, cuando sometió a consideración del gobierno de Estados Unidos un proyecto para construir una máquina que fue finalmente utilizada para computar los datos del censo de 1890. Hollerith fundó a continuación la compañía que más tarde se convertiría en IBM. 1- ¿Cuáles son las diferencias entre la máquinas diferencial y analítica de Babbage? 2- Investiga sobre la vida de Ada Lovelace y sus aportaciones a la informática. ALAN TURING Alan Turing nació en el 23 de Junio de 1912 en Londres (Inglaterra), y desde edades muy tempranas demostró una gran capacidad intelectual (aprendió a leer a muy pronta edad de forma autodidacta en solo tres semanas), y durante su infancia demostró un gran interés por los rompecabezas y los enigmas matemáticos. Matemático, es uno de los pioneros que podría ser presentado como precursor de la informática moderna, y es uno de los más influyentes en la computación. Turing definió claramente el concepto de algoritmo. Así mismo sus aportaciones a la informática incluyen la creación de la la máquina de turing y el análisis de si las computadoras piensan, para lo cual desarrolló la teoría de test de turing: 2 El test de Turing Este aporte del matemático británico le convierte en precursor de la inteligencia artificial, gracias a una idea para poder distinguir si una máquina es o no inteligente. El test de Turing es una prueba a ciegas, en la que participan de manera oculta un ser humano y una máquina. Tanto una como otro tratan de convencer a un examinador de que ellos son los humanos. Si, tras un número significativo de preguntas, el examinador no puede averiguar cuál de los dos es el ser humano, entonces nos encontraríamos frente a una máquina pensante, es decir, frente a inteligencia artificial. La máquina de Turing Alan Turing diseñó un modelo de máquina en el cual, mediante la ya tradicional entrada de información con 0 y 1, se podría realizar cualquier operación. Es una modelización muy sencilla, pero lo expertos están de acuerdo en que esta concepción permite realizar cualquiera de las operaciones que realiza un moderno computador. Lo más curioso es que la máquina de Turing no es una máquina en sí, sino una forma de solventar los problemas matemáticos que abrió el camino para los actuales ordenadores. Alan Turing introdujo el concepto de máquina de Turing en el trabajo On computable numbers, with an application to the Entscheidungsproblem, publicado por la Sociedad Matemática de Londres en 1936, en el que se estudiaba la cuestión planteada por David Hilbert sobre si las matemáticas son decidibles, es decir, si hay un método definido que pueda aplicarse a cualquier sentencia matemática y que nos diga si esa sentencia es cierta o no. Turing ideó un modelo formal de computador, la máquina de Turing, y demostró que existían problemas que una máquina no podía resolver. Con este aparato extremadamente sencillo es posible realizar cualquier cómputo que un computador digital sea capaz de realizar. Mediante este modelo teórico y el análisis de la complejidad de los algoritmos, fue posible la categorización de problemas computacionales de acuerdo a su comportamiento, apareciendo así, el conjunto de problemas denominados P y NP, cuyas soluciones pueden encontrarse en tiempo polinómico por máquinas de Turing deterministas y no deterministas, respectivamente. Precisamente, la tesis de Church-Turing formulada por Alan Turing y Alonzo Church, de forma independiente a mediados del siglo XX caracteriza la noción informal de computabilidad con la computación mediante una máquina de Turing. La idea subyacente es el concepto de que una máquina de Turing puede verse como un autómata ejecutando un procedimiento efectivo definido formalmente, donde el espacio de memoria de trabajo es ilimitado, pero en un momento determinado sólo una parte finita es accesible. Algunas definiciones importantes: Algoritmo: Conjunto de reglas para resolver un problema 3 Algoritmos deterministas: Para los mismos datos de entrada se producen los mismos datos de salida. Algoritmos no deterministas: Para los mismos datos de entrada pueden producirse diferentes de salida. Algoritmia: Ciencia que estudia técnicas para construir algoritmos eficientes y técnicas para medir la eficacia de los algoritmos 3.- Define el significado de algoritmo y pon algún ejemplo de algoritmo conocido. 4.- ¿Cuál es la diferencia entre algoritmo y programa? 5.- ¿Existen programas que podrían pasar el test de Turing en la actualidad? Cleverbot. JOHN VON NEUMANN (1903 Budapest- 1957 USA) Fue un matemático que realizó aportes fundamentales a la física cuántica, análisis funcional, teoría de conjuntos, ciencias de la computación, economía, análisis numérico, cibernética, hidrodinámica, estadística. Elaboro también una forma tosca de generar números utilizando el método del centro del cuadrado. Así mismo contribuyo a la informática como el teorema de minimax para incluir juegos que involucran información perfecta y juegos de más de dos jugadores, fue el primero en utilizar el método de prueba en teoría de juegos, conocido como regresiva. Virtualmente cada computador personal, microcomputador, minicomputador y supercomputador es máquina de von Neumann (se refiere a las maquinas autorreplicativas). También creo el campo de los autómatas celulares. Al ser nacionalizado en EE.UU. se interesó en el descubrimiento de las bombas utilizadas en la segunda guerra mundial. Von Neumann fue pionero en la ciencia de los ordenadores, creó la arquitectura de los computadores actuales, propuso la adopción del bit como medida de la memoria de los ordenadores, y resolvió el problema de la obtención de respuestas fiables con componentes no fiables (bit de paridad). Participó en el diseño del que se considera primero ordenador, el ENIAC (que se construyó para calcular la trayectoria de los misiles), para hacer modificaciones al programa se tenía que cambiar las conexiones de las válvulas. Más tarde propuso separar el hardware del software y se creó el EDVAC. Neumann fue tan importante y clave para el desarrollo de la computadora digital que a la mayoría de aquellas máquinas, se las conoce como procesadores von Neumann. La arquitectura de von Neumann es una familia de arquitecturas de computadoras que utilizan el mismo dispositivo de almacenamiento tanto para las instrucciones como para los datos (a diferencia de la arquitectura Harvard). La mayoría de las computadoras modernas están basadas en esta arquitectura, aunque pueden incluir otros dispositivos adicionales (por ejemplo, para gestionar las interrupciones de dispositivos externos como ratón, teclado, etcétera). 4 6.- ¿Cuáles son las características principales de la arquitectura de von Neumann? Hermann Hollerith (1860 - Washington, 1929) (Herman o Hermann Hollerith; Buffalo, 1860 - Washington, 1929) Estadístico estadounidense. Inventó las máquinas estadísticas de tarjetas o fichas perforadas, que alcanzaron un notable éxito en los trabajos de cómputo y clasificación de grandes volúmenes de información. Tras licenciarse en 1879 por la Universidad de Columbia, inició su actividad profesional en la Oficina Nacional del Censo. En aquella época el censo estadounidense se realizaba cada diez años, y el cúmulo de datos recogido era tal que, al iniciarse un nuevo censo, todavía no habían llegado a procesarse todos los datos del censo anterior. Herman Hollerith ideó una cinta de papel en la que los datos se señalaban practicando un agujero; los agujeros de la cinta podían ser luego leídos por un dispositivo electromecánico, lo que permitía acelerar sensiblemente el procesamiento de los datos. A lo largo de la década de 1880, Hollerith probó con éxito su invento en diversas instituciones públicas y se aplicó a perfeccionarlo; la principal mejora fue sustituir la cinta de papel por una serie de tarjetas perforadas, sistema que patentó en 1889. Ese mismo año, Hollerith sometió a la consideración del gobierno de los Estados Unidos un proyecto para construir una máquina estadística de fichas perforadas que fue finalmente utilizada para computar los datos del censo de 1890. La máquina tabuladora de Hollerith fue capaz de procesar los datos de los 60 millones de ciudadanos estadounidenses en menos de tres años. Hollerith continuó introduciendo mejoras y diseñando nuevas máquinas, y en 1896 fundó la Tabulating Machine Company, empresa dedicada a la fabricación y comercialización de máquinas procesadoras de datos. Esta empresa pasó a llamarse en 1924 International Business Machines (IBM), y se convertiría tras la Segunda Guerra Mundial en una de las compañías punteras del sector informático George Boole 5 George Boole (2 de noviembre de 1815 - 8 de diciembre de 1864) fue un matemático y lógico británico. Como inventor del álgebra de Boole, que marca los fundamentos de la aritmética computacional moderna, Boole es considerado como uno de los fundadores del campo de las Ciencias de la Computación. En 1854 publicó "An Investigation of the Laws of Thought" en el que desarrollaba un sistema de reglas que le permitían expresar, manipular y simplificar problemas lógicos y filosóficos cuyos argumentos admiten dos estados (verdadero o falso) por procedimientos matemáticos. Se podría decir que es el padre de las operaciones lógicas y gracias a su álgebra hoy en día es posible manipular operaciones lógicas. Comenzó a estudiar álgebra y Aplicación de métodos algebraicos para la solución de ecuaciones diferenciales fue publicada por Boole en el Transaction of the Royal Society y por este trabajo recibió la medalla de la Real Sociedad. En el 1854 publicó Las leyes del pensamiento sobre las cuales son basadas las teorías matemáticas de Lógica y Probabilidad. El trabajo de Boole llegó a ser un paso fundamental en la revolución de los computadores, cuando Claude Shannon en 1938, demostró como las operaciones booleanas elementales, se podían representar mediante circuitos conmutadores eléctricos, y como la combinación de estos podía representar operaciones aritméticas y lógicas complejas. Shannon demostró así mismo que el álgebra de Boole se podía utilizar para simplificar circuitos conmutadores 7- ¿Qué es el sistema binario y cómo codificarías un número en base 10 en binario (por ejemplo el 15)? 8.- ¿Por qué los computadores utilizan el sistema binario? Linus Torvalds y Linux La primera versión de Linux fue creada por un estudiante finés llamado Linus Torvalds. Linux se matriculó en la Universidad de Helsinki en 1988 donde estudió Informática. Después de comprarse un PC, concretamente un 386, empezó a usar Minix, un sistema operativo creado por Andrew Tannenbaum para fines educativos. Linus no estaba demasiado contento con este sistema. Se lamentaba de la inestabilidad del emulador de terminal, que utilizaba para conectarse a los ordenadores de la universidad. Linus decidió hacer él mismo el programa emulador de terminal, independiente de Minix. Éstos fueron los primeros pasos que se dieron en la creación de Linux. Linus terminó pronto su programa de emulación de terminal y pensó que estaría bien crear otros programas, por ejemplo para transferir ficheros de un sitio a otro. En agosto de 1991, Linus mandó un correo electrónico, que ya es histórico, a USENET (una red de discusión parecida a los foros actuales), diciendo que estaba trabajando en este proyecto. ¿QUÉ ES UNA DISTRIBUCIÓN DE LINUX? 6 Una distribución de Linux es el sistema operativo propiamente dicho, lo que se suele denominar el núcleo (kernel en inglés) junto con un programa de instalación y un conjunto de aplicaciones, normalmente de propósito general. Distribución = Núcleo de Linux + Programa de instalación + Aplicaciones 9.- Nombra 4 distribuciones de Linux e investiga cuáles son sus principales características y diferencias. 10.- ¿Qué dijo exactamente Linus en el foro donde publicaba que trabajaba en un nuevo sistema operativo? 11- Investiga quién fue Andrew Tannenbaum y si realizó alguna aportación a la informática. 12.- ¿Cuáles son las diferencias entre Linux y Windows? 13.- Elabora una tabla como la siguiente que plasme los aspectos más relevantes de cada personaje estudiado: Biografía Aportaciones informática 7