Programación docente

El programa docente del máster se divide en 18 módulos más un módulo introductorio como complemento de formación.

Curso de autoformación en programación y bases de datos relacionales

Curso de autoformación para aquellos alumnos sin conocimientos de programación o que quieran mejorar sus conocimientos. Estará disponible para los alumnos que realicen la preinscripción.

Curso de programación orientada a objetos en Java

  1. Programación orientada a objetos en Java
    1. Introducción a la POO
    2. Clases y objetos
    3. Métodos y mensajes
    4. Organización de clases
  2. Herencia en Java
    1. Herencia
    2. Polimorfismo
    3. Vinculación Dinámica
    4. Clases abstractas
    5. Interfaces
  3. Tratamiento de excepciones
    1. Software tolerante a fallos. El concepto de excepción
    2. Captura y tratamiento de excepciones
    3. Propagación de excepciones
    4. Excepciones predefinidas
    5. Definición de nuevas excepciones
  4. Clases básicas predefinidas. I/O
    1. Organización en paquetes
    2. Clases básicas: java.lang
    3. Clases básicas del paquete java.util
    4. Entrada/Salida. Paquete java.io
  5. Colecciones e iteradores
    1. Clases genéricas. Métodos genéricos
    2. Las interfaces básicas y sus implementaciones
    3. Conjuntos, listas y correspondencias
    4. Lambda expresiones. Interfaces funcionales
    5. Métodos referencia: Métodos y constructores como lambdas
    6. El paquete java.util.function
    7. Clases ordenables
    8. Ordenación de colecciones
    9. Conjuntos y correspondencias ordenadas

Este es un módulo introductorio mediante el que se presentan dos objetivos fundamentales.

  1. En primer lugar, se pretende iniciar al alumno en el contexto del análisis del Big Data proporcionando una visión global introductoria sobre las necesidades y desafíos que presenta este nuevo ecosistema tecnológico en la sociedad.
  2. En segundo lugar, se ofrece una primera toma de contacto técnica sobre el acceso a las grandes fuentes de datos, tomando como hilo conductor el Open Data y sus características principales. Se realiza un recorrido práctico sobre los principales estándares de datos, sus formatos, métodos de acceso, repositorios y APIs.

Desde este primer módulo, se inicia al alumno en la realización de primeros análisis de datos mediante visualizaciones y se fomenta el diseño de aplicaciones de análisis de datos para la extracción de conocimiento y su interpretación.


Tecnologías: Linked Open Data, Carto, CKAN.

El objetivo de este módulo es introducir las bases de datos relacionales. Los estudiantes deberán adquirir las competencias para diseñar, implementar y consultar una base de datos relacional.

Para ello, se abordará el proceso de diseño de una base de datos usando el modelo Entidad Relación, su traducción al modelo relacional y el proceso de creación de la misma usando el Lenguaje de Definición de Datos de SQL. También se introducirá el álgebra relacional, como base para adquirir competencias en el desarrollo de consultas SQL.

El sistema gestor de bases de datos que se usará será MySQL, por lo que los estudiantes deberán adquirir las destrezas necesarias para usarlo. Finalmente, los estudiantes deberán ser capaces de consultar la base de datos con el lenguaje SQL.


Tecnologías: MySQL workbench, Anaconda (Python).

El objetivo de este módulo es introducir las bases de datos NoSQL y adquirir competencias en el uso de Apache Cassandra y MongoDB.

  1. En el caso de Cassandra, se pretende que el alumno comprenda las como el diseño de la base de datos es la pieza central para obtener un alto rendimiento en un modelo de datos orientado a columnas.
  2. En el caso de MongoDB el alumno deberá aprovechar la flexibilidad de este sistema gestor de bases de datos para ofrecer un sistema de almacenamiento eficiente, incluyendo el análisis de las posibilidades de replicación y distribución de los datos.

Tecnologías: Apache Cassandra, MongoDB, Mongo Compass, Anaconda (Python)

Los objetivos de este modulo son tres:

  1. Conocer los pasos y técnicas necesarias para preparar el análisis de fuentes de datos de diversa naturaleza,
  2. Aprender a utilizar tecnologías para el tratamiento y transformación de los datos, y
  3. Ser capaz de discriminar cuándo es necesario el uso de tecnologías de almacenes de datos o de Data Science y de aplicarlas.

Tecnologías: Pentaho Data Integration, Pentaho BI Server, Pentaho Mondrian Schema

El objetivo principal de este módulo es tener una primera experiencia en el manejo de datos integral y su análisis con fuentes de datos reales. Este es un módulo de transición, orientado a la consolidación de los conocimientos adquiridos en los módulos anteriores y la adquisición de habilidades de análisis que se profundizarán en los módulos siguientes. Todo ello con una motivación inminentemente práctica.


Tecnologías: Python, Open Data APIs, MongoBD, Anaconda, Jupyter Notebooks, Spyder y las librerías pymongo, matplotlib, pandas, numpy, folium

De una forma divulgativa y mediante ejemplos prácticos, este módulo proporciona una visión general de la motivación, potencialidad y capacidades de la modelización y la analítica de datos de última generación con el fin último de orientar al alumno en la aplicación de la analítica de datos en su futuro profesional.

Así, el alumno adquirirá nociones básicas sobre la analítica y el modelado de datos, entenderá dónde se puede aplicar, qué es necesario y cómo definir un escenario de aplicación. Desde el punto de vista técnico, el módulo repasa e introduce al alumno en las diferentes categorías de modelos de aprendizaje máquina, prestando especial énfasis en aquellos orientados a describir conjuntos de datos y en hallar patrones ocultos en ellos.

El módulo está fuertemente relacionado con el módulo “Aprendizaje Computacional Predictivo”, que engrana temáticamente con lo visto en este primer módulo para hacer mayor énfasis en las técnicas predictivas de aprendizaje máquina.


Tecnologías: Python, Sklearn. Modelos DBSCAN, KMeans, Hierarchical Clustering, Boxplot, Dimensionality Reduction, Statistics.

Este segundo módulo de machine learning profundiza técnicamente en diferentes técnicas de análisis predictivo de datos. Cada una de las secciones de este módulo está estructurada de manera independiente, cubriendo los fundamentos técnicos, la historia, ejemplos de aplicación y prácticas en laboratorio tuteladas por el ponente.

Al término de este módulo el alumno será capaz de identificar en qué casuísticas y escenarios de aplicación son aplicables cada una de las técnicas de análisis de datos abordadas en el módulo, así como las diferencias, ventajas e inconvenientes de cada una de ellas.


Tecnologías: Python, Sklearn. kNN, Modelos SVM, Decision Tree, Random Forest, Naïve Bayes, Neural Networks, validación cruzada, métricas de scoring, limpieza de datos.

El objetivo de este módulo es dar a conocer el sistema de procesamiento de datos escalable Apache Spark. Se ofrecerá una visión global de las características de Spark y se trabajará con las dos APIs que ofrece en la actualidad, una basada en RDDs (Resilient Distributed Datasets) y otra basada en dataframes.


Tecnologías: Spark, Java, Python, Intellij Idea, PyCharm.

En este módulo se prentenden cubrir objetivos básicos de cómo visualizar gráficas en entornos Web, tanto en modo paquetizado como partiendo desde cero, utilizando el framework de visualización d3js.


Tecnologías: HTML / CSS, JavaScript ES6, d3js.

En este módulo se va a trabajar con tecnologías de procesamiento de datos escalables en dos ámbitos: machine learning y streaming.

  1. La primera semana se dedicará a SparkML, el componente de Spark que ofrece algoritmos de clasificación y clustering.
  2. En la segunda se estudiarán dos tecnologías: Spark structured streaming y Apache Flink.

El objetivo del módulo es adquirir y asimilar los fundamentos básicos para poder desarrollar aplicaciones escalables con las herramientas estudiadas.


Tecnologías: Spark, Flink, Java, Python, Intellij Idea, PyCharm.

En este módulo se ofrecerá una introducción a los conceptos básicos relacionados con la analitica de textos, se presentarán los problemas prácticos relevantes en el contexto de big data y las posibles estrategias de despliegue de sistemas de analitica de textos.


Tecnologías: Python, sklearn, Keras (opcional), solr (opcional), Dask.

El objetivo de este módulo es la integración del paradigma de Big Data con tecnologías y protocolos de Internet de las Cosas (IoT) con el fin reducir la brecha entre la obtención de datos y su generación en el mundo físico.

A partir de protocolos usados en el IoT como CoAP y MQTT, se podrán obtener datos del IoT para su posterior procesamiento y análisis con tecnologías de Big Data. Se habilitará la obtención de datos del entorno a través de diferentes sensores desplegados en el aula de clase.


Tecnologías: IoT, CoAP, Apache Kafka, MQTT, Google Cloud IoT Core, Mango, Node-RED.

El objetivo de este módulo es que los alumnos conozcan los conceptos fundamentales de la computación en la nube y las herramientas que ofrecen algunos de los principales proveedores comerciales. Los alumnos serán capaces de usar dichas herramientas para llevar a cabo proyectos relacionados con el Análisis del Big Data.


Tecnologías: Los alumnos usarán los recursos de cálculo y almacenamiento de proveedores comerciales, como Google y Amazon (entre ellos máquinas virtuales, bases de datos, herramientas de visualización de datos), a nivel de usuario y a nivel de programación usando lenguajes orientados a objetos, en concreto Java y Python.

Los contenidos del presente módulo se han desarrollado con un doble objetivo. Por un lado, sensibilizar al alumnado sobre los riesgos y amenazas de seguridad y privacidad que afectan a los entornos de Big Data. Y, por otro lado, proporcionar los conocimientos y habilidades necesarias sobre tecnologías, servicios y herramientas de seguridad para minimizar los riesgos y hacer frente a las amenazas.


Tecnologías: Linux/Unix, Netfilter/iptables, Kerberos, Hadoop.

El objetivo principal de este módulo es mostrar un caso de uso empresarial desarrollado dentro de la corporación industrial Tecnalia.


Tecnologías: Dependiente del caso de uso presentado (Python).

Clases de apoyo en el labolatorio cada lunes de 18:00 - 21:00.

Proyecto práctico en el que aplicar las técnicas y herramientas aprendidas en el máster

  1. Créditos ECTS: 12
  2. Supervisado académicamente

Las prácticas se realizan con una de estas opciones: a) en empresas, b) en grupos de investigación, c) mediante desarrollo práctico en el puesto laboral actual, o d) con un Trabajo Fin de Máster ampliado.

Agenda

En el calendario del máster podrás encontrar todas las actividades programadas semanalmente.