Teoría computación

3
ESCUELA DE INGENIERÍAS FACULTAD DE INGENIERÍA EN TECNOLOGÍAS DE LA INFORMACIÓN Y LA COMUNICACIÓN PROGRAMA DE INGENIERÍA DE SISTEMAS E INFORMÁTICA MATERIA: TEORÍA DE LA COMPUTACIÓN CODIGO: 14291 PRERREQUISITOS: Matemáticas Discretas SEMESTRE: III INTENSIDAD HORARIA: 4 horas semanales HABILITABLE: NO OBJETIVOS Establecer las bases teóricas que soportan los Sistemas de Computo modernos. Establecer los límites en los problemas que puede/no puede resolver un Computador. Identificar las clasificación de los problemas según los recursos (tiempo, espacio) necesarios para su solución. PROPOSITOS DE FORMACIÓN Entender los fundamentos de computación para introducir a los estudiantes a los más importantes modelos computacionales que surgieron en los últimos cincuenta años Dar a conocer al estudiante los principios de la teoría de la computación que establecen los fundamentos de operación de las distintas arquitecturas de hardware existes, y establecen los límites entre lo que puede hacer y no puede hacer un computador. Identificar las clases de complejidad computacional y clasificar problemas clásicos dentro de estas clases. Conocer la teoría de lenguajes formales y de autómatas para aplicarla en asignaturas o proyectos futuros relacionados principalmente con compiladores, inteligencia artificial y robótica. CONTENIDO DEL CURSO PRELIMINARES - Reseña Histórica - Lógica elemental - Teoría de Conjuntos - Relaciones y Funciones - Inducción - Relaciones y Funciones - Generalidades lenguajes formales LENGUAJES FORMALES Y SUS MAQUINAS - Lenguajes regulares y expresiones regulares - Maquinas de estados finitos - Autómata finito determinista (AFD) - Autómata finito no 1

Transcript of Teoría computación

Page 1: Teoría computación

ESCUELA DE INGENIERÍASFACULTAD DE INGENIERÍA EN TECNOLOGÍAS DE LA INFORMACIÓN Y LA COMUNICACIÓNPROGRAMA DE INGENIERÍA DE SISTEMAS E INFORMÁTICA

MATERIA: TEORÍA DE LA COMPUTACIÓNCODIGO: 14291PRERREQUISITOS: Matemáticas DiscretasSEMESTRE: IIIINTENSIDAD HORARIA: 4 horas semanalesHABILITABLE: NO

OBJETIVOS

Establecer las bases teóricas que soportan los Sistemas de Computo modernos.

Establecer los límites en los problemas que puede/no puede resolver un Computador.

Identificar las clasificación de los problemas según los recursos (tiempo, espacio) necesarios para su solución.

PROPOSITOS DE FORMACIÓN

Entender los fundamentos de computación para introducir a los estudiantes a los más importantes modelos computacionales que surgieron en los últimos cincuenta años

Dar a conocer al estudiante los principios de la teoría de la computación que establecen los fundamentos de operación de las distintas arquitecturas de hardware existes, y establecen los límites entre lo que puede hacer y no puede hacer un computador.

Identificar las clases de complejidad computacional y clasificar problemas clásicos dentro de estas clases.

Conocer la teoría de lenguajes formales y de autómatas para aplicarla en asignaturas o proyectos futuros relacionados principalmente con compiladores, inteligencia artificial y robótica.

CONTENIDO DEL CURSO

PRELIMINARES

- Reseña Histórica- Lógica elemental- Teoría de Conjuntos- Relaciones y Funciones - Inducción- Relaciones y Funciones- Generalidades lenguajes formales

LENGUAJES FORMALES Y SUS MAQUINAS

- Lenguajes regulares y expresiones regulares- Maquinas de estados finitos- Autómata finito determinista (AFD)- Autómata finito no determinista (AFN)- Equivalencia de AFN y de AFD- E-transiciones- Autómatas finitos y expresiones regulares- Aplicaciones de las expresiones regulares y de los autómatas finitos- Diseño de autómatas de estados finitos- Lenguajes no regulares- Propiedades de los lenguajes independientes del contexto- Autómata de pila no determinista (ADPND)- Autómatas de pila y lenguajes independientes del contexto- Lenguajes sensibles al contexto

1

Page 2: Teoría computación

TEORIA DE GRAMATICAS

- Jerarquía de Chomsky- Gramáticas Regulares- Gramáticas y lenguajes regulares- Gramáticas independientes del contexto- Árboles de derivación o de análisis de ambigüedad-Simplificación de gramáticas independientes del contexto

MAQUINAS DE TURING

- Definiciones básicas- Máquinas de Turing como aceptadoras de lenguajes- Construcción de máquinas de Turing- Modificaciones de las máquinas de Turing- La tesis de Church-Turing- Definición de algoritmo

METODOLOGIA

El curso se desarrollará mediante exposición del profesor y si se requiere de los estudiantes.

Se dejarán algunos temas para investigación o autoestudio con asesoría del profesor.

Habrá un texto guía.

Los estudiantes desarrollarán un proyecto que consta de dos partes. La primera consiste en construir un analizador léxico de algún lenguaje de programación real. La segunda consiste en elaborar la gramática BNF del lenguaje de programación.

BIBLIOGRAFIA

KELLY, Dean. Teoría de Autómatas y Lenguajes Formales. Prentice Hall.

HOPCROFT Y ULLMAN. Introducción a la Teoría de Autómatas, Lenguajes y

Computación. Editorial Cecsa.

BRENA, Ramón. Autómatas y Lenguajes. Tec. Monterrey. 2003. Libro electrónico disponible en http://lizt.mty.itesm.mx/~rbrena/AyL.html

ISASI VIÑUELA, Pedro; MARTÍNEZ FERNANDEZ, Paloma; BORRAJO MILLÁN, Daniel. Lenguajes, Gramáticas y Autómatas; Un enfoque práctico. Editorial Addison-Wesley.

CORMEN, T., LEISERSON, C. y RIVEST, R. Introduction to algorithms.

BRASSARD, G. y BRATLEY P. Fundamentos de Algoritmia.

BASE, S. Algoritmos computacionales. Introducción al análisis y diseño.

AHO, A. V., HOPCROFT, J. E., y ULLMAN, J.D. Data Structures and Algorithms.

LEWIS, H. y PAPADIMITRIOU, C. Elements of the Theory of Computation.

SIPSER, Michael. Introduction to the Theory of Computation.

Elaboró: Oscar Eduardo Sánchez GarcíaDocente de Teoría de la ComputaciónII Semestre Académico del 2012Universidad Pontificia BolivarianaRepública de Colombia

2

Page 3: Teoría computación

3