1. • Charles Babbage (1791-1871)
1.1. Matemático Inglés
1.2. Creó una máquina de Diferencias en 1822
1.3. Usó tecnología para relojes
1.4. Para resolver ecuaciones polinomiales
1.5. Nunca se terminó
1.6. • Datos curiosos Charles Babbage
1.6.1. – Prolífico inventor
1.6.2. – Aficionado a lo sobrenatural
1.6.3. -Era miembro activo de la Astronomical Society
1.6.4. – Odiaba a los músicos callejeros (lo interrumpían, siempre los corria de la calle de su casa)
1.6.5. – Fue candidato al Parlamento Británico en dos ocasiones (en ambas perdió)
1.6.6. – Se expuso en una ocasión a una temperatura de 130° C para ver lo que se sentía ser horneado
1.7. • Máquina Analítica
1.7.1. Babbage (1933) diseñó la máquina analítica
1.7.2. Máquina programable de propósito general
1.7.3. Vapor como fuente de energía
1.7.4. Diseñada para almacenar 1000 números con 50 decimales cada uno. Las instrucciones almacenadas en tarjetas perforadas
1.7.5. Tipos de dificultades para terminar esta obra: razones de índole politíca; falta de financiación; limitaciones tecnológicas en aquella época;
1.8. Considerado el padre de las computadoras
1.8.1. Porque diseñó y parcialmente implementó una máquina de calcular, de diferencias mecánicas para calcular tablas de números. Aparte de la máquina analítica, para ejecutar programas de tabulación o computación pero que por desgracia, nunca la construyó,
1.9. Video relacionado a este personaje
2. ADA Condesa de Lovelace (1815-1852)
2.1. Ayudante de Babbage
2.2. Diseñó un lenguaje para la máquina analítica
2.3. Es considerada la primera programadora de la historia
2.4. Se creó el lenguaje de programación “Ada” en honor a ella.
2.5. Aportó a la informática conceptos como «bucle» y «subrutina»
2.6. Sus aportaciones no fueron reconocidas hasta mediados del siglo XX
2.7. Video relacionado a la vida y obra de este personaje
3. • Konrad Zuse (1910-1995)
3.1. Ingeniero Alemán
3.2. Diseñó un lenguaje de programación de alto nivel, el Plankalkül, supuestamente en 1945, aunque fue una contribución teórica, pues el lenguaje no se implementó en su vida y no tuvo ninguna influencia directa en los primeros lenguajes desarrollados.
3.3. Su logro más destacado fue terminar la primera computadora controlada por programas que funcionaban, la Z3 en 1941
3.4. Usó retardos electromecánicos para realizar conmutación
3.5. Primera máquina en la que se utilizó el sistema numérico binario
3.6. Falta de recursos
3.7. Entre 1987 y 1989, Zuse recreó la Z1 y sufrió un ataque cardiaco durante el proyecto.
3.8. Recibió varios premios por su trabajo. Después de su retiro, se enfocó en su otra afición, la pintura.
3.9. Video
4. • Alan Turing (1912-1954)
4.1. Matemático inglés y primer científico de computación
4.2. Creó modelos matemáticos de computadores (Máquina de Turing) 1936
4.3. Demostró teoremas fundamentales acerca de las limites de la computabilidad (Teoría de la Computación)
4.4. Ayudó a decifrar (criptoanálisis) los códigos secretos “Enigma” durante la 2° guerra mundial
4.5. Trabajó en la construcción de un computador electrónico británico (Colossus) para decifrar códigos
4.6. Perseguido por ser Homosexual.
4.7. Se suicidó en 1954
4.8. Su vida está relatada en la película ENIGMA
4.9. alan turing
5. Grace Murray Hopper (1906-1992)
5.1. Fue la primera programadora que utilizó el Mark 1
5.2. Acuñó el término "bug"
5.3. Concibió la utilización de un lenguaje de alto nivel para programar, el cual sería independiente de la arquitectura de la máquina
5.4. Con el desarrollo de COBOL, contribuyó con muchos elementos fundamentales en la programación de computadoras: el concepto de un compilador, las subrutinas, el enlazador (linker), el optimizador de código y aún la manipulación simbólica, la cual es ampliamente usada en lenguajes matemáticos modernos tales como Mathematica o Maple.
5.5. Video
6. Lenguajes de Programacion
6.1. Clasificación
6.1.1. Lenguaje máquina
6.1.1.1. Es el lenguaje de programación que entiende directamente la máquina. Este lenguaje de programación utiliza el alfabeto binario, es decir, el 0 y el 1.
6.1.2. Lenguaje ensamblador
6.1.2.1. Es un lenguaje en el que cada enunciado produce exactamente una instrucción máquina.
6.1.3. Lenguaje de bajo nivel
6.1.3.1. Son mucho mas fáciles de utilizar que el lenguaje máquina, pero dependen mucho de la máquina o computadora como sucedía con el lenguaje máquina.
6.1.4. Lenguaje de alto nivel
6.1.4.1. Son independientes de la máquina, los podemos usar en cualquier computador con muy pocas modificaciones o sin ellas, son muy similares al lenguaje humano, pero precisan de un programa interprete o compilador que traduzca este lenguaje de programación de alto nivel a uno de bajo nivel como el lenguaje de máquina que la computadora pueda entender.
6.2. Principales paradigmas
6.2.1. Imperativo o procedural
6.2.1.1. Divide el problema en partes más pequeñas, que serán realizadas por subprogramas (subrutinas, funciones, procedimientos), que se llaman unas a otras para ser ejecutadas. Ejemplos: C, Perl, Python.
6.2.2. Declarativo
6.2.2.1. Especifica o "declara" un conjunto de condiciones, proposiciones, afirmaciones, restricciones, ecuaciones o transformaciones que describen el problema y detallan su solución. La solución es obtenida mediante mecanismos internos de control, sin especificar exactamente cómo encontrarla (tan sólo se le indica a la computadora qué es lo que se desea obtener o qué es lo que se está buscando) Ejemplo: Haskell.
6.2.3. Orientado a objetos
6.2.3.1. Crean un sistema de clases y objetos siguiendo el ejemplo del mundo real, en el que unos objetos realizan acciones y se comunican con otros objetos. Ejemplos: C++, Java.
6.2.4. Funcional
6.2.4.1. La tarea se realiza evaluando funciones, (como en Matemáticas), de manera recursiva. Ejemplo: Lisp.
6.2.5. lógica
6.2.5.1. La tarea a realizar se expresa empleando lógica formal matemática. Expresa qué computar. Ejemplo: Prolog.
6.3. Lenguajes de programación más populares
6.3.1. java
6.3.2. Python
6.3.3. JavaScript
6.3.4. C#
6.3.5. C++
6.3.6. Ruby
6.4. Historia de los lenguajes de programación
7. Programas
7.1. Es aquel complejo conjunto de componentes que codificados y traducidos a un lenguaje de programación en la red ejecutan tareas fácilmente para los humanos, respondiendo comandos preestablecidos para tal fin.
7.2. TIPOS DE PROGRAMAS
7.2.1. PROGRAMAS DE APLICACIONES: Procesadores de texto, gestores de bases de datos, hojas de cálculo, juegos, etc.
7.2.2. PROGRAMAS DEL SISTEMA: Son los programas los cuales hacen posible que la máquina funcione, ya que gestiona los recursos de hardware solicitados por las aplicaciones.
7.2.3. PROGRAMAS DE RED: Se incluyen programas relacionados con la interconexión de equipos informáticos, es decir, programas necesarios para que las redes de computadoras funcionen.
7.3. CICLO DE VIDA DEL SOFTWARE
7.3.1. PLANTEAMIENTO DEL PROBLEMA: Es la primera fase del ciclo, consiste únicamente en elegir el problema que se quiere resolver para poder comenzar su análisis.
7.3.2. ANÁLISIS DEL PROBLEMA: En esta fase se determina ¿qué hace el programa? Por lo cual debe definirse de manera clara y concisa el problema en cuestión, se debe establecer el ámbito del problema, las características, limitaciones y modelos de lo que se desea resolver.
7.3.3. DISEÑO DEL ALGORITMO: se describe paso a paso la solución del mismo, lo cual se conoce como algoritmo. El algoritmo se puede hacer en pseudocódigo o en un diagrama de flujo.
7.3.4. IMPLEMENTACIÓN O CODIFICACIÓN: El algoritmo no puede ser ejecutado por una computadora por ello debe traducirse a un lenguaje de programación (como por ejemplo C) para obtener un programa fuente que se traduzca a lenguaje de máquina para que sea ejecutado por la computadora.
7.3.5. PRUEBAS Y VALIDACIÓN: Esta fase debe hacerse una vez que se ha diseñado el algoritmo y después de que se codifica, sirve para verificar que son correctos. Existen diferentes formas de probar que la solución es correcta, algunas de ellas formales y otras informales.
7.3.6. DOCUMENTACIÓN DEL PROGRAMA: Cualquier proyecto de software por la complejidad que tiene requiere tanto las ideas principales como el desarrollo de principio a fin sea documentado, con el fin de que cualquiera puedan entender la lógica del programa y de ser necesario pueda modificarlos sin tantas complicaciones.
7.3.7. MANTENIMIENTO: Esta fase tiene sentido una vez que fue terminada una primera versión del programa y ya está siendo utilizado. Ya que en ésta se actualiza y modifica para corregir errores no detectados o para cambiar y/o agregar una nueva función.
8. Estructura y Funcionamiento de una computadora
8.1. El Modelo Von Neuman
8.1.1. Propone que tanto el programa como los datos sean almacenados en la memoria, de esta forma la computadora no tendría que reconstruirse. La PC funciona gracias a:
8.1.1.1. Unidad Central de Procesamiento
8.1.1.1.1. Unidad Aritmética-Lógica
8.1.1.1.2. Unidad de Control
8.1.1.1.3. Registro de instrucción
8.1.1.2. Memoria Principal
8.1.1.2.1. RAM
8.1.1.2.2. ROM
8.1.1.3. Dispositivos de entrada/salida
8.1.1.3.1. Monitor
8.1.1.3.2. Teclado
8.1.1.3.3. mouse
8.1.1.3.4. Impresora
8.1.1.3.5. Escáner
8.1.1.3.6. Web Cam.
8.1.1.3.7. Unidad de disco
9. Alan Kay (1940- )
9.1. Creador de SmallTalk y los conceptos de la programación orientada a objetos.
9.2. Fue un pionero en GUI porque diseñó conceptualmente la interfaz gráfica de Dynabook, la madre de todas las tablets y otra de sus invenciones.
9.3. Postulo que “La computadora ideal debería funcionar como un organismo viviente; cada “célula” debería comportarse en acorde con otras para completar una meta final pero también deberían ser capaces de funcionar autónomamente. Las “células” también podrían reagruparse para atacar otro problema o manejar otra función.
9.4. Participo en el diseño original de ARPANet, la cual luego se convertiría en Internet.
9.5. Es presidente y fundador de Wiewpoints Research Institute.
9.6. Actualmente, Kay imparte cátedra sobre ideas, conocimiento, aprendizaje no tradicional
10. Douglas Engelbart (1925-2013)
10.1. Inventor estadounidense, descendiente de noruegos
10.2. Inventor del mouse
10.2.1. Su visión sirvió para que los ingenieros de Xerox PARC llegaran finalmente a un mejor diseño del mouse
10.3. Fue un pionero de la interacción humana con las computadoras
10.4. En otoño de 1968, en una conferencia de expertos en informática, Doug Engelbart hizo una presentación que duró 90 minutos. Además de hacer la primera demostración pública del ratón, incluyó una conexión en pantalla con su centro de investigación, es decir, fue la primera vídeo-conferencia de la historia y es recordada con el título de «la madre de todas las demos».
11. Linus Torvalds (1969- )
11.1. Nació en Finlandia
11.2. A la edad de 21 años, con un año de experiencia programando (en C), ya conocía lo suficiente del sistema operativo Minix como para tomar prestadas algunas ideas y empezar un proyecto personal.
11.3. Creador del SO Linux
11.3.1. Solo el 2% del código del Linux actual está escrito por él,
11.4. Actualmente trabaja para el Open Source Development Labs en Beaverton, Oregón.
11.5. En 2004, fue nombrado como una de las personas más influyentes del mundo en el artículo de la revista Time
12. Generaciones de los lenguajes de programación
12.1. Primera generación:
12.1.1. Empezó en los años 1940-1950 en este lenguaje se utilizaba códigos binarios, que eran representados en secuencias de ceros y unos, y cada modelo de ordenador tenia su propio código. Por eso se llama lenguaje maquina.
12.2. Segunda generación
12.2.1. Inició a fines de los 50´ llamado también lenguaje simbólico, así mismo propio de la maquina, permitían simplificar la escritura de la instrucciones y las hacían mas legibles.
12.3. Tercera generación
12.3.1. Hacia los años 60´ en esta generación hay un nivel mas alto de programación que sustituyó los símbolos por los códigos independientes de la maquina.
12.4. Cuarta generación
12.4.1. En esta generación, toda aquella herramienta que permite crear una aplicación combinando piezas prefabricadas. Algunos piensan que no se le puede dar el nombre de lenguaje a este tipo de herramientas y que proponen el nombre de cuarta generación para la programación orientada a objetos.
12.5. Quinta generación
12.5.1. El lenguaje de inteligencia artificial se desarrollo a principios de los 80´. Tiene una mayor legibilidad de los programas, portabilidad, facilidad de aprendizaje y facilidad de modificación.
13. Denis Ritchie (1941-2011)
13.1. Co-creador del lenguaje de programación C y el sistema operativo UNIX
13.1.1. Con estos dos aportes este personaje ha aportado más a la informática que nadie. Practicamente todo en la web utiliza C y UNIX, los navegadores están escritos en C, Internet corre casi en totalidad sobre el kernel de UNIX, que también está escrito en C.
13.1.2. Y lo que no está escrito en C, está escrito derivados de C, como Java o C++; Python y Ruby se implementan en C.
13.1.3. Una frase conocida de él: "UNIX es muy simple, sólo se necesita de un genio para entender su simplicidad."