Personajes prominentes, evolución y conceptos relacionados a la programación

Comienza Ya. Es Gratis
ó regístrate con tu dirección de correo electrónico
Personajes prominentes, evolución y conceptos relacionados a la programación por Mind Map: Personajes prominentes, evolución y conceptos relacionados a la programación

1. Frances Elizabeth Allen

1.1. Informática americana y pionera en el campo de optimizar compiladores

1.2. Sus logros incluyen trabajo en compiladores, optimización de código, y computación paralela.

2. Lenguajes de Programacion

2.1. Clasificación

2.1.1. Lenguaje Máquina

2.1.1.1. Lo entiende directamente la computadora.

2.1.1.2. Utiliza el alfabeto binario, es decir, el 0 y el 1.

2.1.1.3. Difícil de programar

2.1.2. Lenguajes de programación de bajo nivel

2.1.2.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.

2.1.2.2. El lenguaje ensamblador fue el primer lenguaje de programación que trato de sustituir el lenguaje máquina por otro lenguaje que fuese más parecido al de los seres humanos.

2.1.2.2.1. Programa fuente: traduce las instruciones a un programa escrito en lenguaje ensamblador por el programador.

2.1.2.2.2. Programa objeto: es la traducción a lenguaje máquina del programa fuente.

2.1.2.3. Los lenguajes de este tipo pueden crear programas muy rápidos, pero son difíciles de aprender.

2.1.2.4. Son específicos de cada procesador (de cada máquina), si nos llevamos el programa a otro computador será preciso reescribir el programa desde el comienzo.

2.1.3. Lenguajes de programación de alto nivel

2.1.3.1. Este tipo de lenguajes de programación 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.

2.1.3.2. 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

2.1.3.3. Otra clasificación de los lenguajes de programación de alto nivel, es teniendo en cuenta el desarrollo de las computadoras según sus diferentes generaciones

2.1.3.3.1. Lenguajes de programación de primera generación: el lenguaje máquina y el ensamblador.

2.1.3.3.2. Lenguajes de programación de segunda generación : los primeros lenguajes de programación de alto nivel imperativo (FROTRAN, COBOL).

2.1.3.3.3. Lenguajes de programación de tercera generación: son lenguajes de programación de alto nivel imperativo pero mucho más utilizados y vigentes en la actualidad (ALGOL 8, PL/I, PASCAL, MODULA).

2.1.3.3.4. Lenguajes de programación de cuarta generación: usados en aplicaciones de gestión y manejo de bases de dados (NATURAL, SQL).

2.1.3.3.5. Lenguajes de programación de quinta generación: creados para la inteligencia artificial y para el procesamiento de lenguajes naturales (LISP, PROLOG).

2.2. Paradigmas

2.2.1. Paradigma Imperativo

2.2.1.1. Describe la programación como una secuencia instrucciones o comandos que cambian el estado de un programa.

2.2.1.2. El código máquina en general está basado en el paradigma imperativo.

2.2.2. Paradigma Declarativo

2.2.2.1. Se enfoca en describir las propiedades de la solución buscada, dejando indeterminado el algoritmo (conjunto de instrucciones) usado para encontrar esa solución.

2.2.2.2. Es más complicado de implementar que el paradigma imperativo, tiene desventajas en la eficiencia, pero ventajas en la solución de determinados problemas.

2.2.2.3. Existen varios tipos de lenguajes declarativos:

2.2.2.3.1. Los lenguajes algebraicos, como Maude y SQL

2.2.2.3.2. Los lenguajes lógicos, como Prolog.

2.2.2.3.3. Los lenguajes funcionales, como Haskell y Erlang

2.2.2.4. Paradigma Funcional

2.2.2.4.1. Concibe a la computación como la evaluación de funciones matemáticas y evita declarar y cambiar datos.

2.2.2.4.2. Permite resolver ciertos problemas de forma elegante y los lenguajes puramente funcionales evitan los efectos secundarios comunes en otro tipo de programaciones.

2.2.2.5. Paradigma lógico

2.2.2.5.1. Se basa en la definición de reglas lógicas para luego, a través de un motor de inferencias lógicas, responder preguntas planteadas al sistema y así resolver los problemas.

2.2.3. Paradigma Estructurado

2.2.3.1. La programación se divide en bloques (procedimientos y funciones) que pueden o no comunicarse entre sí.

2.2.3.2. Permite reutilizar código programado y otorga una mejor compresión de la programación.

2.2.3.3. Algunos de los lenguajes usados en la programación estructurada

2.2.3.3.1. ALGOL

2.2.3.3.2. Pascal

2.2.3.3.3. PL/I

2.2.3.3.4. ADA

2.2.4. Paradigma Orientado a Objetos

2.2.4.1. Está basado en la idea de encapsular estado y operaciones en objetos. En general, la programación se resuelve comunicando dichos objetos a través de mensajes (programación orientada a mensajes).

2.2.4.2. Su principal ventaja es la reutilización de códigos y su facilidad para pensar soluciones a determinados problemas.

2.2.4.3. Lenguajes orientados a objetos

2.2.4.3.1. Fortran 90/95

2.2.4.3.2. Java

2.2.4.3.3. JavaScript5

2.2.4.3.4. C++

2.2.4.3.5. Ocaml

2.2.4.3.6. R

2.2.4.3.7. Perl7 8

2.2.4.3.8. PHP9

2.2.4.3.9. PowerBuilder

2.2.4.3.10. Python

2.2.4.3.11. Ruby

2.2.4.3.12. Self

2.2.4.3.13. Smalltalk10

2.2.4.3.14. VB.NET

2.2.4.3.15. Visual FoxPro11

2.2.4.3.16. Visual Basic 6.0

3. Estructura y Funcionamiento de una computadora

3.1. El Modelo Von Neuman

3.1.1. Dispositivo de operación (DO)

3.1.2. Unidad de control (UC)

3.1.3. Memoria del dispositivo

3.1.4. Dispositivo de E/S (DES)

4. Alan Kay

4.1. pionero en la programación orientada a objetos

4.2. diseño de sistemas de interfaz gráfica de usuario (GUI, en inglés)

4.3. desarrolló prototipos de estaciones de trabajo en red, usando el lenguaje de programación Smalltalk.

5. Programadoras de la ENIAC

5.1. Betty Snyder Holberton, Betty Jean Jennings Bartik, Ruth Lichterman Teitelbaum, Kathleen McNulty Mauchly Antonelli, Frances Bilas Spence y Marlyn Wescoff Meltzer.

5.2. Todas ellas eran matemáticas. Habían sido contratadas por el gobierno de los EEUU para pensar y escribir los programas de cálculo de trayectoria balística que debía realizar ENIAC.

5.3. Su tarea consistió no solo en “inventar” los programas, sino, cuando ya lo tenían resuelto, entrar a la sala donde estaba ENIAC, y proceder a la programación propiamente dicha. Es decir, a conectar y desconectar los cables que llegaban a las 6000 clavijas, de la misma manera que se hacía en las centrales telefónicas de entonces.

5.4. De hecho, antes de la existencia del ENIAC, los cálculos de las tablas de balística eran realizados a mano por 80 mujeres matemáticas que trabajaban en la Universidad de Pensilvania. A estas mujeres, que resolvían a mano las ecuaciones diferenciales, la Armada de EEUU las llamaba “computadoras”. (O sea que... las primeras computadoras fueron.... ¡mujeres!)

5.5. Programadoras ENIAC

5.6. En el año 1997, fueron incluidas en el Women in Technology International Hall of Fame.

6. Linus Torvalds

6.1. Ingeniero de software finlandés estadounidense

6.2. Desarrollo del "kernel" (en español, núcleo) Linux, basándose en el sistema operativo libre Minix creado por Andrew S. Tanenbaum

6.3. My first line of code

7. Andrew S. Tanenbaum

7.1. Profesor de ciencias de la computación de la Universidad Libre de Ámsterdam, Países Bajos

7.2. Creador de Minix, una réplica gratuita del sistema operativo UNIX con propósitos educativos, y por sus libros sobre ciencias de la computación.

8. Ángela Ruiz Robles

8.1. La base fundamental de su trabajo radicó siempre en su necesidad vital de innovar los ámbitos de la pedagogía y la didáctica.

8.2. Desarrolló en 1949 la enciclopedia mecánica,

8.2.1. La enciclopedia mecánica era necesaria según sus explicaciones porque: «aligera el peso de las carteras de los alumnos, hace más atractivo el aprendizaje y adapta la enseñanza al nivel de cada estudiante. Portátil, que pese poco, de uso en casa y en el colegio, con la posibilidad de adaptarse a alumnos de todos los niveles y a los que tengan problemas de visión. Apoya al aprendizaje con sonidos. Enseña varios idiomas. Facilita el aprendizaje en la oscuridad incorporando luz. Da soporte para que otros maestros añadan sus propios materiales y aminorar costes.

8.3. Precursora del libro digital e-book.

9. Carol Shaw

9.1. Es una de las primeras mujeres desarrolladoras de video juegos.

9.1.1. Empezó trabajando para Atari, para luego pasar a formar parte del equipo de Activision en donde programó su juego más famoso River Raid el cual es considerado un clásico.

9.1.2. Super Breakout (1978)

9.1.3. Happy Trails (1984) para el Atari 2600.

9.1.4. Creadora del 3D-Tic Tac Toe (1979)

10. • Charles Babbage (1791-1871)

10.1. Matemático Inglés

10.1.1. Biografía

10.2. Creó una máquina de Diferencias en 1822

10.3. Usó tecnología para relojes

10.4. Para resolver ecuaciones polinomiales

10.5. Nunca se terminó

10.6. • Datos curiosos Charles Babbage

10.6.1. Inventó el "apartavacas"

10.6.2. – Prolífico inventor

10.6.3. – Aficionado a lo sobrenatural

10.6.4. – Odiaba a los músicos callejeros (lo interrumpían, siempre los corria de la calle de su casa)

10.6.5. – Fue candidato al Parlamento Británico en dos ocasiones (en ambas perdió)

10.6.6. – Se expuso en una ocasión a una temperatura de 130° C para ver lo que se sentía ser horneado

10.7. • Máquina Analítica

10.7.1. Babbage (1933) diseñó la máquina analítica

10.7.2. Vapor como fuente de energía

10.7.3. Máquina programable de propósito general

10.7.4. Diseñada para almacenar 1000 números con 50 decimales cada uno. Las instrucciones almacenadas en tarjetas perforadas

10.7.5. La máquina analítica de Babbage, como se puede apreciar en el Science Museum de Londres.

10.7.6. Tipos de dificultades para terminar esta obra

10.7.6.1. Algunos piensan que las limitaciones tecnológicas de la época eran un obstáculo que habría impedido su construcción; otros piensan que la tecnología de la época no alcanzaba para construir la máquina de haberse obtenido financiación y apoyo político al proyecto.

10.7.6.2. La máquina analítica debía funcionar con un motor a vapor y habría tenido 30 metros de largo por 10 de ancho.

10.8. Considerado el padre de las computadoras

10.8.1. Diseñó y parcialmente implementó una máquina para calcular, de diferencias mecánicas para calcular tablas de números. También diseñó, pero nunca construyó, la máquina analítica para ejecutar programas de tabulación o computación; por estos inventos se le considera como una de las primeras personas en concebir la idea de lo que hoy llamaríamos una computadora, por lo que se le considera como «El Padre de la Computación».

11. ADA Condesa de Lovelace (1815-1852)

11.1. Ayudante de Babbage

11.2. Diseñó un lenguaje para la máquina analítica

11.3. Es considerada la primera programadora de la historia

11.4. Se creó el lenguaje de programación “Ada”

11.5. Ada Lovelace

12. • Konrad Zuse

12.1. Ingeniero Alemán

12.2. Construyó el primer computador digital programable en los años 30

12.3. Usó retardos electromecánicos para realizar conmutación

12.4. Primera máquina en la que se utilizó el sistema numérico binario

12.5. Falta de recursos

13. • Alan Turing (1912-1954)

13.1. Matemático inglés y primer científico de computación

13.2. Creó modelos matemáticos de computadores (Máquina de Turing) 1936

13.3. Demostró teoremas fundamentales acerca de las limites de la computabilidad (Teoría de la Computación)

13.4. Ayudó a decifrar (criptoanálisis) los códigos secretos “Enigma” durante la 2° guerra mundial

13.5. Trabajó en la construcción de un computador electrónico británico (Colossus) para decifrar códigos

13.6. Perseguido por ser Homosexual.

13.7. Se suicidó en 1954

13.8. Pelicula ENIGMA actualmente en cines

14. Grace Murray Hopper

14.1. Fue la primera programadora que utilizó el Mark I

14.2. Desarrolló el primer compilador de la historia, el A-0

14.3. Realizó el primer compilador para procesamiento de datos que usaba órdenes en inglés, el B-0 (FLOW-MATIC)

14.4. Participó en los comités de estandarización de los lenguajes de programación COBOL y FORTRAN.

15. Programas

15.1. Es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas computacionales.

15.2. Ciclo de Vida del software

15.2.1. Definición de objetivos: definir el resultado del proyecto y su papel en la estrategia global.

15.2.2. Análisis de los requisitos y su viabilidad: recopilar, examinar y formular los requisitos del cliente y examinar cualquier restricción que se pueda aplicar.

15.2.3. Diseño general: requisitos generales de la arquitectura de la aplicación.

15.2.4. Diseño en detalle: definición precisa de cada subconjunto de la aplicación.

15.2.5. Programación (programación e implementación): es la implementación en un lenguaje de programación para crear las funciones definidas durante la etapa de diseño.

15.2.6. Prueba de unidad: prueba individual de cada subconjunto de la aplicación para garantizar que se implementaron de acuerdo con las especificaciones.

15.2.7. Integración: para garantizar que los diferentes módulos y subprogramas se integren con la aplicación. Éste es el propósito de la prueba de integración que debe estar cuidadosamente documentada.

15.2.8. Prueba beta (o validación), para garantizar que el software cumple con las especificaciones originales.

15.2.9. Documentación: se documenta con toda la información necesaria, sea funcional final para los usuarios del software (manual del usuario), y de desarrollo para futuras adaptaciones, ampliaciones y correcciones.

15.2.10. Mantenimiento: para todos los procedimientos correctivos (mantenimiento correctivo) y las actualizaciones secundarias del software (mantenimiento continuo).

16. Douglas Engelbart

16.1. Inventor del ratón

16.2. Pionero de la interacción humana con las computadoras, incluyendo el hipertexto y las computadoras en red.