Las máquinas que computan
Computer Science is no more about computers than astronomy is about telescopes— Edsger W. Dijkstra
Ivan Meza
Antes de comenzar un par de preguntas
- ¿Cúal es su trabajo ideal, y qué problemas estarán resolviendo?
- ¿Como creen que sea el campo en diez años?
- ¿Cómo creen que sea el campo y las herramientas en cincuenta años?
- ¿... en cien años?
La revolución industrial
- Proceso social y económico: 1760 - 1840
- Pasamos de la productos hechos a mano a hechos por máquinas
- La labor hecha por humanos comenzó a ser hecha por las máquinas
- Comienza la automatización masiva
1821
Regresando a Gran Bretaña
La máquina que suma
- La industría necesitaba de tablas: logaritmos, trigonometría, funciones polinomiales
- Hechas por "Calculadores/computadores" humanos, pero contienen errores
- Idea máquinas que calculen estos valores
- ¿Fabricar una tela es lo mismo que hacer una tabla logarítmica?
- Charles Babbage, propuesta 1822, finalizada* 1849
La máquina de analiza
- Idea una máquina general para cualquier cálculo
- Hasta ahora trabajo de matemáticos
- También propuesta por Charles Babbage, 1837, nunca completada
- ¿Fabricar una tela, una tabla logarítmica es lo mismo que calcular una fórmula?
- Procesos mentales hechos por humanos comenzaron a ser hechos por máquinas
La máquina analítica
Los héroes
Charles Babbage y Ada Lovelace
Primer algorithmo
Números de Bernulli, 1842
Máquina general
200 años después
- ¿Dónde quedó esa máquina general?
- De hecho, es mucho mejor que general, es universal
- Se trata de la computadora
Como futuros ingenieros en computación
¿Qué es una computadora?
i see computers
¿Qué es una computadora?
(discutir)
¿Qué hace una computadora?
¿Qué hace una computadora?
(discutir)
¿Cuales son los límites de la computadora?
¿Puede?
- ¿Contar las aes en un texto?
- ¿Contar las aes en todas las páginas web?
- ¿Multiplicar dos números primos?
- ¿Ejecutar instrucciones que les demos en programas?
- ¿Encontrar todos los números primos?
- ¿En un conjunto de números encontrar aquellos que sumen $C$?
- ¿Verificar que un programa sea correcto?
- ¿Verificar que cualquier programa se terminen de ejecutar?
Un adelanto
- Problemas fáciles: $a+b$
- Problemas no tan fáciles: $a*b$
- Problemas complejos: ¿que suéter usar?
- Problemas bien difíciles: dado un conjunto de números, que subconjunto suma $C$
- Problemas sin solución: ...
Las respuestas
Lenguajes Formales y Autómatas
LFyA
Una marco teórico matemático-computacional
Lenguajes
Gramática
Máquinas
Jerarquía de Chomsky
Lenguaje |
Gramática |
Máquina |
Recursivamente enumerable |
Tipo 0 |
Máquina de Turing |
Dependiente de contexto |
Tipo 1 |
Autómata con doble pila |
Independiente de contexto |
Tipo 2 |
Autómata con pila |
Regular |
Tipo 3 |
Autómata finito |
Jerarquía de Chomsky
Héroes
Además de Ada y Babbage
Noam Chomsky
Alan M. Turing
Stephen C. Kleene
Alonzo Church
¿Qué es lo que no hace una computadora?
Paradoja de Rusell
Resumen
- Contexto histórico de dónde vienen las máquinas calculadores
- Computadoras actuales y sus funciones
- Ejemplos de complejidad de problemas
- Presentación de terminología de la materia
- Presentación de personajes celebres de la materia
- Presentación de paradoja