Comentado [MLAS1]: FACULTAD DE CIENCIAS APLICADAS Programa del Curso Lenguajes Formales y Autómatas I Parte Informativa Carrera: ____________Ingeniería de Sistemas y Tecnologías de la Información y la Comunicación _____________________ Nombre del Curso: Pre-requisito: Plan: Lenguajes Formales y Autómatas Código: AP-E3056 AP-E3004 Código: AP-E3053 Matemática de Computo I – Programación II Semestral _X__ Trimestral ______ Jornada: Vespertina________ Horario: ______________ Nombre del Docente: _________________Ing. Erik Santizo_______________________________________________________ Sede Académica :_________________________Campus Central Zona 16___________________________________________ Fecha de recepción Día: Mes: Año: Sello Registro y Control Académico Firma del Docente Vo. Bo. Coordinador Comentado [MLAS2]: Ape3058 Código de este curso II. DESCRIPCIÓN DEL CURSO Este curso es un contacto importante con las nociones y conceptos del proceso computacional o proceso algorítmico. Forma las bases para los cursos de complejidad y compiladores. Incluye el estudio de técnicas de reconocimiento de patrones, procesos básicos computacionales, análisis léxico y sintáctico. III. COMPETENCIAS A DESARROLLAR GENERALES: • Emplea criterios adecuados para la solución de problemas y diseña soluciones efectivas y creativas basadas en Ciencias de la Computación y Tecnologías de la Información CCTI. • Procura alcanzar la excelencia en el ejercicio de la práctica en Ciencias de la Computación y Tecnologías de la Información CCTI. • Ejerce su profesión relacionando temas sociales, culturales, profesionales, legales y éticos con el uso de la tecnología computacional. • Demuestra un pensamiento crítico e independiente en la solución de problemas de Ciencias de la Computación y Tecnologías de la Información CCTI. ESPECÍFICAS 1. El estudiante comprenderá el análisis léxico, como método de solución en problemas de reconocimiento de patrones. 2. El estudiante aplicara conocimientos con una idea básica de procesos computacionales. IV. DESARROLLO DEL CURSO Unidad de Competencia 1: Comprender el análisis léxico, como método de solución de problemas de reconocimiento de patrones. Contenidos • • Tema: 1 Lenguaje. • Definición de lenguaje, orientada a la formalidad, operaciones con lenguajes. • Conceptos básicos orientados a la teoría de compiladores. • Terminología asociada a la definición conceptual de lenguaje. • Esquema y simbología de definición de lenguaje. Tema 2: Lenguajes formales • • • • • • • • Conceptos básicos. Operadores básicos * y +. Primera definición de lenguaje. Lenguaje formal. Lenguaje regular. Expresiones regulares. Precedencia en las expresiones regulares. Álgebra de expresiones regulares. Diseño de expresiones regulares. Tema 3: Autómatas finitos • • • • • • • • • Conceptos básicos. Definición formal de autómata finito. Análisis de la entrada a través de un autómata finito. Lenguaje aceptado por un autómata finito. Ejemplos de autómatas orientados a diseñar la etapa de léxico de un lenguaje de programación. Tipos de autómatas. Autómata finito determinista. Autómata finito no determinista. Actividades metodológicas • • • • Enseñanza Formal, Descubrimiento guiado, Resolución de problemas. Asignación de tares. Recursos didácticos • Computadora, Proyector. • Procedimientos de Evaluación Pruebas de conocimiento. • • Análisis de la entrada a través de un autómata finito no determinista. • Autómata con transiciones-E • Análisis de la entrada a través de un autómata finito con transiciones-E. • Autómata no determinista y con transiciones-E. • Conversión de autómata finito no determinista a autómata finito determinista. • Conversión de expresión regular a autómata finito no determinista y determinista. Tema 4: Gramáticas. • • • • • • • • Conceptos básicos. Definición formal. Convenciones de notación. Notación simplificada. Lenguaje generado por una gramática. Diseño de gramáticas. Técnicas para el diseño de gramáticas. Modularidad de las gramáticas. Límites de las gramáticas. Diseño arbitrario de gramáticas. Gramática regular implementada en un autómata finito no determinista. Unidad de Competencia 2: Aplicar conocimientos con una idea básica de procesos computacionales. Contenidos • Tema 5: Autómatas de Pila. • • • • • Definición formal. Jerarquía de lenguajes. Reconocimiento de una cadena en un autómata de pila. Seguimiento en formato de corrida de escritorio. Gramáticas independientes del contexto, implementadas en autómatas de pila. • Tema 6: Máquina de Turing. • • Conceptos básicos. • Máquina de Turing como realizadora de cálculos. • Reconocimiento de una cadena de entrada. • Máquina de Turing como reconocedora de lenguajes. • Diseño de la máquina de Turing. • Técnicas para la construcción de las máquinas de Turing. Tema 7: Expresiones, primer acercamiento. • • • • • • • Consideraciones para generar expresiones en lenguajes de programación. Términos dentro de una expresión. Prioridad o precedencia. Generación de notaciones a través de árboles binarios. Recorrido del árbol. Importancia de la notación posfija. Aplicación de los algoritmos de conversión y evaluación en un programa. Actividades metodológicas Recursos metodológicos • • • • • Enseñanza Formal, Descubrimiento guiado, Resolución de problemas. Asignación de tares. Computadora, Proyector. • Procedimientos de Evaluación Pruebas de conocimiento. V. CRITERIOS DE EVALUACIÓN DEL CURSO Actividades de zona 1. Realización de exámenes cortos. (5 exámenes cortos) Puntaje 10 pts. 2. Realización de proyectos. (entrega el 15 de Noviembre de 2016) 20 pts. 3. Realización de tareas (10 tareas) 10 pts. 4. Exposición en clase (5 veces) 10 pts. 5. Examen Parcial. Total 25 pts. 75 pts. TOTAL ZONA EVALUACION FINAL NOTA FINAL 75 pts. 25 pts. 100 pts. ** Se requiere de zona mínima de 41 puntos y asistencias del 80% para tener derecho a examen final. VI. REFERENCIAS O FUENTES BIBLIOGRÁFICAS • Autómatas y Lenguajes. Ramón Brena, Tecnológico de Monterrey. 2003