Identifying Data 2023/24
Subject (*) Automata and Formal Languages Code 614G03017
Study programme
Grao en Intelixencia Artificial
Descriptors Cycle Period Year Type Credits
Graduate 2nd four-month period
Second Obligatory 6
Language
Spanish
Teaching method Face-to-face
Prerequisites
Department Ciencias da Computación e Tecnoloxías da Información
Coordinador
Gómez Rodríguez, Carlos
E-mail
carlos.gomez@udc.es
Lecturers
De Moura Ramos, Jose Joaquim
Figueroa Triana, Jorge
Gómez Rodríguez, Carlos
Molinelli Barba, Jose Maria
Roca Rodríguez, Diego
E-mail
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
General description 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.

Study programme competencies
Code Study programme competences
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.

Learning aims
Learning outcomes Study programme competences
Comprender os conceptos da teoría de autómatas e das linguaxes formais, e estudar as súas aplicacións. A2
A3
B2
B3
B4
B9
C2
Coñecer os diferentes modelos de máquinas computacionales, gramáticas e linguaxes formais, así como a correspondencia entre autómatas, linguaxes e gramáticas. A2
A3
B5
B6
B7
B8
B9
B10
C3
Asimilar e aplicar os conceptos de decidibilidade e complexidade computacional. A2
A3
B2
B3
B5
B6
B7
B8
B10
C2
C3

Contents
Topic Sub-topic
Preliminares sobre linguaxes formais Alfabetos, palabras e linguaxes
Linguaxes regulares e expresións regulares
Autómatas finitos
Linguaxes independentes do contexto e autómatas de pila Gramáticas regulares
Gramáticas regulares e linguaxes regulares
Gramáticas independentes do contexto
Árbores de derivación e ambigüidade
Simplificación de gramáticas independentes do contexto
Propiedades das linguaxes independentes do contexto
Algoritmos de análise sintáctico
Autómatas de pila
Forma normal de Greibach
Máquinas de Turing Definicións básicas
Máquinas de Turing como aceptadoras de linguaxes
Construción de máquinas de Turing
Modificacións das máquinas de Turing
Máquina de Turing universal
Linguaxes recursivamente enumerables Linguaxes aceptadas por máquinas de Turing
Linguaxes regulares e independentes do contexto como linguaxes recursivas
Propiedades das linguaxes recursivas e recursivamente enumerables
Gramáticas non restrinxidas e linguaxes recursivamente enumerables
Linguaxes sensibles ao contexto e a xerarquía de Chomsky
Resolubilidade O problema da parada
O problema de correspondencia de Post
Problemas non decidibles en linguaxes independentes do contexto
Computabilidade Fundamentos da teoría de funcións recursivas
Alcance das funcións recursivas primitivas
Funcións recursivas parciais
O poder das linguaxes de programación

Planning
Methodologies / tests Competencies Ordinary class hours Student’s personal work hours Total hours
Guest lecture / keynote speech B3 B4 B5 B6 B9 B10 C3 24 18 42
Problem solving B3 B4 B5 B6 B9 B10 C3 3 9 12
Short answer questions B3 B4 B5 B6 B9 B10 C3 3 12 15
Laboratory practice A2 A3 B2 B6 B7 B8 B9 B10 C2 C3 30 30 60
Objective test B3 B4 B5 B6 B9 B10 C3 3 12 15
 
Personalized attention 6 0 6
 
(*)The information in the planning table is for guidance only and does not take into account the heterogeneity of the students.

Methodologies
Methodologies Description
Guest lecture / keynote speech A técnica que mellor se adapta á impartición dos contidos teóricos desta materia está constituída polas clases maxistrais. Nelas, faremos un uso intensivo da lousa virtual e das transparencias, de modo que o ritmo de exposición de conceptos por parte do profesor e o de asimilación dos mesmos por parte do alumno sexan o máis acordes posible.
Problem solving Poranse a disposición dos alumnos unha serie de boletíns de exercicios, correspondentes aos bloques temáticos do programa da materia. Os alumnos deberán elaborar as súas solucións persoais a estes exercicios. O profesor deberá comentar as solucións durante polo menos unha sesión.
Short answer questions Realizaranse controles ao final de cada bloque temático, que permitirán ao profesor coñecer o grao de asimilación da materia por parte dos alumnos, e modificar a estratexia docente se é necesario.
Laboratory practice Estas prácticas serán utilizadas para implementar nalgunha linguaxe de programación os algoritmos máis destacados, de entre todos aqueles que fosen presentados nas sesións teóricas.
Objective test Implementarase baixo a forma dun exame final escrito.

Personalized attention
Methodologies
Laboratory practice
Description
Dado o carácter personalizado das prácticas de laboratorio e das titorías, estas actividades non deben dedicarse a estender os contidos con novos conceptos, senón a aclarar os conceptos xa expostos.

O profesor debe ademais utilizalas como unha interacción que lle permita extraer conclusións respecto ao grao de asimilación da materia por parte dos alumnos.

Desta maneira, poderá desenvolver as clases maxistrais e o resto de actividades non personalizadas atendendo ao progreso dos alumnos nas capacidades de comprensión e asimiliación dos contidos impartidos, compaxinando o avance xeral da clase cunha atención específica a aqueles alumnos que presenten maiores dificultades na tarefa da aprendizaxe e cun apoio adicional a aqueles outros que presenten maior soltura e desexen ampliar coñecementos.

Assessment
Methodologies Competencies Description Qualification
Laboratory practice A2 A3 B2 B6 B7 B8 B9 B10 C2 C3 Implementación de algoritmos nalgunha linguaxe de programación e resolución de problemas. (*) 40
Short answer questions B3 B4 B5 B6 B9 B10 C3 Controles con cuestións teóricas e prácticas ao final de cada bloque temático. (**) 60
Objective test B3 B4 B5 B6 B9 B10 C3 Exame final escrito. (***) 0
 
Assessment comments

(*) Nas prácticas de laboratorio, requírese que o alumno obtenga unha nota mínima de 3 puntos (sobre 10).

(**) A materia dividirase en tres bloques temáticos. Ao final de cada bloque temático, realizarase un control con cuestións teóricas e prácticas. Cada control poderá consolidar ata un 20% da cualificación. A porcentaxe correspondente aos controles non superados pasará a computarse na proba obxectiva (examen final). Os alumnos que superen os tres controles, non terán que realizar o exame final.

(***) No caso de ter que realizar o exame final, requírese que o alumno obtenga unha nota mínima de 3 puntos (sobre 10).

Os alumnos a tempo parcial terán consideracións adecuadas á súa situación.


Sources of information
Basic 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

Complementary 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


Recommendations
Subjects that it is recommended to have taken before
Programming II/614G03007
Algebra/614G03001
Calculus and Numerical Analysis/614G03002
Algorithms/614G03008

Subjects that are recommended to be taken simultaneously

Subjects that continue the syllabus
Knowledge Representation and Reasoning/614G03020

Other comments

-Segundo se recolle nas distintas normativas de aplicación para a docencia universitaria incorporarase a perspectiva de xénero nesta materia (usarase linguaxe non sexista, propiciarase a intervención en clase de alumnos e alumnas., etc.).

-Traballarase para identificar e modificar prexuízos e actitudes sexistas e influirase na contorna para modificalos e fomentar valores de respecto e igualdade.

- No caso de detectar situacións de discriminación por razón de xénero proporanse accións e medidas para corrixilas.



(*)The teaching guide is the document in which the URV publishes the information about all its courses. It is a public document and cannot be modified. Only in exceptional cases can it be revised by the competent agent or duly revised so that it is in line with current legislation.