Guía docente de Modelos de Computación (2161146)
Grado
Rama
Módulo
Materia
Curso
Semestre
Créditos
Tipo
Profesorado
Teórico
Práctico
Tutorías
Serafín Moral Callejón
Email- Primer semestre
- Lunes de 11:00 a 13:00 (D4 Etsiit)
- Martes de 11:00 a 13:00 (D4 Etsiit)
- Jueves de 11:00 a 13:00 (D4 Etsiit)
- Segundo semestre
- Lunes de 11:00 a 13:00 (D4 Etsiit)
- Martes de 11:00 a 13:00 (D4 Etsiit)
- Miércoles de 11:00 a 13:00 (D4 Etsiit)
Waldo Fajardo Contreras
Email- Primer semestre
- Miércoles
- 08:00 a 09:30 (D29 Etsiit)
- 11:30 a 14:30 (D29 Etsiit)
- 15:00 a 16:30 (D29 Etsiit)
- Segundo semestre
- Martes de 10:30 a 13:30 (D29 Etsiit)
- Jueves de 10:30 a 13:30 (D29 Etsiit)
Prerrequisitos y/o Recomendaciones
Los estudiantes no tendrán que tener asignaturas, materias o módulos aprobados como requisito indispensable para cursar el módulo. No obstante, se recomienda la superación de los contenidos y adquisición de competencias de las materias de formación básica.
Breve descripción de contenidos (Según memoria de verificación del Máster)
- Introducción a la Computación.
- Autómatas Finitos y Expresiones Regulares.
- Gramáticas Libres del Contexto.
- Autómatas con PILA.
- Lenguajes Libres del Contexto Determinísticos.
- Lenguajes Dependientes del Contexto.
Competencias
Competencias Generales
- CG09. Capacidad para resolver problemas con iniciativa, toma de decisiones, autonomía y creatividad. Capacidad para saber comunicar y transmitir los conocimientos, habilidades y destrezas de la profesión de Ingeniero Técnico en Informática.
Competencias Específicas
- CE12. Conocimiento y aplicación de los procedimientos algorítmicos básicos de las tecnologías informáticas para diseñar soluciones a problemas, analizando la idoneidad y complejidad de los algoritmos propuestos.
Resultados de aprendizaje (Objetivos)
- Usar con soltura el lenguaje matemático, comprender y generar demostraciones relacionadas con los contenidos.
- Clasificar los lenguajes según el tipo de gramática o máquina requerido.
- Conocer las relaciones de jerarquía entre clases de lenguajes.
- Analizar cuál es el lenguaje generado por una gramática, descrito por una expresión regular o reconocido por una máquina teórica.
- Diseñar autómatas finitos, con pila o máquinas de Turing como modelos para resolver problemas relacionados con el reconocimiento de lenguajes.
- Conocer la relación entre lenguajes y entre máquinas, así como la equivalencia entre distintos tipos de máquinas teóricas y la equivalencia entre máquinas y gramáticas.
- Aplicar algoritmos para realizar conversiones entre especificaciones igual de potentes para un lenguaje.
- Evaluar cuál es la máquina más adecuada para reconocer un lenguaje, atendiendo a la dificultad de tratamiento computacional.
- Conocer los límites de los procesos computacionales y la implicación práctica de la irresolubilidad o intratabilidad de un problema abstracto.
- Conocer la relación entre problemas, funciones y algoritmos, así como la equivalencia entre distintos modelos de computación.
- Aplicar diversos modelos de computación para el cálculo de funciones numéricas o con cadenas.
Programa de contenidos Teóricos y Prácticos
Teórico
Tema 1: Introducción a la computación.
- Conceptos Elementales
- Modelos de Cálculo
- La noción de Gramática Generativa
- Operaciones con Lenguajes
Tema 2: Autómatas Finitos y Expresiones Regulares
- Autómatas Finitos Deterministas
- Autómatas No-Deterministas
- Expresiones Regulares
- Gramáticas Regulares
Tema 3: Propiedades de los Conjuntos Regulares
- Lema de Bombeo y Aplicaciones
- Minimización de Autómatas
Tema 4: Gramáticas Independientes del Contexto
- Introducción
- Arboles de Derivación. Ambigüedad
- Simplificación de Gramáticas
- Formas Normales
Tema 5: Autómatas con Pila
- Definiciones
- Autómatas con Pila y Lenguajes Libres del Contexto
- Autómatas con Pila Deterministas
Tema 6. Propiedades de los Lenguajes Independientes del Contexto.
- Lema de Bombeo.
- Propiedades de Clausura.
- Algoritmos.
Tema 7. Máquinas de Turing
- Máquinas de Turing
- Lenguajes recursivos y recursivamente enumerables
- El problema de la parada para máquinas de Turing
Práctico
Prácticas
- Práctica 1: Resolución de problemas relacionados con Autómatas Finitos y Expresiones Regulares
- Práctica 2: Resolución de problemas relacionados con Gramáticas Independientes del Contexto y Autómatas con Pila.
- Práctica 3: Resolución de Problemas relacionados con Máquinas de Turing.
Seminarios
- Seminario 1: LEX
- Seminario 2: JFLAP
Bibliografía
Bibliografía fundamental
- A.V. Aho, J.D. Ullman, Foundations of Computer Science. W.H. Freeman and Company, New York (1992).
- M. Alfonseca, J. Sancho. M. Matínez, Teoría de Autómatas y Lenguajes Formales. Publicaciones R.A.E.C., Textos Cátedra (1997).
- J.G. Brookshear, Teoría de la Computación. Lenguajes formales, autómatas y complejidad. Addison Wesley Iberoamericana (1993).
- J. Carrol, D. Long, Theory of Finite Automata with an Introduction to Formal Languages. Prentice Hall (1989)
- D.I. Cohen, Introduction to Computer Theory. John Wiley, Nueva York (1991).
- M.D. Davis, E.J. Weyuker, Computability, Complexity, and Languages. Academic Press (1983)
- M.D. Davis, R. Sigal, E.J. Weyuker, Computability, Complexity, and Languages, 2 Edic.. Academic Press (1994)
- M. Harrison, Introduction to Formal Language Theory. Addison-Wesley (1978)
- J.E. Hopcroft, J.D. Ullman, Introduction to Automata Theory, Languages and Computation. Addison-Wesley (1979)
- J.E. Hopcroft, R. Motwani, J.D. Ullman, Introducción a la Teoría de Autómatas, Lenguajes y Computación. Addison Wesley (2002).
- J.M. Howie, Automata and Languages. Oxford University Press, Oxford (1991)
- D. Kelley, Teoría de Autómatas y Lenguajes Formales. Prentice Hall, Madrid (1995)
- H.R. Lewis, C.H. Papadimitriou, Elements of the Theory of Computation. Prentice Hall (1981)
- G.E. Revesz, Introduction to Formal Laguages. Dover Publications, Nueva York (1991)
- T.A. Sudkamp, Languages and Machines. Addison Wesley, Reading (1988)
- R. Weber. Computability Theory. Student Mathematical Library, Volume 62 (2012)
- A. Bechmann et al. Evolving Computability. Springer (2015)
- G. Sommaruga, T. Strahm. Turing’s Revolution: The Impact of His Ideas about Computability. Birkhäuser (2016)
- L. Possati. Games Iteration Numbers: A Philosophical Introduction to Computability Theory: 79 (Studies in Logic). College Publications (2019)
- G.L. Gopalakrishnan. Automata and Computability: A Programmer's Perspective. Chapman and Hall/CRC (2020)
- M. Anselmo. Beyond the Horizon of Computability. Lectures Notes in Computer Science (2020)
Bibliografía complementaria
- R.V. Book, F. Otto, String rewriting systems. Springer-Verlag, Nueva York (1993).
- N.J. Cutland, Computability An introduction to recursive function theory, Cambridge University Press (1980).
- D. Grune, C.J. Ceriel, Parsing techniques: a practical guide. Ellis Horwood, Chichester (1990).
- B.I. Plotkin, J.L. Greenglaz, A.A. Gvarami, Algebraic structures in automata and database theory World Scientific, River Edge (1992).
Enlaces recomendados
- Herramientas para la enseñanza de autómatas y gramáticas en Java (por Susan H. Rodger, Duke University)
- Página del libro de Hopcroft, Motwani, Ullman con material adicional y soluciones de ejercicios
- Aplicaciones de las expresiones regulares
- Cuatro aplicaciones básicas de expresiones regulares
- Programa para trabajar con expresiones regulares
Metodología docente
- MD01. Lección Magistral (Clases Teóricas-Expositivas)
- MD02. Actividades Prácticas (Resolución de Problemas, Resolución de Casos Prácticos, Desarrollo de Proyectos, Prácticas en Laboratorio, Taller de Programación, Aula de Informática, Prácticas de Campo).
Evaluación (instrumentos de evaluación, criterios de evaluación y porcentaje sobre la calificación final)
Evaluación Ordinaria
Para la parte teórica se realizará un examen final. La ponderación de este bloque es del 50%.
Para la parte práctica se realizarán prácticas de laboratorio, resolución de problemas y desarrollo de proyectos (individuales o en grupo), y se valorarán las entregas de los informes/memorias realizados por los alumnos, o en su caso las entrevistas personales con los alumnos, las sesiones de evaluación, asistencia y participación. La ponderación de este bloque es del 50%, compuesto por:
- Notas de problemas: 30%.
- Trabajos Personales, participación en clase y/o Exposición: 20%
La calificación global corresponderá por tanto a la puntuación ponderada de los diferentes aspectos y actividades que integran el sistema de evaluación. Por tanto, el resultado de la evaluación será una calificación numérica obtenida mediante la suma ponderada de las calificaciones correspondientes a una parte teórica, una parte práctica y, en su caso, una parte relacionada con el trabajo autónomo de los alumnos, los seminarios impartidos. Se exigirá una nota mínima de 3.5 sobre 10 puntos tanto en la parte práctica como en la teórica para realizar la suma ponderada.
Todo lo relativo a la evaluación se regirá por la normativa sobre planificación docente y organización de exámenes vigente en la Universidad de Granada.
Evaluación Extraordinaria
En la convocatoria extraordinaria se realizará un examen único que se valorará entre 0 y 10 y tal que incluirá pruebas relativas a la parte teórica y práctica (en un porcentaje del 50% para teoría y 50% práctica)
Evaluación única final
De acuerdo a lo establecido en la Normativa de evaluación y de calificación de los estudiantes de la Universidad de Granada vigente, la evaluación será preferentemente continua. No obstante, el estudiante que no pueda acogerse a dicho sistema por motivos laborales, estado de salud, discapacidad, programas de movilidad o cualquier otra causa debidamente justificada podrá acogerse a la evaluación única final. Para ello deberá solicitarlo al Director del Departamento o al Coordinador del Máster en las dos primeras semanas de impartición de la asignatura o, excepcionalmente, en las dos primeras semanas tras la matriculación en la asignatura.
Esta modalidad de evaluación se realizará en un único acto académico en la fecha establecida por el Centro y consistirá en un examen escrito (evaluado de 0 a 10) que incluirá preguntas tanto de tipo teórico como práctico que garanticen que el alumno ha adquirido la totalidad de las competencias descritas en esta misma guía docente.