Profesor | Araceli Liliana Reyes Cabello | lu mi | 18 a 19:30 |
Ayudante | Rafael Reyes Sánchez | ma ju | 19:30 a 20:30 |
El objetivo del curso es desarrollar la teoría clásica de la computación mediante la descripción y estudio de ciertos modelos matemáticos de la noción de cómputo. Los conceptos fundamentales son tres: lenguaje, gramática y autómata.
Se estudiará a profundidad distintas clases de lenguajes, gramáticas y autómatas; haciendo énfasis en los conceptos abstractos de cómputo y poder computacional pero también mencionando algunas aplicaciones.
Para las actividades asíncronas y publicación de materiales utilizaremos Google Classroom. Deberán envíar un correo desde tu cuenta institucional con asunto INSCRIPCIÓN al correo
Temario
1. Introducción
a. Cadenas y lenguajes
b. Definiciones inductivas
c. Inducción estructural
2. Lenguajes regulares
a. Expresiones regulares
b. Autómatas finitos (AFD, AFN)
c. Teorema de Kleene
d. Teorema de Myhill-Nerode
3. Lenguajes libres de contexto
a. Gramáticas y formas normales
b. Autómatas de pila
c. Ambigüedad
d. Algoritmos y procedimientos de decisión
4. Máquinas de Turing
a. Definición y diseño de máquinas de Turing
b. Lenguajes recursivos y recursivamente enumerables
Referencias
1. James A. Anderson. Automata Theory with Modern Applications. Cambridge University Press 2006.
2. Martin Davis, Ron Sigal, Elaine J. Weyuker. Computability, Complexity and Languages: Fundamentals of Theoretical Computer Science. Academic Press, 1983.
3. Maribel Fernández, Models of Computation, An Introduction to Computability Theory. Springer 2009.
4. J.E. Hopcroft, R. Motwani y J. Ullman. Introduction to Automata Theory, Languages, and Computation. 3rd. Edition, Pearson, 2006.
5. John Martin. Introduction to Languages and the Theory of Computation, 4th Edition, McGraw-Hill 2010.