Departamento de Ciencias Computacionales

Anuncio
UNIVERSIDAD DE GUADALAJARA
CENTRO UNIVERSITARIO DE CIENCIAS EXACTAS E INGENIERÍAS
DIVISIÓN DE ELECTRONICA Y COMPUTACIÓN
DEPARTAMENTO DE CIENCIA COMPUTACIONALES
DATOS GENERALES
CLAVE DE MATERIA
:
CC209
NOMBRE DE MATERIA
:
TEORIA DE LA COMPUTACIÓN
CARÁCTER DEL CURSO
:
OBLIGATORIO
ÁREA DE FORMACIÓN
:
BÁSICA PARTICULAR
PREREQUISITOS
:
MATEMATICAS DISCRETAS
DEPTO. DE ADSCRIPCIÓN
:
CIENCIAS COMPUTACIONALES
ACADEMIA DE ADSCRIPCIÓN
:
ESTRUCTURAS Y ALGORITMOS
CARGA HORARIA GLOBAL
:
80 HORAS
CARGA HORARIA SEMANAL
:
4 HORAS
VALOR EN CRÉDITOS
:
11 CRÉDITOS
OBJETIVO GENERAL
:
COMPRENDER Y APLICAR LOS MODELOS MATEMÁTICOS
PROPIOS DE ESTE CURSO PARA REPRESENTAR CON ELLOS
SISTEMAS
DEL
MUNDO
REAL,
ENFOCANDO
EL
CONOCIMIENTO DE MANERA PRINCIPAL Y OBTENER LOS
ANTECEDENTES NECESARIOS PARA PODER IMPLEMENTAR
LAS ETAPAS DE ANALISIS DE UN COMPILADOR.
OBJETIVO ESPECÍFICO
:
EN CADA MÓDULO DEL CONTENIDO TEMATICO
PRINCIPAL
FECHA DE MODIFICACIÓN
:
JULIO 2005
CALENDARIO DE APLICACIÓN :
2006A
CC209 Teoría de la computación
Academia de Estructuras y Algoritmos
Pág. 1 de 4
UNIVERSIDAD DE GUADALAJARA
DIVISION DE ELECTRONICA Y COMPUTACION
DEPARTAMENTO DE CIENCIAS COMPUTACIONALES
TEORIA DE LA COMPUTACION
CONTENIDO TEMÁTICO PRINCIPAL
Objetivo General: Comprender las diferentes gramáticas y lenguajes formales y su utilización eficiente en
la creación de aplicaciones.
Módulo 1: Gramáticas y Lenguajes Formales (13hrs)
Objetivo Particular: entender la forma en que los lenguajes naturales se pueden definir matemáticamente
(como lenguajes formales) para su mejor comprensión, enfatizando los aspectos que hacen similares o
diferentes a ambas representaciones.
1.1
1.2
1.3
1.4
1.5
1.6
Conceptos introductorios.
Lenguajes Formales y sus operaciones.
Gramáticas formales y su diseño.
Caracterización de una Gramática.
Jerarquía de Chomsky.
Forma Normal de Chomsky (CNF).
Módulo 2: Las Gramáticas Formales en la Computación (4hrs)
Objetivo Particular: Aplicar los conocimientos sobre Gramáticas Formales en la descripción de
los lenguajes de programación, con el propósito de desarrollar parte de un compilador, o para
entender su operación.
2.1 Forma Normal de Backus-Naur (BNF)
2.2 Árboles de derivación.
2.3 Conceptos importantes en el diseño de lenguajes de programación.
Módulo 3: Autómatas de Estado Finito. (26 hrs.)
Objetivo Particular: Obtener las bases necesarias para el diseño de analizadores lexicográficos y
comprender la gran variedad de aplicaciones que se pueden representar y simular con este tipo de Módulos.
3.1. Concepto y Representación del Modelo.
3.2 Desarrollo de un Autómata Finito.
3.3 Autómatas de expresiones Regulares.
3.4 Relación entre Autómatas Finitos y Gramáticas Regulares.
3.5 Autómatas Finitos: deterministas y no deterministas.
3.6 Desarrollo de una aplicación de Máquinas de Estado Finito.
3.7 Limitaciones de los Autómatas de Estado Finito.
3.8 Concepto de Máquinas de Estado Finito.
3.9 Representación de Máquinas de Estado Finito.
3.10 Desarrollo de una aplicación de Máquinas de Estado Finito.
3.11 Relación y diferencias de los Autómatas de Estado Finito con las Máquinas de Estado Finito.
CC209 Teoría de la computación
Academia de Estructuras y Algoritmos
Pág. 2 de 4
Módulo 4: Autómatas de Pilas. (13 hrs.)
Objetivo Particular: Obtener las bases para el diseño de estos dispositivos para aplicarse como
analizadores sintácticos en un compilador.
4.1 Concepto y representación de Autómatas de Pila.
4.2 Relación entre Autómatas de Pila y Gramáticas Libres de Contexto.
4.3 Limitaciones de los Autómatas de Pila.
Módulo 5: Máquinas de Turing. (14 hrs.)
Objetivo Particular: Conocer el poder computacional de estas máquinas en el contexto de la solución de
problemas de reconocimiento de lenguajes.
5.1 Concepto y representación de Máquinas de Turing.
5.2 Máquinas de Turing como aceptadores de Lenguajes.
5.3 Construcción de Máquinas de Turing.
5.4 El problema de la parada.
Módulo 6: Computabilidad (10 hrs.)
Objetivo Particular: Entender que el diseño de algoritmos presenta limitaciones en ciertos casos, que
impiden su representación adecuada.
6.1 Complejidad de los cálculos.
6.2 Complejidad de los algoritmos.
6.3 Complejidad de los problemas.
6.4 Problemas NP.
6.5 Problemas irresolubles.
Criterios de evaluación
Exámenes Departamentales.......................................................................................60%
Implementaciones de aplicaciones............................................................................20%
Tareas individuales (resolución de ejercicios) y trabajos especiales........................20%
Metodología y recursos a utilizar
Se debe impartir como curso teórico, haciendo énfasis en los modelos y algoritmos de operaciones y, como
ejercicio de programación avanzada, se debe orientar a los alumnos la codificación de los algoritmos y
revisarlos y discutirlos en clase. Los recursos a utilizar varían según la clase.
Bibliografía Básica
 Lenguajes Formales y Teoría de la Computación, John _Martin, Editorial Mc Graw Hill.
 Teoría de Autómatas y Lenguajes Formales, Dean Kelley., Editorial Prentice Hall.
 Introd.a la Teoría de Autómatas, Lenguajes y Computación, John E. Hopcroft y Jeffrey D. Uliman.
Editorial CECSA.
 Teoría de la Computación, J. Glenn Brookshear, Editorial Addison Wesley Iberoamericana.
CC209 Teoría de la computación
Academia de Estructuras y Algoritmos
Pág. 3 de 4
Bibliografía Complementaria




Compiladores, Alfred V. ]Aho, Ravi Sethi y Jeffrey D. Uliman., Editorial addison Wesley
Iberoamericana.
Matemáticas Discretas., Richard Johnsonbaugh., Editorial Iberoamericana.
Lenguajes de Programación, Ravi Sethi., Editrorial Addison Wesley.
Introducción a las Ciencias de la Computación, J. Glenn Brookshear., Editorial Addison Wesley.
Como comentario adicional se puede decir que otros textos con títulos semejantes a los cuatro anteriores,
pueden ser considerados como parte de esta bibliografía complementaria
Modalidad de Enseñanza y Aprendizaje
En virtud de que el contenido del curso es adecuado para que alumno desarrolle su creatividad, se recomienda
que se le asesore para que pueda utilizar su iniciativa para descubrir la solución a los problemas con los que se
habrá de encontrar. Además se le pueden solicitar tareas de investigación que hagan que el curso avance en
forma más fluida.
CC209 Teoría de la computación
Academia de Estructuras y Algoritmos
Pág. 4 de 4
Descargar