Ir al contenido

Inicio
ETSIINF en Twitter ETSIINF en Facebook
Inicio > Estudios > Grado en Ingeniería Informática > Optativas 8º semestre

Asignaturas optativas de 8º semestre (curso 2018-19)

En esta página se recoge información descriptiva de las asignaturas optativas de 8º semestre del Grado en Ingeniería Informática, recogidas en orden alfabético:

Algoritmos geométricos (3 ECTS)

Descripción

En esta asignatura construirás desde cero tu propia librería de algoritmos geométricos con Python. De forma progresiva, partiendo de funciones básicas, llegarás a implementar algoritmos para calcular envolventes, mallas irregulares y diagramas de Voronoi. Finalmente descubrirás la gran cantidad de aplicaciones útiles de estas estructuras geométricas.

Diagrama de Voronoi 

Requisitos recomendados

Interés por la programación geométrica.

Profesor de contacto

Manuel Abellanas: mabellanas@fi.upm.es

Aplicaciones de la biometría de la voz (3 ECTS)

Descripción

Los principales objetivos de la asignatura se resumen en:

Requisitos recomendados

Ninguno específico.

Profesor de contacto

Agustín Álvarez Marquina: agustin@junipera.datsi.fi.upm.es

Arquitectura del data warehouse (3 ECTS)

Descripción

Los contenidos de la asignatura ADW responden a los siguientes objetivos:

Se plantean durante el curso varios casos prácticos en los que se trabajará extensamente con SQL, MySQL, herramientas ETL (Pentaho) y otras relacionadas con escenarios de Business Intelligence

A modo de iniciación se recomienda consultar el siguiente enlace: https://www.tutorialspoint.com/dwh/index.htm

Deben tenerse en cuenta las siguientes consideraciones:

Esquema de arquitectura lógica de data warehouse

Requisitos recomendados

Profesor de contacto

Santiago Eibe: seibe@fi.upm.es

Computabilidad, fundamentos y aplicaciones (3 ECTS)

Descripción

Supongamos que Alice y Bob estén implementando un sistema informático. Alice se encuentra con un fragmento de código P que quiere reutilizar, pero no está segura de lo que el código hace. Por esto pide a Bob que le diga lo que P calcula (Nota: este programa está escrito en el lenguaje usado por el analizador Interproc; se trata de una lenguaje muy sencillo que cualquier informático con conocimientos de algún lenguaje imperativo puede entender fácilmente):

proc p(a:int) returns (b:int) // rutina
begin
    b = a*2;
end

var x:int, y:int; // programa principal que llama p
begin
    x = 20;
    y = p(x);
end

Es muy fácil entender el resultado del cálculo de P, así que Bob puede contestar a la pregunta en pocos segundos y sin ningún impedimento.

Ahora supongamos que Alice encuentra otro fragmento de código, Q, y, otra vez, quiere usarlo en su sistema. Para ello, pide a Bob que eche un vistazo a Q y le diga lo que calcula (Nota: para los que tengan dudas, "/" es la división entera y "%" es el resto):

proc p(a:int) returns (b:int) // rutina
  var c1:int, c2:int, c3:int;
  begin
    c1 = a / 3;
    c2 = a % 3 - 1;
    b = c2;
    c3 = c1;
    while (c3>0) do
        b = b + c3 % 3 + 2;
        c3 = c3 - 1;
    done;
    if (c2 > 1) then 
        b = b + 2;
    else 
        b = b + c2 + 1;
    endif;
    b = b + c1 * 3;
    if (c1 % 3 == 2) then 
        b = b + c3;
    else 
        b = b + 1;
    endif;
  end

var x:int, y:int; // programa principal
begin
    x = 20;
    y = p(x);
end

Es evidente que entender lo que hace Q es mucho más difícil, así que Bob tarda un buen rato para contestar. Sin embargo, el resultado final es que... ¡P y Q calculan exactamente lo mismo!

En general, Bob podrá con cualquier fragmento de código, y encontrará una respuesta para todas las preguntas que Alice le pueda poner. Lo malo es que podría tardar muchísimo (no sería muy difícil producir programas mucho más largos y complejos que sigan calculando la misma función). Por esto los informáticos intentan desarrollar unos programas, que llamaremos analizadores, que realicen el trabajo de Bob tardando mucho menos y con un mayor nivel de fiabilidad.

Lo que pasa es que ni siquiera el analizador más potente podrá contestar a todas las preguntas de Alice: siempre habrá un programa para el que no sabrá dar una respuesta (en este caso, que el valor final de "y" es 40).

En este curso vamos a entender por qué pasa esto.

Requisitos recomendados

Profesor de contacto

Damiano Zanardini: damiano@fi.upm.es

Computación de alto rendimiento (3 ECTS)

Descripción

Este curso es una introducción a la disciplina de la computación de altas prestaciones o HPC (High Performance Computing). Presenta algunos de los principales avances tecnológicos que emplea, tanto en la vertiente hardware (paralelismo interno, multiprocesadores y multicores, procesadores gráficos y vectoriales, etc.) como software. Se hace mayor hincapié en este segundo aspecto, con sesiones de clase siempre en aulas informáticas, y se presentan y experimentan, con pequeñas prácticas, diferentes estándares de programación paralela como OpenMP, MPI y CUDA --este último para la programación de GPUs-- y también una primera aproximación al campo de la vectorización y el profiling de programas paralelos, en este último caso mediante el uso de la heramienta valgrind.

Requisitos recomendados

No se necesitan conocimientos especiales. sólo los que se supone que debe poseer cualquier alumno de octavo cuatrimestre sobre Arquitecturas de Computadores, Sistemas Operativos y programación.

Profesor de contacto

Antonio García Dopico: dopico@fi.upm.es

Diseño de aplicaciones web (3 ECTS)

Descripción

A través de un enfoque principalmente práctico se pretende que el alumno conozca algunas de las principales tecnologías utilizadas hoy en día en Internet y en qué casos es adecuada la utilización de las mismas. Con la realización de un proyecto en grupo el alumno tendrá la oportunidad de profundizar en una o varias de esas tecnologías y comprender en qué consiste el desarrollo de un sitio Web. Algunas de las tecnologías cubiertas en la asignatura son: HTML, CSS, Bootstrap, Javascrip y jQuery (para el frontend); Python y Django (para el backend); Vagrant, Chef, Knife y Berkshelf (despliegue de aplicaciones).

Requisitos recomendados

Profesor de contacto

Antonio LaTorre de la Fuente: atorre@fi.upm.es

Fotografía computacional (3 ECTS)

Descripción

El término Fotografía Computacional se refiere a las diferentes técnicas que extienden las capacidades de la fotografía digital.

En la fase de adquisición esto puede suponer modificar el diseño de una cámara tradicional para capturar información adicional (por ejemplo, distancia a la cámara a través del grado de desenfoque). En la fase de manipulación o procesado, podemos destacar aplicaciones donde diferentes imágenes se combinan en panoramas o imágenes de alto rango dinámido (HDR). Otros ejemplos incluyen la combinación de fotografías con diferente iluminación (flash/no flash) o la fusión de partes de diferentes fotografías en una única imagen. En todas estas técnicas el resultado es una imagen ordinaria, pero una que no podría haberse obtenido con una cámara tradicional.

Durante este curso, siguiendo el hilo argumental del proceso fotográfico se presentarán varias de las aplicaciones que pueden aparecer en la formación, captura y procesado de una imagen digital. En cada caso se presentará el problema matemático subyacente y los algoritmos para resolverlo, alternando esas explicaciones con su implementación en el laboratorio (usando MATLAB).

Ejemplo de transformación automática de una cara en otra

Requisitos recomendados

Fundamentos de álgebra lineal, conocimientos de MATLAB, interés por la fotografía.

Profesor de contacto

Antonio Tabernero Galán: ant@fi.upm.es

Geometría 3D para informática gráfica (3 ECTS)

Descripción

En esta asignatura se estudian las matemáticas básicas para la creación de juegos 3D, animación, realidad virtual, visión computacional, robótica, simulación científica y CAD, es decir, para la Informática Gráfica en general.

EL objetivo de la asignatura no es el manejo del software gráfico sino comprender cómo funciona el software gráfico para lo cual crearemos nuestras propias funciones para situar y mover la cámara en la escena, mover los objetos, proyectar, etc. Se trabajará en aula informática programando con openGL (C++ o Python) en Windows o Linux.

Requisitos recomendados

Ninguno.

Profesor de contacto

Dolores Lodares González: dlodares@fi.upm.es

Ingeniería de integración tecnológica (I2T) (3 ECTS)

Descripción

Actualmente la ingeniería de integración requiere una consideración global de diferentes tecnologías, procesos y métodos, para el desarrollo óptimo de los ecosistemas tecnológicos asociados. El objetivo fundamental de la asignatura es capacitar al alumno para el desarrollo de práctico proyectos de integración tecnológica con una base metodológica multidisciplinar: con diversos métodos de desarrollo; con diferentes tecnologías, plataformas y componentes; con restricciones multinivel de usuario; con múltiples alternativas y restricciones tecnológicas; basados en la utilización de diferentes estándares; y basados en el análisis de tendencias tecnológicas y hojas de ruta.

La orientación de la asignatura es abierta, flexible, metodológica, multidisciplinar y práctica. El aprendizaje principal está basado en la realización de un proyecto concreto. Se pretende fundamentalmente que el alumno adquiera un cierto grado de madurez en la forma de abordar el desarrollo de un proyecto de integración tecnológica en un equipo de trabajo.

Para el seguimiento de la asignatura se proporcionarán a través de Moodle: presentaciones de los temas, referencias básicas, referencias complementarias y vídeos.

Los alumnos deberán desarrollar un proyecto de integración en grupo sobre un tema a elegir entre los propuestos, o un tema diferente previa autorización del profesor.

La parte teórica metodológica de la asignatura se podrá aprobar por curso si se entregan correctamente los ejercicios básicos propuestos durante el mismo.

Requisitos recomendados

No se definen.

Profesor de contacto

J. A. Felipe Fernandez Hernandez: felipefernandez@fi.upm.es

Minería de datos (3 ECTS)

Descripción

La Minería de Datos trata de construir sistemas informáticos cuando no existe experiencia humana o cuando no es fácilmente explicable. Así, los datos se transforman en conocimiento. Entre las muchas aplicaciones exitosas pueden citarse el reconocimiento del habla o de texto manuscrito, navegación autónoma de robots, recuperación de información documental, filtrado cooperativo, sistemas de diagnóstico, análisis de microarrays de ADN, etc.

Este curso expone varios métodos de Minería de Datos desde el punto de vista práctico. El objetivo es enfrentarse a un conjunto de datos sobre los que construir modelos clasificatorios con la ayuda del software WEKA.

Túner formado por unos y ceros 

Requisitos recomendados

Probabilidades y estadística I

Profesor de contacto

Pedro Larrañaga: pedro.larranaga@fi.upm.es

Programming for mobile devices (3 ECTS)

Descripción (asignatura impartida en inglés)

This course introduces the fundamentals of programming techniques for mobile devices, more concretely to android basics development. Students will learn how to design and implement mobile applications following user interfaces design good practices, and how user interface systems are integrated with mobile operating system.

The course will focus on prototyping and development of simple graphical user interfaces (GUI) using rapid development tools such as graphical user interface layout editors combined with simple code to create functioning interfaces.

The course focuses on practice the skills needed for development of user interfaces to be deployed on Android mobile platform.

Concretely, students will learn to use technologies from mobile applications:

Requisitos recomendados

Previous courses:

Other recommended knowledge:

Profesor de contacto

 Raúl Alonso Calvo: ralonso@fi.upm.es

Robótica y Percepción computacional (3 ECTS)

Descripción

En la asignatura se realiza una introducción a la robótica móvil y a la visión por computador. En concreto, los estudiantes estudiarán sistemas de control y navegación, la formación de imágenes, la segmentación de imágenes y el reconocimiento de objetos planos. Con los conocimientos adquiridos, los alumnos realizarán una práctica con un robot real. En esta práctica el robot tiene que usar una cámara de vídeo para identificar una línea pintada en el suelo, seguir esta línea detectando bifurcaciones y usar la identificación de símbolos en el suelo para elegir entre las posibles salidas.

Robot siguiendo el recorrido marcado por una cinta 

Requisitos recomendados

La práctica de la asignatura tiene una carga importante de programación en Python, así se recomienda la asignatura para alumnos con confianza en sus habilidades de programación. También se recomienda haber cursado la asignatura de Inteligencia Artificial y Reconocimiento de Formas.

Profesor de contacto

Nik Swoboda: nswoboda@fi.upm.es

Sistemas dinámicos, fractales y caos (6 ECTS)

Descripción

Los sistemas dinámicos y el concepto de caos aparecen de manera natural en muchos procesos que siguen leyes deterministas, o estocásticas, por eso son una herramienta fundamental para simular y estudiar la evolución de estos procesos. En el primer tema se hace un análisis detallado de la familia logística que surge como uno de los modelos más sencillos de dinámicas de poblaciones y en la que aparece la gama completa de posibles comportamientos de sistemas dinámicos unidimensionales, desde los más simples hasta los caóticos. También se estudian los sistemas dinámicos bidimensionales y complejos que dan origen a los conjuntos de Julia y Mandelbrot. Algunos de estos procesos evolucionan hacia atractores extraños y poseen una estructura fractal. El alumno aprenderá a generar los fractales autosemejantes como el triángulo de Sierpinski, la curva de Koch y en general a cualquier fractal generado por un sistema de funciones iteradas cuyo atractor es precisamente el fractal. Esta es la base para la simulación y compresión fractal de imágenes.

La asignatura se desarrolla toda en laboratorio y el alumno implementa los algoritmos y experimenta los conceptos a través de prácticas en Python, Maple o Matlab.

Ejemplo de fractal

Requisitos recomendados

No se definen.

Profesor de contacto

M. Del Carmen Escribano Iglesias: cescribano@fi.upm.es