Lenguajes, Computación y Sistemas Inteligentes - 26021

Centro
Escuela Universitaria de Ingeniería de Vitoria-Gasteiz
Titulación
Grado en Ingeniería Informática de Gestión y Sistemas de Información
Curso académico
2017/18
Curso
2
Nº Créditos
6
Idiomas
Castellano

Docenciatoggle-navigation

Distribución de horas por tipo de enseñanza
Tipo de docenciaHoras de docencia presencialHoras de actividad no presencial del alumno/a
Magistral4567.5
P. Laboratorio1522.5

Guía docentetoggle-navigation

Descripción y Contextualización de la Asignaturatoggle-navigation

Los contenidos de esta asignatura pertenecen a una rama clásica de la informática teórica, anterior a los ordenadores modernos. Parte de la teoría de autómatas y lenguajes formales, que se aplica directamente a la definición de lenguajes de programación y la construcción de compiladores.

Los formalismos abordado permiten abstraer el concepto computador/computación para analizar la computabilidad, complejidad y tratabilidad de los algoritmos, utilizados en áreas actuales como la optimización de algoritmos y la criptografía.

Se utiliza el álgebra de conjuntos y la especificación/descripción formal de los lenguajes por lo que es interesante haber cursado la asignatura de Metodología de la Programación del primer curso de este Grado y en particular la especificación.

Se introducen reconocedores y generadores de lenguajes. Se estudian algoritmos que muestran la relación/transformación entre autómatas, Máquinas de Turing, expresiones regulares y gramáticas, así como sus propiedades. La utilización de simuladores permiten visualizar y verificar su ejecución en equipo, comprobando los resultados obtenidos en papel.

Se introducen conceptos de Inteligencia Artificial como modelos alternativos de computación. Estos aspectos se ven con mayor profundidad en la asignatura de Sistemas de Apoyo a la Decisión del tercer curso de este Grado.

Competencias/ Resultados de aprendizaje de la asignaturatoggle-navigation

Identificar y resolver problemas abordables mediante modelos computacionales restringidos (autómatas) o alternativos (sistemas inteligentes).

Utilizar gramáticas y expresiones regulares para definir lenguajes formales.

Utilizar software de reconocimiento y procesamiento de patrones.

Comprensión de la existencia de límites intrínsecos a los procesos computacionales y de sus consecuencias.

Conocer y utilizar diferentes paradigmas de programación y modelos alternativos de computación.

Trabajar y analizar problemas y sus soluciones computacionales haciendo uso del lenguaje verbal, matemático y gráfico

Contenidos teórico-prácticostoggle-navigation

Computación sin memoria Autómatas y traductores finitos. Lenguajes y expresiones regulares. Aplicaciones: análisis léxico

Memoria con restricciones Autómatas con pila. Gramáticas y lenguajes incontextuales. Autómatas lineales acotados. Aplicaciones: análisis sintáctico.

El modelo general de computador y sus limitaciones Máquinas de Turing. Universalidad computacional y Tesis de Church-Turing. Incomputabilidad. Introducción a la complejidad computacional. Aplicaciones: criptografía de clave pública.

Alternativas al modelo de computación Modelos de máquina y paradigmas de programación. Circuitos y máquinas reales. Programas imperativos, funcionales y lógicos. Aplicaciones: razonamiento automático

Alternativas al modelo de problema Especificaciones no funcionales. Árboles de decisión. Clasificadores. Programación probabilística. Aplicaciones: sistemas que aprenden.

Metodologíatoggle-navigation

En las clases magistrales (M) se describen los diferentes fundamentos teóricos de la asignatura, introduciéndose algoritmos a modo de ejercicios resueltos en clase. Se proponen nuevos ejercicios a ser resueltos en grupos de dos en los laboratorios (PL), cuya comprobación se realizará mediante simuladores de autómatas (JFLAP).

Sistemas de evaluacióntoggle-navigation

  • Sistema de Evaluación Final
  • Herramientas y porcentajes de calificación:
    • Prueba escrita a desarrollar (%): 75
    • Realización de prácticas (ejercicios, casos o problemas) (%): 25

Convocatoria Ordinaria: Orientaciones y Renunciatoggle-navigation

Para aprobar la asignatura es necesario obtener al menos cinco puntos sobre 10.

Se realizarán tres exámenes parciales del 75% de la nota de la asignatura. Para la convocatoria ordinaria se realizará una repesca opcional de cada uno de los tres bloques para mejorar la nota.

Se valorará con un 25% de la nota los laboratorios, realizándose pruebas individualizadas tras su finalización.

Si se renuncia a la evaluación continua se realizará un examen final del 100% de la nota. Esta renuncia deberá ser notificada al profesor antes de la 9ª semana de acuerdo con la normativa existente.

Si no se asiste al final se considerará no presentado.

Convocatoria Extraordinaria: Orientaciones y Renunciatoggle-navigation

Para la convocatoria extraordinaria se realizará un examen final del 100% de la nota. No se guarda ninguna nota de evaluaciones anteriores.

Materiales de uso obligatoriotoggle-navigation

Apuntes de la asignatura y simulador JFLAP.

Bibliografíatoggle-navigation

Bibliografía básica

Ramón F. BRENA; "Autómatas y Lenguajes. Un enfoque de diseño", Tec de Monterrey, 2003.

Elaine RICH, "Automata, Computability and Complexity. Theory and Applications", Pearson/Prentice Hall, 2008

J.E. HOPCROFT, R. MOTWANI, J.D. ULLMAN: "Teoría de Autómatas, Lenguajes y Computación" 3ª ed. Pearson educación, 2007

S. RUSSELL, P. NORVIG: "Artificial Intelligence: A Modern Approach" 2ª ed. Prentice Hall, 2003

S.H. RODGER, T.W. FINLEY; "JFLAP: An Interactive Formal Languages and Automata Package". Jones and Bartlett, 2006

Bibliografía de profundización

ACISSI - Marion Agé et al., Seguridad informática - Hacking Ético, Ediciones ENI, 2015 (3ª edición).

D. WOOD; "Theory of computation". John Wiley & Sons, 1987.

S. ARORA, B. BARAK: "Computational Complexity: A Modern Approach" Cambridge University, 2009.

T. MITCHELL: "Machine Learning" McGraw Hill, 1997

G.F. LUGER, W.A. STUBBLEFIELD: "Artificial Intelligence. Structures and Strategies for Complex Problem Solving." Benjamin/Cummings Publishing Company, Inc, 1998.

Direcciones web

Java Computability Tool kit (JCT): http://humboldt.sunyit.edu/jct/

Visual and interctive tools (JFLAP): http://www.jflap.org/

Machine Learning theory and examples: http://www.cs.cmu.edu/~avrim/ML07/index.html

Implementación de algoritmos de IA en Java: https://github.com/aima-java/aima-java

Tribunal de convocatorias 5ª, 6ª y excepcionaltoggle-navigation

  • ETXEBERRIA AGIRIANO, ISMAEL
  • GONZALEZ NALDA, PABLO
  • IBAÑEZ ANFURRUTIA, FELIPE

Grupostoggle-navigation

16 Teórico (Castellano - Tarde)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
1-15

15:00-16:00

15:00-17:00

Profesorado

Aula(s) impartición

  • AULA 204 - AULARIO LAS NIEVES

16 P. Laboratorio-1 (Castellano - Tarde)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
1-15

17:00-18:00

Profesorado

Aula(s) impartición

  • AI1.2 - E.U. INGENIERIA DE VITORIA GASTEIZ

16 P. Laboratorio-2 (Castellano - Tarde)Mostrar/ocultar subpáginas

Calendario
SemanasLunesMartesMiércolesJuevesViernes
1-15

18:00-19:00

Profesorado

Aula(s) impartición

  • AI1.2 - E.U. INGENIERIA DE VITORIA GASTEIZ