Datos Identificativos 2023/24
Asignatura (*) Autómatas y Lenguajes Formales Código 614G03017
Titulación
Grao en Intelixencia Artificial
Descriptores Ciclo Periodo Curso Tipo Créditos
Grado 2º cuatrimestre
Segundo Obligatoria 6
Idioma
Castellano
Modalidad docente Presencial
Prerrequisitos
Departamento Ciencias da Computación e Tecnoloxías da Información
Coordinador/a
Gómez Rodríguez, Carlos
Correo electrónico
carlos.gomez@udc.es
Profesorado
De Moura Ramos, Jose Joaquim
Figueroa Triana, Jorge
Gómez Rodríguez, Carlos
Molinelli Barba, Jose Maria
Roca Rodríguez, Diego
Correo electrónico
joaquim.demoura@udc.es
jorge.figueroa@udc.es
carlos.gomez@udc.es
jose.molinelli@udc.es
d.roca1@udc.es
Web http://campusvirtual.udc.es
Descripción general Trátase dunha materia na que destaca o carácter integrador do seu contido, xa que serve de ponte entre o que podemos denominar unha "visión de usuario" das linguaxes informáticas, representada pola programación estándar, e unha "visión xerativa" destas, na que o alumno constrúe e adecúa unha linguaxe de programación en atención aos seus requirimentos. Finalmente, transmítese tamén ao alumno unha visión formal dos fundamentos propios da ciencia da computación.

Competencias del título
Código Competencias del título
A2 Capacidad para resolver problemas de inteligencia artificial que precisen algoritmos, aplicando correctamente metodologías de desarrollo software y diseño centrado en usuario/a.
A3 Capacidad para comprender y dominar los conceptos básicos de lógica, gramáticas y lenguajes formales para analizar y mejorar las soluciones basadas en inteligencia artificial.
B2 Que el alumnado sepa aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posea las competencias que suelen demostrarse por medio de la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio.
B3 Que el alumnado tenga la capacidad de reunir e interpretar datos relevantes (normalmente dentro de su área de estudio) para emitir juicios que incluyan una reflexión sobre temas relevantes de índole social, científica o ética.
B4 Que el alumnado pueda transmitir información, ideas, problemas y soluciones a un público tanto especializado como no especializado.
B5 Que el alumnado haya desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía.
B6 Capacidad para concebir, redactar, organizar, planificar, y desarrollar modelos, aplicaciones y servicios en el ámbito de la inteligencia artificial, identificando objetivos, prioridades, plazos recursos y riesgos, y controlando los procesos establecidos.
B7 Capacidad para resolver problemas con iniciativa, toma de decisiones, autonomía y creatividad.
B8 Capacidad para diseñar y crear modelos y soluciones de calidad basadas en Inteligencia Artificial que sean eficientes, robustas, transparentes y responsables.
B9 Capacidad para seleccionar y justificar los métodos y técnicas adecuadas para resolver un problema concreto, o para desarrollar y proponer nuevos métodos basados en inteligencia artificial.
B10 Capacidad para concebir nuevos sistemas computacionales y/o evaluar el rendimiento de sistemas existentes, que integren modelos y técnicas de inteligencia artificial.
C2 Capacidad de trabajo en equipo, en entornos interdisciplinares y gestionando conflictos.
C3 Capacidad para crear nuevos modelos y soluciones de forma autónoma y creativa, adaptándose a nuevas situaciones. Iniciativa y espíritu emprendedor.

Resultados de aprendizaje
Resultados de aprendizaje Competencias del título
Comprender los conceptos de la teoría de autómatas y de los lenguajes formales, y estudiar sus aplicaciones. A2
A3
B2
B3
B4
B9
C2
Conocer los diferentes modelos de máquinas computacionales, gramáticas y lenguajes formales, así como la correspondencia entre autómatas, lenguajes y gramáticas. A2
A3
B5
B6
B7
B8
B9
B10
C3
Asimilar y aplicar los conceptos de decidibilidad y complejidad computacional. A2
A3
B2
B3
B5
B6
B7
B8
B10
C2
C3

Contenidos
Tema Subtema
Preliminares sobre lenguajes formales Alfabetos, palabras y lenguajes
Lenguajes regulares y expresiones regulares
Autómatas finitos
Lenguajes independientes del contexto y autómatas de pila Gramáticas regulares
Gramáticas regulares y lenguajes regulares
Gramáticas independientes del contexto
Arboles de derivación y ambigüedad
Simplificación de gramáticas independientes del contexto
Propiedades de los lenguajes independientes del contexto
Algoritmos de análisis sintáctico
Autómatas de pila
Forma normal de Greibach
Máquinas de Turing Definiciones básicas
Máquinas de Turing como aceptadoras de lenguajes
Construcción de máquinas de Turing
Modificaciones de las máquinas de Turing
Máquina de Turing universal
Lenguajes recursivamente enumerables Lenguajes aceptados por máquinas de Turing
Lenguajes regulares e independientes del contexto como lenguajes recursivos
Propiedades de los lenguajes recursivos y recursivamente enumerables
Gramáticas no restringidas y lenguajes recursivamente enumerables
Lenguajes sensibles al contexto y la jerarquía de Chomsky
Resolubilidad El problema de la parada
El problema de correspondencia de Post
Problemas no decidibles en lenguajes independientes del contexto
Computabilidad Fundamentos de la teoría de funciones recursivas
Alcance de las funciones recursivas primitivas
Funciones recursivas parciales
El poder de los lenguajes de programación

Planificación
Metodologías / pruebas Competéncias Horas presenciales Horas no presenciales / trabajo autónomo Horas totales
Sesión magistral B3 B4 B5 B6 B9 B10 C3 24 18 42
Solución de problemas B3 B4 B5 B6 B9 B10 C3 3 9 12
Prueba de respuesta breve B3 B4 B5 B6 B9 B10 C3 3 12 15
Prácticas de laboratorio A2 A3 B2 B6 B7 B8 B9 B10 C2 C3 30 30 60
Prueba objetiva B3 B4 B5 B6 B9 B10 C3 3 12 15
 
Atención personalizada 6 0 6
 
(*)Los datos que aparecen en la tabla de planificación són de carácter orientativo, considerando la heterogeneidad de los alumnos

Metodologías
Metodologías Descripción
Sesión magistral La técnica que mejor se adapta a la impartición de los contenidos teóricos de esta asignatura está constituida por las clases magistrales. En ellas, haremos un uso intensivo de la pizarra virtual y de las transparencias, de modo que el ritmo de exposición de conceptos por parte del profesor y el de asimilación de los mismos por parte del alumno sean lo más acordes posible.
Solución de problemas Se pondrán a disposición de los alumnos una serie de boletines de ejercicios, correspondientes a los bloques temáticos del programa de la asignatura. Los alumnos deberán elaborar sus soluciones personales a estos ejercicios. El profesor deberá comentar las soluciones durante al menos una sesión.
Prueba de respuesta breve Se realizarán controles al final de cada bloque temático, que permitirán al profesor conocer el grado de asimilación de la materia por parte de los alumnos, y modificar la estrategia docente si es necesario.
Prácticas de laboratorio Estas prácticas serán utilizadas para implementar en algún lenguaje de programación los algoritmos más destacados, de entre todos aquéllos que hayan sido presentados en las sesiones teóricas.
Prueba objetiva Se implementará bajo la forma de un examen final escrito.

Atención personalizada
Metodologías
Prácticas de laboratorio
Descripción
Dado el carácter personalizado de las prácticas de laboratorio y de las tutorías, estas actividades no deben dedicarse a extender los contenidos con nuevos conceptos, sino a aclarar los conceptos ya expuestos.

El profesor debe además utilizarlas como una interacción que le permita extraer conclusiones respecto al grado de asimilación de la materia por parte de los alumnos.

De esta manera, podrá desarrollar las clases magistrales y el resto de actividades no personalizadas atendiendo al progreso de los alumnos en las capacidades de comprensión y asimilación de los contenidos impartidos, compaginando el avance general de la clase con una atención específica a aquellos alumnos que presenten mayores dificultades en la tarea del aprendizaje y con un apoyo adicional a aquellos otros que presenten mayor soltura y deseen ampliar conocimientos.

Evaluación
Metodologías Competéncias Descripción Calificación
Prácticas de laboratorio A2 A3 B2 B6 B7 B8 B9 B10 C2 C3 Implementación de algoritmos en algún lenguaje de programación y resolución de problemas. (*) 40
Prueba de respuesta breve B3 B4 B5 B6 B9 B10 C3 Controles con cuestiones teóricas y prácticas al final de cada bloque temático. (**) 60
Prueba objetiva B3 B4 B5 B6 B9 B10 C3 Examen final escrito. (***) 0
 
Observaciones evaluación

(*) En las prácticas de laboratorio, se requiere que el alumno obtenga una nota mínima de 3 puntos (sobre 10).

(**) La materia se dividirá en tres bloques temáticos. Al final de cada bloque temático, se realizará un control con cuestiones teóricas y prácticas. Cada control podrá consolidar hasta un 20% de la calificación. El porcentaje correspondiente a los controles no superados pasará a computarse en la prueba objetiva (examen final). Los alumnos que superen los tres controles, no tendrán que realizar el examen final.

(***) En el caso de tener que realizar el examen final, se requiere que el alumno obtenga una nota mínima de 3 puntos (sobre 10).

Los alumnos a tiempo parcial tendrán consideraciones adecuadas a su situación.


Fuentes de información
Básica John E. Hopcroft, Rajeev Motwani, Jeffrey D. Ullman (2002). Introducción a la teoría de autómatas, lenguajes y computación. Addison Wesley
Thomas A. Sudkamp (1988). Languages and machines: an introduction to the theory of computer science. Addison Wesley
Dean Kelley (1995). Teoría de autómatas y lenguajes formales . Prentice Hall

Complementária Alan P. Parkes (2008). A concise introduction to languages and machines. Springer-Verlag
Maxim Mozgovoy (2010). Algorithms, languages, automata and compilers, a practical approach. Jones & Bartlet Learning Publishers
Peter Linz (2017). An introduction to formal languages and automata. Jones & Bartlet Learning
Harry R. Lewis, Christos H. Papadimitriou (1998). Elements of the theory of computation . Prentice Hall
Peter J. Denning, Jack B. Dennis, Joseph E. Qualitz (1978). Machines, languages and computation . Prentice Hall
J. Glenn Brookshear (1993). Teoría de la computación: lenguajes formales, autómatas y complejidad . Addison Wesley Iberoamericana


Recomendaciones
Asignaturas que se recomienda haber cursado previamente
Programación II/614G03007
Álgebra/614G03001
Cálculo y Análisis Numérico/614G03002
Algoritmos/614G03008

Asignaturas que se recomienda cursar simultáneamente

Asignaturas que continúan el temario
Representación del Conocimiento y Razonamiento/614G03020

Otros comentarios

- Según se recoge en las distintas normativas de aplicación para la docencia universitaria se incorporará la perspectiva de género en esta asignatura (se usará lenguaje no sexista, se propiciará la intervención en clase de alumnos y alumnas, etc.).

- Se trabajará para identificar y modificar prejuicios y actitudes sexistas y se influirá en el entorno para modificarlos y fomentar valores de respeto e igualdad.

- En caso de detectar situaciones de discriminación por razón de género se propondrán acciones y medidas para corregirlas.



(*) La Guía Docente es el documento donde se visualiza la propuesta académica de la UDC. Este documento es público y no se puede modificar, salvo cosas excepcionales bajo la revisión del órgano competente de acuerdo a la normativa vigente que establece el proceso de elaboración de guías