Carácter Modalidad Horas de estudio semestral (16 semanas)

Documentos relacionados
ESCUELA: UNIVERSIDAD DEL ISTMO

Texto: Hopcroft, J. E., Motwani, R., Ullman, J.D., Introduction to Automata Theory, Languajes, and Computation. 3rd Edition. Addison Wesley, 2007.

PONTIFICIA UNIVERSIDAD CATOLICA DEL ECUADOR FACULTAD DE INGENIERIA ESCUELA DE INGENIERIA DE SISTEMAS

PROGRAMA INSTRUCCIONAL AUTOMATAS Y LENGUAJES FORMALES

Carrera: SCM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

Fechas Mes/año Clave Semestre 8 a 10

PROTOCOLO. Carácter Modalidad Horas de estudio semestral (16 semanas)

PROTOCOLO. Fechas Mes/año Clave Semestre 6

Facultad de Ingeniería de Sistemas 1.5 Carrera: Ingeniería de Sistemas 1.6 Código: ISI 1.7 Nivel: Pregrado

DEPARTAMENTO: Ingeniería e Investigaciones Tecnológicas

PROGRAMA DE ESTUDIOS: Concentradores switches y routers PROTOCOLO

PLANIFICACIÓN DE LA DOCENCIA UNIVERSITARIA GUÍA DOCENTE INTRODUCCIÓN Y TEORÍA DE LA COMPUTACIÓN

PROGRAMA DE ESTUDIOS: Sistemas de Radio Comercial. PROTOCOLO

Operaciones algebraicas elementales (Unidad I del curso Matemáticas Básicas).

Cátedra de Sintaxis y Semántica de Lenguajes

Profs. Carlos Pérez y Ricardo Monascal

Fechas Mes/año Clave Semestre 7

PROTOCOLO. Fechas Mes/año Clave Semestre

Estructura de datos. Carrera: SCC Participantes

PROBABILIDAD Y ESTADISTICA

PROTOCOLO. Plan de estudios del que forma parte: Ingeniería en Sistemas Energéticos

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE ESTUDIOS SUPERIORES ACATLÁN LICENCIATURA EN MATEMÁTICAS APLICADAS Y COMPUTACIÓN

PROGRAMA DE LABORATORIO SECCIÓN: ÁREA A LA QUE PERTENECE: POS-REQUISITO: AUXILIAR:

Toda copia en PAPEL es un "Documento No Controlado" a excepción del original.

PROTOCOLO. Carácter Modalidad Horas de estudio semestral (16 semanas) Conocimientos sobre aspectos económicos y conceptos de energía.

Programa de Estudios: DERECHO FISCAL PROTOCOLO. Nivel Licenciatura X Maestría Doctorado

Nombre de la asignatura: Diseño Estructurado de Algoritmos. Carrera: Ingeniería en Sistemas Computacionales. Clave de la asignatura: SCB-9316

DIPLOMADO. Evaluación de la Calidad de la práctica docente para la implementación del Nuevo Modelo Educativo en Escuelas de Ingeniería del I.P.N.

Universidad Centroccidental Lisandro Alvarado. Decanato de Ciencias y Tecnología Departamento de Sistemas

PROTOCOLO. Carácter Modalidad Horas de estudio semestral (16 semanas)

LP - Lenguajes de Programación

Tema: Autómata de Pila

Asignatura: Horas: Total (horas): Obligatoria Teóricas 3.0 Semana 3.0 Optativa X Prácticas Semanas 48.0 de elección

Carácter Modalidad Horas de estudio semestral (16 semanas)

PROTOCOLO. Carácter Modalidad Horas de estudio semestral (16 semanas)

ADQUISICIÓN Y MANILUPACIÓN DE DATO. Aprobación Ciclo Integración Básico Superior X. Aplicación Colegio H. y C.S. C. y T. X C. y H.

Universidad Autónoma de la Ciudad de México Nada humano me es ajeno

ALGORITMOS, ESTRUCTURAS Y PROGRAMACION

PROGRAMA DE ESTUDIOS: Sistemas telefónicos. PROTOCOLO

FÍSICA Y MATEMÁTICAS INSTITUTO DE INGENIERÍA Y TECNOLOGÍA. Totales Teoría Práctica

Fechas Mes/año Clave Semestre 8 a 10

: Algorítmica y Estructura de Datos I

BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA FACULTAD CIENCIAS DE LA COMPUTACIÓN

PROGRAMA ANALÍTICO DE ASIGNATURA

UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO

Programa de estudios por competencias Métodos Matemáticos II. Fecha elaboración/modificación: Julio 2015 Clave de la asignatura:

Matemáticas II. Carrera: IFM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

PROGRAMA INSTRUCCIONAL

GUÍA DOCENTE. Matemáticas II

LICENCIADO EN SISTEMAS COMPUTACIONALES. Este programa educativo se ofrece en las siguientes sedes académicas de la UABC:

2007/ PROGRAMACIÓN. Tipo: TRO Curso: 1 Semestre: AB CREDITOS Totales TA TS AT AP PA OBJETIVOS. 1.-Introducción.

PROGRAMA DE ASIGNATURA

PROGRAMA ANALÍTICO DE ASIGNATURA

Asignatura. Laboratorio de Lenguaje Multimedia. Academia: Producción audiovisual, multimedia y paquetes computacionales

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE ESTUDIOS SUPERIORES ACATLÁN LICENCIATURA EN MATEMÁTICAS APLICADAS Y COMPUTACIÓN

ESCUELA: UNIVERSIDAD DEL ISTMO

PROYECTO DOCENTE ASIGNATURA: "Computabilidad y Complejidad"

Nombre de la asignatura: Programación Básica. Créditos: Objetivo de aprendizaje

UNIVERSIDAD DEL NORTE

PROGRAMA DE ASIGNATURA CLAVE: 1211 SEMESTRE: 2 CÁLCULO VECTORIAL HORAS SEMESTRE CARACTER ECUACIONES DIFERENCIALES

UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO FACULTAD DE ESTUDIOS SUPERIORES CUAUTITLÁN PLAN DE ESTUDIOS DE LA LICENCIATURA EN QUÍMICA INDUSTRIAL

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS.

Programa de estudios por competencias. Seminario de Sistemas operativos en red

LITERATURA ESPAÑOLA. EDAD MEDIA

D. Prerrequisitos, correquisitos y otros requerimientos

INSTITUTO TECNOLÓGICO SUPERIOR DEL SUR DEL ESTADO DE YUCATAN SUBDIRECCIÓN ACADÉMICA DEPARTAMENTO DE INGENIERÍA INDUSTRIAL

Nombre de la asignatura: Algoritmos y Lenguajes de programación.

DATOS DE IDENTIFICACIÓN CURSO

INSTRUCTIVO PARA LA ELABORACIÓN DE PROGRAMAS DE ASIGNATURA DE LICENCIATURAS, PROFESIONAL ASOCIADO (TÉCNICO SUPERIOR UNIVERSITARIO) Y TÉCNICO

Probabilidad. Carrera: IFM Participantes. Representantes de la academia de sistemas y computación de los Institutos Tecnológicos.

Fundamentos de Ciencias de la Computación Trabajo Práctico N 2 Lenguajes Libres del Contexto y Sensibles al Contexto Segundo Cuatrimestre de 2002

UNIVERSIDAD AUTÓNOMA DE YUCATÁN FACULTAD DE MATEMÁTICAS

Pontificia Universidad Católica del Ecuador

PROGRAMA DE ASIGNATURA CLAVE: 1213 SEMESTRE: 2º ESTÁTICA. HORAS SEMESTRE CARACTER GEOMETRÍA ANALÍTICA.

PROGRAMA DE ESTUDIO. Nombre de la asignatura: MICROPROCESADORES Y MICROCONTROLADORES. Horas de Práctica

1. IDENTIFICACIÓN DEL CURSO Nombre de la materia Comunicación y Tecnologías de la Información

Asignatura: Horas: Total (horas): Obligatoria X Teóricas 4.5 Semana 4.5 Optativa Prácticas Semanas 72.0

Programa de estudios por competencias Arquitectura de computadoras

EVALUACIÓN DE PROYECTOS DE INGENIERÍA

MODELOS AVANZADOS DE COMPUTACIÓN

INGENIERÍA MECÁNICA E INDUSTRIAL TERMOFLUIDOS INGENIERÍA MECÁNICA División Departamento Licenciatura

PROGRAMA DE CURSO. Área de Formación General Duración Semestral. Año 2010 Nivel Segundo Semestre Segundo

Carrera: Ingeniería en Tecnologías de la Información y Comunicaciones

TC - Teoría de la Computación

ESTRUCTURAS DE DATOS

INGENIERÍA EN SISTEMAS INFORMÁTICOS

Área: Aportaciones de las ciencias sociales CS. Carácter: optativo Horas Horas por semana Horas por semestre Tipo: Teórico Teoría: Práctica:

Nombre de la asignatura: Investigación de Operaciones II. Créditos: Aportación al perfil

NOMBRE DEL CURSO: Matemática Básica 1

Universidad de las Illes Balears Guía docente

SECUENCIA DIDÁCTICA. Módulo IV

Introducción a la Ingeniería Básicas de Ingeniería

Jesús Manuel Carrera Velueta José Juan Almeida García Fecha de elaboración: Mayo 6 de 2010 Fecha de última actualización:

Asignatura: Horas: Total (horas): Obligatoria X Teóricas 4.5 Semana 4.5 Optativa Prácticas Semanas 72.0

Análisis estructuras de estructuras conformadas por elementos finitos.

Procesadores de Lenguaje

ESTRUCTURACION DEL PROGRAMA DE ASIGNATURA 1. INFORMACION GENERAL

Ingeniería en Sistemas Energéticos

INSTITUTO POLITÉCNICO NACIONAL SECRETARÍA ACADÉMICA DIRECCIÓN DE ESTUDIOS PROFESIONALES EN INGENIERÍA Y CIENCIAS FÍSICO MATEMÁTICAS

CARRERA DE CIECNIAS DE LA COMPUTACIÓN PROGRAMA DE ESTUDIO. Teóricos: 2 Práctico: 1 Total 3

Transcripción:

PROGRAMA DE ESTUDIOS: TEORÍA DE LA COMPUTACIÓN PROTOCOLO Fechas Mes/año Clave Semestre 5 o Elaboración 05-2010 Nivel Licenciatura X Maestría Doctorado Aprobación Ciclo Integración Básico Superior Aplicación 09-2010 Colegio H. y C.S. C. y T. X C. y H. Plan de estudios del que forma parte: Licenciatura en Ingeniería de Software Propósito(s) general(es): El estudiante aplicará las teorías de lenguajes formales, gramáticas y las máquinas de estados finitos, en el diseño e implementación de aplicaciones reales de software. Además podrá reconocer aquellos problemas que no puedan ser resueltos utilizando una computadora. Carácter Modalidad Horas de estudio semestral (16 semanas) Indispensable X Seminario Taller Con Docente Curso X Cursotaller Optativa * Laboratorio Clínica Teóricas Prácticas Carga horaria semanal 4.5 + 3.5 = 8 72 Autónomas Teóricas 56 Prácticas Carga horaria semestral: 128 Asignaturas Previas: Matemáticas Discretas, Estructuras de Datos y Programación Orientada a Objetos Asignaturas Posteriores: Lenguajes de programación Requerimientos para cursar la asignatura Conocimientos y habilidades: El estudiante debe tener conocimientos de matemáticas discretas, principalmente conjuntos y relaciones, e inducción y recursión; además debe conocer las estructuras de datos, su representación y programación, además de manejar un lenguaje de programación de alto nivel. Habilidades: Abstracción, análisis y creatividad. Perfil deseable del profesor: Maestría en Ciencias de la Computación, Ingeniería de Software o disciplinas afines. Además, experiencia docente y de investigación. Academia responsable del programa: Informática Diseñador (es): M en C. Araceli Liliana Reyes Cabello Licenciatura en Ingeniería de Software 1

INTRODUCCIÓN La teoría de la computación se encarga de estudiar las limitaciones y capacidades fundamentales de las computadoras valiéndose de modelos matemáticos, que representan máquinas computacionales de estados finitos, con las cuales se formaliza el concepto de hacer cómputo. En esta asignatura se estudiarán los principales modelos de máquinas computacionales (autómatas con un número de estados finitos, autómatas de pila, autómatas linealmente acotados y máquinas de Turing); al mismo tiempo se revisarán los tipos de lenguajes que éstas máquinas reconocen, junto con los mecanismos que los generan (gramáticas), resaltando la correspondencia y la relación de jerarquía que existe entre éstos. Finalmente se discutirán nociones de decidibilidad e indecibilidad relacionándolo con el análisis de complejidad. El curso está estructurado en siete unidades: La primera es una introducción al tema de los autómatas y lenguajes formales, junto con su historia. Se definen los conceptos básicos de los elementos con los que se va a trabajar como: símbolos, alfabetos, cadenas, lenguajes, gramáticas; y se presenta el proceso de generación de lenguajes. Posteriormente, en la segunda unidad se estudian los autómatas finitos, analizando la equivalencia entre el modelo determinista y el no determinista. Asimismo, se incursiona en el tema de los lenguajes y sus propiedades, así como en las gramáticas y expresiones, que son el mecanismo que los genera. Al final de la unidad se revisa la relación que existe entre autómatas, lenguajes y expresiones. La tercera unidad está enfocada a revisar el modelo de autómata de pila, como una extensión de un autómata finito al cual se le agrega memoria en forma de pila, analizando los beneficios que existen al hacer esta extensión. Del mismo modo, se revisan los diferentes modelos de estos autómatas y si hay o no equivalencia que existe entre ellos. En la siguiente unidad se presentan los lenguajes y gramáticas libres de contexto, junto con las propiedades de éstos. Se revisan las diferentes transformaciones que se pueden realizar a una gramática de este tipo, y se demuestra la equivalencia entre los autómatas de pila y las gramáticas libres de contexto. La unidad cinco está dedicada al estudio de la Máquinas de Turing, incluyendo los autómatas linealmente acotados. Se presentan los diferentes tipos de Máquinas de Turing, resaltando a la máquina de universal de Turing como modelo universal de cómputo. El siguiente tema es la Jerarquía de Chomsky, en la cual se estudia la contención propia que existe entre los diferentes tipos de lenguajes; enfatizando que existe una amplia gama de lenguajes que escapan a esta clasificación. Además se prueba la equivalencia entre lenguajes generales y máquinas de Turing; y entre autómatas linealmente acotados y lenguajes dependientes del contexto. El último tema tiene como fin revisar el concepto de decibilidad, para ello se muestran algunos ejemplos clásicos de problemas no decidibles, como el problema del paro. Concluyendo el tema con el teorema de Rice. PROPÓSITOS GENERALES El estudiante aplicará las teorías de lenguajes formales, gramáticas y las máquinas de estados finitos, en el diseño e implementación de aplicaciones reales de software. Además podrá reconocer aquellos problemas que no puedan ser resueltos utilizando una computadora Licenciatura en Ingeniería de Software 2

CONTENIDOS TEMAS Y SUBTEMAS PROPÓSITOS ESPECIFICOS 1. Introducción Es estudiante definirá los conceptos centrales de la teoría de lenguajes formales y autómatas; y 1.1 Motivación describirá el proceso para generar cadenas de un 1.2 Conceptos básicos lenguaje formal. 1.3 Gramáticas y lenguajes formales 1.4 Árboles de derivación 2. Autómatas finitos y lenguajes 2.1 Descripción informal de los autómatas finitos 2.2 Autómatas finitos deterministas 2.3 Autómatas finitos no deterministas 2.4 Equivalencia 2.5 Minimización 2.6 Autómatas finitos con transiciones є 2.7 Gramáticas tipo 3 y expresiones 2.8 Relación entre autómatas finitos, gramáticas y expresiones 2.9 Propiedades de los lenguajes 2.10 Aplicaciones El estudiante construirá gramáticas, expresiones y autómatas finitos que generen y reconozcan lenguajes, respectivamente. Además asociará a los autómatas finitos como analizadores léxicos. 3. Autómatas de pila El estudiante construirá autómatas de pila y para reconocer lenguajes libres de contexto, además de 3.1 Definición de los Autómatas de Pila que los utilizará para traducir cadenas y para 3.2 Aceptación por estado final realizar análisis sintáctico. 3.3 Aceptación por pila vacía 3.4 Transformación entre los dos tipos de autómatas. 3.5 Autómatas de pila con un solo estado 3.6 Aplicaciones: Traductores 4. Lenguajes Libres de Contexto El estudiante diseñará gramáticas libres de contexto; además demostrará la equivalencia que 4.1 Gramáticas Libres de Contexto hay entre este tipo de gramáticas y los autómatas 4.2 Simplificación de gramáticas libres de de pila. contexto. 4.3 Formas normales 4.4 Aplicaciones de la gramáticas libres de contexto 4.5. Equivalencia entre autómatas de pila y lenguajes libres de contexto 4.6 Propiedades de los lenguajes libres de contexto 4.7 Caracterización de los lenguajes que no son libres de contexto Licenciatura en Ingeniería de Software 3

5. Máquinas de Turing El estudiante construirá máquinas de Turing para reconocer lenguajes y descubrirá el poder computacional de este modelo matemático. 5.1 Motivación 5.2 Definición de la Máquina de Turing básica 5.3. Técnicas de programación para las Máquinas de Turing 5.4. Variantes de la Máquina de Turing 5.5 La Máquina de Turing Universal 5.6 Autómatas linealmente acotados 6. La jerarquía de Chomsky El estudiante distinguirá las características de cada uno de los lenguajes formales y los alcances y 6.1 Lenguajes recursivos y recursivamente numerables 6.2 Gramáticas sin restricciones 6.3 Lenguajes generales y máquinas de Turing 6.4 Lenguajes dependientes del contexto y autómatas linealmente acotadas limitaciones de cada uno de los autómatas asociados a éstos. 7. Introducción a la decidibilidad El estudiante reconocerá que existen problemas que no pueden ser resueltos por una computadora. 7.1. Definición de decibilidad 7.2 El problema de detención (halting problema) 7.3. Reducción 7.4 Indecibilidad en Máquinas de Turing 7.5 Otros problemas de indecidibilidad METODOLOGÍA PARA EL CURSO La materia se impartirá por medio de exposiciones teóricas por parte del profesor, apoyándose en software libre que le permita ilustrar algunos de los temas. Asimismo se sugiere resolver ejercicios en clase junto con los estudiantes para reforzar el conocimiento, así como dinámicas grupales que tengan el mismo fin. Al final de cada tema exponer las aplicaciones reales en las que se ocupan los conceptos estudiados. También se sugiere complementar ciertos aspectos del curso mediante el desarrollo de proyectos de programación realizados en algún lenguaje de alto nivel. En las horas autónomas de estudio, el estudiante solucionará problemas teóricos que se plantearán en clase, y si es el caso, realizará prácticas o proyectos de programación. EVALUACIÓN DIAGNÓSTICA Se aplicará un examen escrito que permita evaluar los conocimientos que el estudiante tiene de conjuntos y relaciones, inducción y recursión, así como la resolución de problemas. Licenciatura en Ingeniería de Software 4

EVALUACIÓN FORMATIVA Con el propósito de dar seguimiento al proceso de enseñanza aprendizaje, se propone aplicas tres evaluaciones escritas: la primera que incluya los temas expuestos en las dos primeras unidades, la segunda para evaluar la unidad tres y cuatro, la tercera que evalúe la unidad 5 y la 6. Para evaluar la última unidad se sugiere un trabajo escrito. Antes de cada evaluación escrita se sugiere dejar tareas a los estudiantes, preferentemente al iniciar cada tema, con el fin de que la resuelvan paulatinamente conforme se estudia el tema en clase. Posteriormente, se recomienda realizar un análisis con los estudiantes para evaluar los temas en los que se presenten problemas para realizar una revisión de los mismos. En el caso de que sean pocos los estudiantes que tengan dudas, éstas se tratarán en asesoría. Se pondrá especial atención en el cumplimiento de las tareas y la participación de los estudiantes en clase, ya que estas actividades ayudan a la formación del estudiante. EVALUACIÓN DE CERTIFICACIÓN Se proponen dos modalidades de certificación: 1) Portafolio: Que incluya tanto las tareas, evaluaciones y, si es el caso, proyectos que el estudiante deberá realizar a lo largo del semestre, y que son definidas por el profesor asignado a cada grupo. 2) El examen escrito final, elaborado por el comité de certificación. En ambas modalidades se evaluarán tanto los conocimientos del estudiante de todos y cada uno de los temas que forman parte del programa de estudio, así como su habilidad para resolver problemas utilizando las herramientas expuestas durante el curso. BIBLIOGRAFÍA La bibliografía que se menciona a continuación es la básica para el estudiante y el profesor: Núm. Bibliografía Temas en los que se recomienda 1. Aho A.V., Lam M., Sethi S.R., and Ullman J.D. Compilers: Compilers: 1,2,3,4,5,6,7 Principles, Techniques & Tools, Pearson Addison-Wesley,2007 2. Brookshear, J. Glenn. Teoría de la Computación, Lenguajes Formales, 1,2,3,4,5,6,7 Autómatas y Complejidad. Addison Wesley Iberoamericana. 1993. 3. Kozen, D.C., Automata and Computability, Springer-Verlag TELOS, 1997 1,2,3,4,5,6,7 4. Linz, P. An introduction to formal languages and automata, D.C. Heath and 1,2,3,4,5,6,7 Company, fourth edition, 2006. 5. Hopcroftt, J. E; Montwani, R., and Ullman, J. Introduction to Automata 1,2,3,4,5,6,7 Theory Language, and Computation. Addison Wesley, third edition 2007. 6. Sipser, M. Introduction to theory of computation, PWS Publishing Company, second edition, 2005. 1,2,3,4,5,6,7 Licenciatura en Ingeniería de Software 5

OTROS RECURSOS Proyector de video (Cañón), computadora que tenga instalado un compilador, editor de texto, depurador; preferentemente que tenga instalado un Entorno de Desarrollo Integrado (IDE). Licenciatura en Ingeniería de Software 6