Guía docente de Modelos de Computación (2161146)

Curso 2023/2024
Fecha de aprobación: 23/06/2023

Grado

Grado en Ingeniería Informática y Administración y Dirección de Empresas

Rama

Ciencias Sociales y Jurídicas

Módulo

Formación Específica de Rama

Materia

Programación e Ingeniería de Software

Curso

4

Semestre

1

Créditos

6

Tipo

Obligatoria

Profesorado

Teórico

Serafín Moral Callejón. Grupo: A

Práctico

Waldo Fajardo Contreras Grupo: 1

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

  • Hopcroft, J. E., Motwani, R., & Ullman, J. D. (2010). Introducción a la teoría de autómatas, lenguajes y computación / John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman (3a ed.). Pearson.
  • Gopalakrishnan, G. (2020). Automata and Computability: A Programmer’s Perspective. CRC Press.
  • Weber, R. (2012). Computability Theory. American Mathematical Soc.
  • Sommaruga, G., & Strahm, T. (2015). Turing’s Revolution [electronic resource] : The Impact of His Ideas about Computability / edited by Giovanni Sommaruga, Thomas Strahm. (G. Sommaruga & T. Strahm, Eds.; 1st ed. 2015.). Springer International Publishing. https://doi.org/10.1007/978-3-319-22156-4
  • Carroll, J., & Long, D. (1989). Theory of finite automata with an introduction to formal languages. Prentice-Hall International.
  • Beckmann, A., Mitrana, V., & Soskova, M. (2015). Evolving Computability [electronic resource] : 11th Conference on Computability in Europe, CiE 2015, Bucharest, Romania, June 29-July 3, 2015. Proceedings / edited by Arnold Beckmann, Victor Mitrana, Mariya Soskova. (A. Beckmann, V. Mitrana, & M. Soskova, Eds.; 1st ed. 2015.). Springer International Publishing. https://doi.org/10.1007/978-3-319-20028-6.

Bibliografía complementaria

  • Aho, A. V., & Ullman, J. D. (1992). Foundations of computer science. Computer Science Press.
  • Alfonseca Cubero, E., Alfonseca, M., & Moriyón Salomón, R. (2007). Teoría de autómatas y lenguajes formales / Enrique Alfonseca Cubero, Manuel Alfonseca Moreno, Roberto Moriyón Salomón. McGraw-Hill.
  • Brookshear, J. G., & Morales Peake, E. (1993). Teoría de la computación : lenguajes formales, autómatas y complejidad. Addison Wesley Iberoamericana.
  • Cohen, D. I. A. (1991). Introduction to computer theory / Daniel I.A. Cohen (rev. ed). John Wiley.
  • Davis, M. D., Sigal, R., & Weyuker, E. J. (1994). Computability, complexity, and languages : fundamentals of theoretical computer science / Martin D. Davis, Ron Sigal, Elaine J. Weyuker (2nd. ed). Academic Press.
  • Harrison, M. A. (1978). Introduction to formal language theory. Addison Wesley.
  • Howie, J. M. (1991). Automata and languages / John M. Howie. Clarendon Press.
  • Kelley, D., & Díez Platas, M. L. (2001). Teoría de autómatas y lenguajes formales / Dean Kelly ; traducción Mª Luísa Díez Platas. Prentice-Hall.
  • Lewis, H. R., & Papadimitriou, C. H. (1981). Elements of the theory of computation. Prentice-Hall.
  • Revesz, G. E. (1991). Introduction to formal languages / György E. Révész. Dover.
  • Sudkamp, T. A. (2007). Languages and machines : an introduction to the theory of computer science / Thomas A. Sudkamp (3rd. ed.). Pearson Education.
  • Possati, L. (2019). Games Iteration Numbers: A Philosophical Introduction to Computability Theory: 79 (Studies in Logic). College Publications.
  • Anselmo, M., Della Vedova, G., Manea, F., & Pauly, A. (2020). Beyond the Horizon of Computability [electronic resource] : 16th Conference on Computability in Europe, CiE 2020, Fisciano, Italy, June 29–July 3, 2020, Proceedings / edited by Marcella Anselmo, Gianluca Della Vedova, Florin Manea, Arno Pauly. (M. Anselmo, G. Della Vedova, F. Manea, & A. Pauly, Eds.; 1st ed. 2020.). Springer International Publishing. https://doi.org/10.1007/978-3-030-51466-2
  • Book, R.V., Otto, F. (1993). String rewriting systems. Springer-Verlag, Nueva York.
  • Cutland, N. (1994). Computability : an introduction to recursive function theory. Cambridge University Press.
  • Grune, D., & Jacobs, C. J. H. (2008). Parsing Techniques [electronic resource] : A Practical Guide / by Dick Grune, Ceriel J.H. Jacobs. (2nd ed. 2008.). Springer New York. https://doi.org/10.1007/978-0-387-68954-8
  • Plotkin, B. I., Gvaramija, A. A., & Greenglaz, L. J. (1992). Algebraic structures in automata and databases theory. World Scientific.

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). 
  • MD03.  Seminarios (Debates, Demos, Exposición de Trabajos Tutelados, Conferencias, Visitas Guiadas, Monografías). 
  • MD04. Actividades no presenciales Individuales. 
  • MD05. Actividades no presenciales Grupales. 
  • MD06. Tutorías Académicas. 

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. La ponderación de este bloque es del 50%.

Para la parte práctica se realizará resolución de problemas o el desarrollo de proyectos (individuales o en grupo), entregas de informes/memorias solicitados a los estudiantes, entrevistas personales con los alumnos, sesiones de evaluación 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.