Programa de la asignatura TALF (270702, Plan nº 010) TEL...

4
Teoria de Autómatas y Lenguajes Formales. (TALF-2006) Prof. Dr. Eric Jeltsch F. _____________________________________________________________________ Escuela de Ingeniería en Computación, Universidad de La Serena. 1 Programa de la asignatura TALF (270702, Plan nº 010) TEL: 4-0-2 Prerrequisitos Informales: Se espera que el alumno tenga sólida base en Programación Orientada a Objetos, así como el manejo para abordar problemas de análisis y desarrollos matemáticos. Prerrequisito Formal: 270603, Programación Avanzada. Descripción de la Asignatura: Es un curso del Ciclo Superior teórico- práctico, (7º Nivel) que entrega los fundamentos teóricos de la programación, combinando la teoría con la práctica a través de numerosos ejemplos. Se sigue la clasificación de Chomsky, se exponen las gramáticas regulares y los autómatas finitos, las máquinas secuenciales, las gramáticas independientes del contexto los autómatas a pila y las máquinas de Turing, junto con aplicaciones prácticas en diversas disciplinas. Los tópicos seleccionados para las aplicaciones incluyen en general, los sistemas inteligentes, modelamiento y reconocimiento de formas, y en particular las gramáticas de grafos, gramáticas de árboles, gramáticas de string y transductores. En los Laboratorios, se continua aprendiendo y aplicando el lenguaje Java como herramienta y la Programación Orientada a Objeto como metodología para implementar algoritmos o proyectos que se deriven de los contenidos. Objetivos: Al término del curso el alumno podrá conocer, aplicar, diseñar e implementar conceptos de los lenguajes formales para ponerlos en práctica y recrearlos en otras disciplinas, usando el lenguaje de programación Java, así como el uso y evaluación de ciertas herramientas y sistemas de software Open Source asociados a los contenidos con la componente de visualización. En lo específico, el alumno deberá: Dominar las clases de lenguajes formales: ámbito, relaciones de contenidos y sus respectivos dispositivos reconocedores / generadores (jerarquía de Chomsky). Manejar alguna herramienta o sistema de software asociado a los contenidos. Metodología: Para cumplir con los objetivos se utiliza una metodología de tipo Teórico - Práctico. Para ello se realizan clases de teoría mediante la presentación de los contenidos, fundamentos y algoritmos con ejemplos típicos de los temas. Para tal efecto, se mantiene un sitio Web con material suplementario. Para la sección de Práctica se deja un material de apoyo. en donde se basan las actividades a realizar durante los laboratorios. Las actividades se realizan en forma semanal con una duración de 1 bloque (2 horas), por tal motivo, se dejan actividades personales con una duración de 1 o 2 semanas, las que son evaluadas en la hora de Laboratorio. Están programadas en total aprox. 14 sesiones de Laboratorios, frente al PC, además de 7 evaluaciones. Evaluaciones: Teoría (3 Pruebas ) = 70% Laboratorios (4 evaluaciones + Proyecto Final) = 30%. NOTA: Como una forma de retroalimentación y marcar un estándar de las dificultades y objetivos del curso es que se mantienen las Pautas de Corrección de pruebas anteriores,

Transcript of Programa de la asignatura TALF (270702, Plan nº 010) TEL...

Page 1: Programa de la asignatura TALF (270702, Plan nº 010) TEL ...dns.uls.cl/~ej/talf_08/teo_talf_2008/prog_talf_2006.pdf · herramientas y sistemas de software Open Source asociados a

Teoria de Autómatas y Lenguajes Formales. (TALF-2006) Prof. Dr. Eric Jeltsch F.

_____________________________________________________________________Escuela de Ingeniería en Computación, Universidad de La Serena.

1

Programa de la asignatura TALF (270702, Plan nº 010) TEL: 4-0-2 Prerrequisitos Informales: Se espera que el alumno tenga sólida base en Programación Orientada a Objetos, así como el manejo para abordar problemas de análisis y desarrollos matemáticos. Prerrequisito Formal: 270603, Programación Avanzada. Descripción de la Asignatura: Es un curso del Ciclo Superior teórico- práctico, (7º Nivel) que entrega los fundamentos teóricos de la programación, combinando la teoría con la práctica a través de numerosos ejemplos. Se sigue la clasificación de Chomsky, se exponen las gramáticas regulares y los autómatas finitos, las máquinas secuenciales, las gramáticas independientes del contexto los autómatas a pila y las máquinas de Turing, junto con aplicaciones prácticas en diversas disciplinas. Los tópicos seleccionados para las aplicaciones incluyen en general, los sistemas inteligentes, modelamiento y reconocimiento de formas, y en particular las gramáticas de grafos, gramáticas de árboles, gramáticas de string y transductores. En los Laboratorios, se continua aprendiendo y aplicando el lenguaje Java como herramienta y la Programación Orientada a Objeto como metodología para implementar algoritmos o proyectos que se deriven de los contenidos. Objetivos: Al término del curso el alumno podrá conocer, aplicar, diseñar e implementar conceptos de los lenguajes formales para ponerlos en práctica y recrearlos en otras disciplinas, usando el lenguaje de programación Java, así como el uso y evaluación de ciertas herramientas y sistemas de software Open Source asociados a los contenidos con la componente de visualización. En lo específico, el alumno deberá: • Dominar las clases de lenguajes formales: ámbito, relaciones de contenidos y sus

respectivos dispositivos reconocedores / generadores (jerarquía de Chomsky). • Manejar alguna herramienta o sistema de software asociado a los contenidos.

Metodología: Para cumplir con los objetivos se utiliza una metodología de tipo Teórico - Práctico. Para ello se realizan clases de teoría mediante la presentación de los contenidos, fundamentos y algoritmos con ejemplos típicos de los temas. Para tal efecto, se mantiene un sitio Web con material suplementario. Para la sección de Práctica se deja un material de apoyo. en donde se basan las actividades a realizar durante los laboratorios. Las actividades se realizan en forma semanal con una duración de 1 bloque (2 horas), por tal motivo, se dejan actividades personales con una duración de 1 o 2 semanas, las que son evaluadas en la hora de Laboratorio. Están programadas en total aprox. 14 sesiones de Laboratorios, frente al PC, además de 7 evaluaciones. Evaluaciones: Teoría (3 Pruebas ) = 70% Laboratorios (4 evaluaciones + Proyecto Final) = 30%. NOTA: Como una forma de retroalimentación y marcar un estándar de las dificultades y objetivos del curso es que se mantienen las Pautas de Corrección de pruebas anteriores,

Page 2: Programa de la asignatura TALF (270702, Plan nº 010) TEL ...dns.uls.cl/~ej/talf_08/teo_talf_2008/prog_talf_2006.pdf · herramientas y sistemas de software Open Source asociados a

Teoria de Autómatas y Lenguajes Formales. (TALF-2006) Prof. Dr. Eric Jeltsch F.

_____________________________________________________________________Escuela de Ingeniería en Computación, Universidad de La Serena.

2

en la secretaría de la Escuela de Ingeniería en Computación en la carpeta del curso TALF. TEORIA - Contenidos Cap. 0 Se entrega una introducción al curso y como el programa sustenta otras asignaturas del plan de estudio de la carrera, así mismo se aborda el estado del arte de la asignatura en un contexto global.

Cap. 1 Alfabeto, cadena de caracteres (string), Lenguajes, operaciones con Lenguajes, Lenguajes Regulares. Expresiones aritméticas bien formadas como un ejemplo de lenguaje formal.

Cap. 2 Máquinas abstractas, Máquinas de estado finito, Autómatas de estado finito (AEF), Autómatas de estado finito determinista(AEFD) y no-determinista(AEFND), Equivalencia entre AEFD y AEFND. Problema String Matching ( Rabin-Karp, con autómatas, Knuth-Morris-Pratt, Boyer-Moore).

Cap. 3 Transductores. Autómatas Finitos con Salida. Máquina de Moore, Máquina de Mealy, Equivalencia entre Moore y Mealy.

Cap. 4 Expresiones Regulares, Propiedades de los lenguajes regulares, Equivalencia entre expresiones regulares y autómatas finitos.

Cap. 5 Gramáticas Formales, Jerarquerización de Chomsky, Gramáticas Regulares, Características de los lenguajes aceptados por Autómatas de estado Finito ( unión, concatenación, clausura de Kleene, complemento e intersección), Decidibilidad para los Autómatas.

Cap. 7 Lenguajes no-regulares. Lema del Bombeo (Pumping Lema) para lenguajes regulares, Homomorfismo entre lenguajes, Características de los lenguajes regulares considerando homomorfismo. ( Prueba nº1, desde Cap. 0 - 7 ) (18 de Abril)

Cap. 8 Lenguajes de ContextoLibre(LCL), Gramáticas de Contexto Libre(GCL), Arboles de derivación, Ambiguedad de gramáticas. Lema del Bombeo (Pumping Lema) para LCL, Propiedades de los LCL.

Cap. 9 Propiedades de los LCL (unión, concatenación, clausura de Kleene, complemento, homomorfismo). Representación de los Autómatas a Pilas.

Cap. 10 Formas Normales o estándares ( Chomsky, Greibach ), Relación entre AP y AEF, Relación entre AP y GCL.

Cap. 11 Decidibilidad ( equivalencia, finitud, pertenencia) para los LCL, Algoritmo Cocke-Younger-Kasami. ( Prueba nº2, desde Cap. 8 - 11 )(26 de mayo)

Cap. 12 Gramáticas de String y su interpretación en el “Problema de Reconocimiento de Patrones en forma sintáctica”. Gramáticas de Árboles.

Cap. 13 Gramáticas de Lindenmayer y los sistemas DOL.

Cap. 14 Gramáticas y Autómatas Estocásticas y las Cadenas de Markov.

Page 3: Programa de la asignatura TALF (270702, Plan nº 010) TEL ...dns.uls.cl/~ej/talf_08/teo_talf_2008/prog_talf_2006.pdf · herramientas y sistemas de software Open Source asociados a

Teoria de Autómatas y Lenguajes Formales. (TALF-2006) Prof. Dr. Eric Jeltsch F.

_____________________________________________________________________Escuela de Ingeniería en Computación, Universidad de La Serena.

3

Cap. 15 Gramáticas y Lenguajes de Grafos y sus Aplicaciones.

Cap.16 Máquinas de Turing, Tesis de Church. ( Prueba nº3, desde Cap. 12 – 16)(30 de Junio)

Examen, corresponde a todos los contenidos, (fecha 10 de Julio).

Bibliografía: (1) texto guía, es decir 70% del curso está basado en él.

o (1) Dean, Kelley, "Teoria de Autómatas y Lenguajes Formales", Prentice Hall, 1995.

o C. Papadimitriou, H. Lewis, "Elements of the Theory of Computation", Prentice Hall, 1980.

o Hopcroft, Ullman, "Introduction to Automata Theory, Languages and Computation", Addison Wesley, 1981.

o Cohen Daniel,"Introduction to Computer Theory", John Wiley & Sons, 1997.

o M. Thomason, R. Gonzalez, "Syntactic Pattern Recognition: An Introduction", Addison Wesley, 1978.

o Cormen, Leiserson, Rivest, "Introduction to algorithms", McGraw-Hill, 1990.

o Uwe, Schöning, "Theoretische Informatik kurz gefasst", BI, Wissenschaftsverlag, 1992.

o Aho, Sethi, Ullman, "Compiladores", Addison Wesley, 1990.

o G. Rozenberg, "Handbook of Graph Grammars and Computing by Graph Transformation", World Scientific, 1997.

o Przemyslaw Prusinkiewic, Aristid Lindenmayer “The Algorithmic Beauty of Plants “. Springer-Verlag, 1990 (segunda edición 1996). http://algorithmicbotany.org/papers/#abop(gratuita).

LABORATORIO - Contenidos Se entrega una introducción de lo que se espera de los alumnos al término de la asignatura con respecto a las habilidades que deberían desarrollar y la metodología a seguir en el transcurso de los Laboratorios. Entre ellas está el de considerar las “buenas prácticas en la ingeniería de software”, utilizando herramientas apropiadas de código abierto, sobretodo aquellas que se relacionan con Análisis de requerimientos, Especificación, Diseño y arquitectura, Programación, Prueba, Documentación, Mantenimiento, entre otros.

Tema 1. Conocer, manejar y evaluar una herramienta de desarrollo, llamémoslo Entorno de Desarrollo Integrado (IDE) que incluye un compilador y varias utilidades para la depuración, en lenguaje Java. Prestar interés en la Ventana de Aplicación, Barra de Menús, Barra de Herramientas, utilidades de depuración, acceso a otras ventanas de aplicación, menú contextual y otros.

Page 4: Programa de la asignatura TALF (270702, Plan nº 010) TEL ...dns.uls.cl/~ej/talf_08/teo_talf_2008/prog_talf_2006.pdf · herramientas y sistemas de software Open Source asociados a

Teoria de Autómatas y Lenguajes Formales. (TALF-2006) Prof. Dr. Eric Jeltsch F.

_____________________________________________________________________Escuela de Ingeniería en Computación, Universidad de La Serena.

4

Tema 2. Conocer diversas Application Program Interface, API de la distribución Java 1.2 (versión 1.4 y 1.5).

Tema 3. Conocer, manejar y evaluar herramienta de desarrollo orientadas al lenguaje gráfico para visualizar, especificar, construir y documentar los distintos componentes de un sistema de software, en donde UML proporciona un estándar.

Tema 4. Creación de un sistema de software que utilice los temas antes abordados. Los sistemas podrán estar circunscritos en diversos temas, ya sea teóricos, o alguna otra aplicación, como por ejemplo, Sistema de gestión, Sistema de Inventario, Sistema de Decisión, etc.

Tema 5. Conocer, manejar y evaluar una herramienta de desarrollo, llamémoslo Entorno de Desarrollo Integrado (IDE) en el entorno de los contenidos teóricos.

Código de Honor: Todo trabajo, ya sea exposición, informe o alguna otra actividad evaluativa, el alumno deberá incluir y respetar lo siguiente:

a) agradecer y mencionar la (o las) fuente(s) de información de la (o las) persona(s) que le colaboraron en su presentación, tanto en su contenido como en la presentación.

b) mencionar la (o las) fuente(s) de información del (o los) enlace(s) de Internet que le sirvieron de inspiración en su presentación. Entendiendo que lo logrado es una "adaptación" de lo mencionado en la página Web y no una copia o traducción de lo allí mencionado.

c) basado en lo anterior, cualquier otra forma de presentar un trabajo, y habiéndose constatado el no cumplimiento de los preceptos antes descritos. El (o los) alumno(s) recibirán la nota mínima, es decir 1.0.