Temas Avanzados de Ingeniería de Datos II

Usted está aquí

Créditos
6
Tipos
Obligatoria
Requisitos
Esta asignatura no tiene requisitos, pero tiene capacidades previas
Departamento
ETSETB;FIB;FME;ESSI;ENTEL
La asignatura se estructura en dos partes diferenciadas: el estudio de la ingeniería del software dirigida por los datos y el estudio de aspectos relacionados con la privacidad y seguridad de los datos.

1. Ingeniería del Software. La disponibilidad de grandes volúmenes de datos provenientes tanto del desarrollo de sistemas software como de su utilización posibilita su utilización en diversas etapas y actividades de la ingeniería del software y, incluso yendo más allá, define una nueva aproximación que considera los datos como la piedra angular del ciclo de vida del software. La primera parte de la asignatura presenta esta nueva visión de la ingeniería del software y profundiza en las prácticas y herramientas de ingeniería de software emergentes con el fin de automatizar la construcción de componentes habilitados para ML, y el ciclo de vida de los componentes de ML de extremo a extremo, desde la creación de modelos hasta la implementación de producción.

2. Privacidad y seguridad de los datos. Las técnicas de análisis de datos pueden ayudar a obtener información para anticiparse a varios problemas, dar a conocer su fuente y ayudar a implementar soluciones, en contextos tan variados como competitividad empresarial, marketing, relaciones sociales, transporte, salud, educación y política. Sin embargo, a pesar de que el análisis de datos es extremadamente valioso, también tienen un inconveniente crucial: invaden cada vez más la privacidad de las personas sobre las que se recopilan datos. La segunda parte de la asignatura presenta conceptos básicos de privacidad de la información y profundiza en las principales tecnologías y métricas de privacidad, así como en los algoritmos de anonimización utilizados para evitar cualquier divulgación de información sensible de los individuos

Profesorado

Responsable

  • Silverio Juan Martínez Fernández ( )

Otros

  • Esteve Pallares Segarra ( )
  • Javier Parra Arnau ( )
  • Jordi Forne Muñoz ( )
  • Santiago Del Rey Juarez ( )

Horas semanales

Teoría
2
Problemas
0
Laboratorio
2
Aprendizaje dirigido
0
Aprendizaje autónomo
6

Competencias

Competencias Técnicas

Competencias técnicas

  • CE1 - Utilizar con destreza los conceptos y métodos matemáticos que subyacen los problemas de la ciencia y la ingeniería de los datos.
  • CE2 - Ser capaz de programar soluciones a problemas de ingeniería: Diseñar soluciones algorítmicas eficientes a un problema computacional dado, implementarlas en forma de Programa robusto, estructurado y mantenible, y comprobar la validez de la solución.
  • CE3 - Analizar fenómenos complejos mediante la probabilidad y estadística, y plantear modelos de estos tipos en situaciones concretas. Formular y resolver problemas de optimización matemática.
  • CE7 - Demostrar conocimiento y capacidad de aplicación de las herramientas necesarias para el almacenaje, el procesamiento y el acceso a los datos.
  • CE8 - Capacidad de elegir y emplear técnicas de modelización estadística y análisis de datos, evaluando la calidad de los modelos, validándolos e interpretándolos.

Competencias Transversales

Transversales

  • CT4 [Avaluable] - Trabajo en equipo. Ser capaz de trabajar como miembro de un equipo interdisciplinar, ya sea como un miembro más o realizando tareas de dirección, con la finalidad de contribuir a desarrollar proyectos con pragmatismo y sentido de la responsabilidad, asumiendo compromisos teniendo en cuenta los recursos disponibles.

Básicas

  • CB2 - Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posean 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.
  • CB3 - Que los estudiantes tengan 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.
  • CB5 - Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía

Competencias Técnicas Genéricas

Genéricas

  • CG1 - Concebir sistemas computacionales que integren datos de procedencias y formas muy diversas, creen con ellos modelos matemáticos, razonen sobre dichos modelos y actúen en consecuencia, aprendiendo de la experiencia.
  • CG2 - Elegir y aplicar los métodos y técnicas más adecuados a un problema definido por datos que representen un reto por su volumen, velocidad, variedad o heterogeneidad, incluidos métodos informáticos, matemáticos, estadísticos y de procesado de la señal.
  • CG4 - Identificar oportunidades para aplicaciones innovadoras orientadas a datos en entornos tecnológicos en continua evolución.

Objetivos

  1. Interpretar los conceptos básicos de la Ingeniería del Software para sistemas ML (machine learning), especialmente en relación al uso y explotación de prácticas MLOps.
    Competencias relacionadas: CG1, CB2,
  2. Aplicar y analizar buenas prácticas de ingeniería del software referentes a proyectos de ciencias de datos y aprendizaje automático
    Competencias relacionadas: CE1, CE2, CT4, CG1, CG4, CB2, CB5,
  3. Aplicar y analizar las prácticas de MLOps para construir modelos de ML, fomentando la reproducibilidad y la garantía de calidad.
    Competencias relacionadas: CE1, CE2, CE3, CE7, CT4, CG1, CG4, CB2, CB5,
  4. Aplicar y analizar las prácticas de MLOps para implementar modelos de ML, fomentando el desarrollo de APIs.
    Competencias relacionadas: CE1, CE2, CE7, CE8, CG1, CG2, CB2, CB5,
  5. Conocer los riesgos de privacidad asociados a la navegación y en la publicación de datos. Profundizar en las diferentes métricas de privacidad y su aplicación en diferentes escenarios.
    Competencias relacionadas: CE1, CE3, CE8, CT4, CG2, CB3, CB5,
  6. Conocer los principales algoritmos de anonimización de bases de datos estadísticos.
    Competencias relacionadas: CE1, CE2, CE3, CE8, CT4, CG1, CG2, CG4, CB2, CB3, CB5,
  7. Evaluar el compromiso entre privacidad y usabilidad de los datos.
    Competencias relacionadas: CE1, CE3, CE8, CT4, CG1, CG4, CB2, CB3, CB5,
  8. Conocer los riesgos de privacidad en las comunicaciones y los sistemas de comunicación anónimas.
    Competencias relacionadas: CE1, CE3, CE8, CG1, CG4, CB2, CB5,

Contenidos

  1. Introducción a la Ingeniería del Software
    Primero, se presenta el concepto tradicional de ingeniería del software. Después, se analiza el impacto de la disponibilidad de datos sobre este concepto tradicional. Se muestra el ciclo de vida de software resultante al considerar datos. Motivación de la necesidad de ingeniería de software para sistemas ML. Introducción a MLOps y conceptos clave. Ingeniería de requisitos para ML.
  2. Buenas prácticas de ingeniería del software referentes a proyectos de ciencias de datos y aprendizaje automático
    La complejidad y diversidad de los proyectos de ciencia de datos y los sistemas basados en aprendizaje automático requieren técnicas de ingeniería para garantizar que se construyan de una manera sólida y preparada para el futuro. En este capítulo abordamos buenas prácticas de ingeniería de software para proyectos de ciencia de datos, y software con componentes de aprendizaje automático.
  3. Prácticas de MLOps para construir modelos de ML y gestionar la calidad del software y de su proceso de desarrollo
    La complejidad y diversidad de los proyectos de ciencia de datos y los sistemas de ML exigen técnicas de ingeniería para garantizar que se construyan de manera sólida y preparada para el futuro. En este capítulo, abordamos las mejores prácticas de ingeniería de software para software de proyectos de ciencia de datos, incluidos los componentes de ML: sistemas de control de versiones; seguimiento y reproducibilidad de la canalización de ML; medición de software para ML; garantía de calidad para ML.
  4. Prácticas de MLOps para implementar modelos de ML
    La complejidad y diversidad de los sistemas de ML requieren técnicas de ingeniería para garantizar que se implementen de manera sólida y lista para la producción. En este capítulo, abordamos las mejores prácticas de ingeniería de software para componentes de ML: arquitectura de software para ML; implementar modelos de ML; API para ML.
  5. Introducción a la privacidad y seguridad de los datos
    Motivación. Definición de conceptos básicos. Atacantes y partes de confianza. Métricas de privacidad.
  6. Algoritmos de anonimización de datos
    Control de revelación estadística. Medida del riesgo de revelación. Algoritmos de microagregació de datos. Medida del compromiso privacidad-utilidad. Casos de estudio.
  7. Privacidad en sistemas de información personalizados
    Perfiles de usuario: medida del riesgo de privacidad. Tecnologías de privacidad.
  8. Seguridad y privacidad en las comunicaciones
    Algoritmos criptográficos. Autenticación y gestión de claves. Sistemas de comunicación anónimos.

Actividades

Actividad Acto evaluativo


Estudio de conceptos básicos de Ingeniería de Software para sistemas ML (MLOps)


Objetivos: 1
Contenidos:
Teoría
2h
Problemas
0h
Laboratorio
2h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

Estudio de buenas prácticas de ingeniería del software referentes a proyectos de ciencias de datos y aprendizaje automático


Objetivos: 2
Contenidos:
Teoría
4h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

Estudio de prácticas de MLOps para construir modelos ML y la gestión de la calidad del software y de su proceso de desarrollo


Objetivos: 3
Contenidos:
Teoría
4h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

Estudio de prácticas de MLOps para desplegar modelos ML


Objetivos: 4
Contenidos:
Teoría
3h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
2h

Desarrollo práctico de un caso de estudio de prácticas MLOps en el contexto de sistemas basados en ML

El estudiante desarrollará progresivamente una práctica que permita ejercitar los conceptos básicos introducidos en la parte de teoría. Se desarrollará en equipos de 4-5 estudiantes. El software resultante, debidamente documentado, se subirá a un repositorio de código. El equipo presentará un informe, escrito en inglés, resumiendo los aspectos principales de la práctica, por ejemplo, el proceso de construcción de un componente ML de un sistema basado en ML, y una evaluación de la precisión de los modelos y algoritmos empleados.
Objetivos: 2 3 4
Contenidos:
Teoría
0h
Problemas
0h
Laboratorio
13h
Aprendizaje dirigido
0h
Aprendizaje autónomo
31.5h

Primer examen parcial: parte de Ingeniería del Software (PARC1)

Evaluación de la primera parte de la asignatura
Objetivos: 1 2 3 4
Semana: 7
Teoría
1.5h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
5.5h

Examen Final (EXF)

Este examen evalúa las dos partes de la asignatura. Es obligado para los estudiantes que hayan suspendido alguna de las dos pruebas parciales. El resto de estudiantes también se puede presentar en caso de querer mejorar nota
Objetivos: 1 5 2 3 4 6 7 8
Semana: 15 (Fuera de horario lectivo)
Teoría
2h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
0h

Segundo examen parcial: parte de Privacidad y Seguridad de datos (PARC2)

Evaluación de la segunda parte de la asignatura
Objetivos: 5 6 7 8
Semana: 14
Teoría
1.5h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
5.5h

Estudio de conceptos introductorios de privacidad y seguridad de los datos


Objetivos: 5 6 7 8
Teoría
4h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
5h

Desarrollo práctico de algoritmos de anonimización de datos


Objetivos: 6 7
Teoría
0h
Problemas
0h
Laboratorio
15h
Aprendizaje dirigido
0h
Aprendizaje autónomo
22.5h

Estudio de riesgos y tecnologías de privacidad para sistemas de información personalizados


Objetivos: 5 7
Teoría
4h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

Estudio de mecanismos y tecnologías para seguridad y privacidad de las comunicaciones



Teoría
4h
Problemas
0h
Laboratorio
0h
Aprendizaje dirigido
0h
Aprendizaje autónomo
6h

Metodología docente

Los contenidos teóricos de la asignatura se imparten en las clases de teoría. Estas clases se complementan con ejemplos prácticos y problemas que los estudiantes deben resolver en las horas de Aprendizaje Autónomo.

En las sesiones de laboratorio se consolidan los conocimientos adquiridos en las clases de teoría mediante la resolución de problemas y desarrollo de prácticas relacionados con los contenidos teóricos. Durante las clases de laboratorio, el profesor irá introduciendo nuevas técnicas y dejará una parte importante de la clase para que los estudiantes trabajen en los ejercicios propuestos.

Método de evaluación

La evaluación se estructura en función de las dos partes de la asignatura: ingeniería del software (PART1) y privacidad de los datos (PART2).

Por la primera parte, la nota se calcula ponderando la nota de un examen teórico (peso 40%) con la nota de las prácticas de esta parte de la asignatura (peso 60%)
PART1 = 40% PARC1 + 60% LABO1 * FactIndivLABO1
- PARC1: Examen al final del primer bloque de la asignatura
- LABO1: Entrega de práctica al final del primer bloque de la asignatura
- FactIndivLABO1: El factor individual FactIndiv es un factor multiplicativo entre 0.8 y 1.2 (e igualmente, no puede hacer crecer la nota final LABO1 por encima de 10). Este factor se obtiene a partir de la evaluación que hace el profesor sobre la participación del estudiante en la entrega y de la evaluación que hacen el resto de compañeros del grupo sobre la participación del estudiante en la entrega. En casos realmente excepcionales, FactIndiv puede ser menor que 0.8 para aquellos estudiantes con muy baja dedicación al proyecto a lo largo de todo el curso.

Por la segunda parte, la nota se calcula ponderando la nota de un examen teórico (peso 50%) con la nota de las prácticas de esta parte de la asignatura (peso 50%)
PART2 = 50% PARC2 + 50% LABO2
- PARC2: Examen al final del segundo bloque de la asignatura
- LABO2: Entrega de prácticas del segundo bloque de la asignatura

La nota final de la asignatura, NOTA-FIN, se calcula como la media aritmética de las dos partes de la asignatura:
NOTA-FIN = 50% PART1 + 50% PART2


En caso de no superar la asignatura en la evaluación por parciales, hay una evaluación por un examen final, donde los parciales liberan materia si están aprobados.

Bibliografía

Básica:

Complementaria:

Capacidades previas

Las dadas por las asignaturas de los cuatrimestres anteriores del grado