Técnicas de Desarrollo Avanzado de Aplicaciones Big Data

Profesor/a: BLAS TORREGROSA GARCÍA

Teléfono: 983 00 10 00

Última versión revisada de la guía docente, debidamente informada por parte del profesor en la asignatura.

DESCRIPTOR

La asignatura trata los principales elementos que permiten el desarrollo de herramientas analíticas que solucionen problemas relacionados con los datos masivos (Big Data) y ciencia de datos.

Se trata de una asignatura compendio en la que se unen diferentes técnicas y tecnologías para construir herramientas de análisis de datos dando una visión de conjunto para desarrollar herramientas adaptables a modificaciones en el conjunto de datos. Se pretende que todo el ciclo de vida de los datos se vea reflejado en la asignatura, desde la captura de datos desde diferentes fuentes, pasando por la limpieza de estos datos así como el uso de redes neuronales en diversas configuraciones, desarrollando  herramientas y su paso a la explotación.

Como requisitos previos son necesarios los siguientes tecnologías:

  • Python con conocimiento de librerías como pandas o numpy  y uso de Jupyter Notebooks. 
  1. Técnicas de desarrollo:
    1. Flujo de datos:
    2. Web scraping:
    3. Exploración y limpieza de datos:
    4. Redes neuronales:
    5. Redes neuronales convolucionales:
    6. Redes neuronales avanzadas:
    7. Desarrollo de herramientas de análisis de datos:

Los recursos de aprendizaje que se utilizarán en todas las asignaturas de la titulación (salvo las prácticas externas) para facilitar el proceso de enseñanza-aprendizaje, son:

  • Campus online de la UEMC (Open Campus)
  • Plataforma de Webconference (Zoom work place)

Las comunicaciones con el profesor serán a través de Open Campus vía Mi correo, Tablón o/y Foro.

CB10. Que los estudiantes posean las habilidades de aprendizaje que les permitan continuar estudiando de un modo que habrá de ser en gran medida autodirigido o autónomo
CB6. Poseer y comprender conocimientos que aporten una base u oportunidad de ser originales en el desarrollo y/o aplicación de ideas, a menudo en un contexto de investigación
CB7. Que los estudiantes sepan aplicar los conocimientos adquiridos y su capacidad de resolución de problemas en entornos nuevos o poco conocidos dentro de contextos más amplios (o multidisciplinares) relacionados con su área de estudio
CB8. Que los estudiantes sean capaces de integrar conocimientos y enfrentarse a la complejidad de formular juicios a partir de una información que, siendo incompleta o limitada, incluya reflexiones sobre las responsabilidades sociales y éticas vinculadas a la aplicación de sus conocimientos y juicios
CB9. Que los estudiantes sepan comunicar sus conclusiones -y los conocimientos y razones últimas que las sustentan- a públicos especializados y no especializados de un modo claro y sin ambigüedades
CG1. Capacidad de organización y planificación
CG10. Desarrollar hábitos de excelencia y calidad en el ejercicio profesional
CG11. Capacidad para generar nuevas ideas (creatividad)
CG12. Diseño y gestión de proyectos
CG2. Comunicación oral y escrita en lengua extranjera
CG3. Habilidades básicas de informática
CG4. Capacidad y habilidad para la toma de decisiones
CG5. Capacidad para trabajar en equipos de carácter interdisciplinar
CG6. Compromiso ético (saber aplicar la evidencia científica en la práctica profesional y mantener un compromiso ético y de integridad intelectual en el planteamiento de la investigación científica, básica y aplicada)
CG7. Capacidad de crítica y autocrítica
CG8. Habilidades interpersonales (tanto con miembros del entorno como con científicos/profesionales de otros centros)
CG9. Reconocimiento a la diversidad y a la multiculturalidad
CE10. Capacidad para conocer los fundamentos teóricos de los lenguajes de programación y las técnicas de procesamiento léxico, sintáctico y semántico asociadas, y saber aplicarlas para la creación, diseño y procesamiento de lenguajes
CE16. Capacidad para programar en un lenguaje de alto nivel, multiplataforma, de tipado dinámico y multiparadigma
CE17. Capacidad para usar programas de apoyo estadístico y gráfico no sólo para desarrollar análisis estadísticos, y construir modelos de análisis de datos, sino también para visualizar los resultados, facilitando la interpretación y publicación de los mismos
CE18. Capacidad para diseñar y aplicar correctamente técnicas de programación y simulación con sistemas de apoyo al análisis estadístico y gráfico
CE19. Capacidad para diseñar, aplicar y programar de forma eficiente en un lenguaje de alto nivel, aplicando los algoritmos, tipos y estructuras de datos más adecuados a la resolución de los problemas planteados
CE21. Capacidad de integrar diferentes fuentes de información de grandes volúmenes de datos
El alumno será capaz de:
  1. El alumno será capaz de crear soluciones algorítmicas a problemas y ser capaz de representarlas en forma de programas de computadora

  2. El alumno será capaz de aplicar e interpretar diferentes técnicas de desarrollo, diseño, prueba y depuración aplicadas a problemas, adquiriendo en particular una visión sistémica de la verificación y validación

  3. El alumno será capaz de utilizar las técnicas y herramientas básicas para almacenar y extraer información estructurada en bases de datos relacionales

  4. El alumno será capaz de definir el volumen de almacenamiento, memoria y capacidad de procesamiento en una plataforma estructurada

  5. El alumno será capaz de reconocer los fundamentos teóricos de los lenguajes de programación y las técnicas de procesamiento léxico, sintáctico y semántico asociadas, y saber aplicarlas para la creación, diseño y procesamiento de lenguajes.

  • Nathan George (2021), Practical Data Science with Python, Pack Publishing
  • Aurélien Géron (2018), Neural networks and deep learning, O'Reilly Media, Inc.
  • James Loy (2019), Neural Network Projects with Python, Packt Publishing
  • Shamshad Ansari (2023), Building Computer Vision Applications Using Artificial Neural Networks: With Examples in OpenCV and TensorFlow with Python,
  • Rachelle Palmer et al. (2024), Building AI Intensive Python Applications,

https://www.aprendemachinelearning.com/ (Web con ejemplos clásicos de técnicas Machine Learning muy bien explicados)

https://playground.tensorflow.org/ (Herramienta para aprender el funcionamiento de las redes neuronales modificando sus parámetros.)

https://medium.com/data-science-at-microsoft/how-large-language-models-work-91c362f5b78f (How large language models work)

https://medium.com/analytics-vidhya/web-scraping-with-python-beginner-to-advanced-10daaca021f3 (Web scraping with Python)

Método dialéctico

Se caracteriza por la participación de los alumnos en las actividades de evaluación continua de debate y la intervención de éstos a través del diálogo y de la discusión crítica (seminarios, grupos de trabajo, etc.). Utilizando este método el alumno adquiere conocimiento mediante la confrontación de opiniones y puntos de vista. El papel del profesor consiste en proponer a través de Open Campus temas referidos a la materia objeto de estudio que son sometidos a debate para, posteriormente, evaluar el grado de comprensión que han alcanzado los alumnos.

Método didáctico

El papel del profesor cobra importancia a través de la impartición de clases magistrales en tiempo real por videoconferencia que podrá utilizar para explicar los contenidos teóricos, resolver dudas que se planteen durante la sesión, ofrecer retroalimentación sobre las actividades de evaluación continua o realizar sesiones de tutoría de carácter grupal.

Método heurístico

Este método puede desarrollarse de forma individual o en grupo a través de las actividades de evaluación continua (entregas de trabajos, resolución de ejercicios, presentaciones, etc.). El objetivo es que el alumno asuma un papel activo en el proceso de aprendizaje adquiriendo los conocimientos mediante la experimentación y la resolución de problemas.

Las actividades formativas que se realizan en la asignatura son las siguientes:

Clases teóricas: Actividad dirigida por el profesor que se desarrollará de forma sincrónica en grupo. Para la realización de esta actividad en Open Campus, la UEMC dispone de herramientas de Webconference que permiten una comunicación unidireccional en las que el docente puede desarrollar sesiones en tiempo real con posibilidad de ser grabadas para ser emitidas en diferido.

Actividades prácticas: Actividades supervisadas por el profesor que se desarrollarán fundamentalmente de forma asíncrona, y de forma individual o en grupo:

    • Actividades de debate. Se trata de actividades en las que se genera conocimiento mediante la participación de los estudiantes en discusiones alrededor de temas de interés en las distintas asignaturas.
    • Entregas de trabajos individuales o en grupos a partir de un enunciado o unas pautas de trabajo que establecerá el profesor.
    • Resolución de ejercicios y problemas que el alumno debe realizar a través de Open Campus en un periodo de tiempo determinado. Esta actividad puede ser en formato test de evaluación.

Tutorías: Las tutorías podrán tener un carácter sincrónico o asíncrono y podrán desarrollarse de manera individual o en grupos reducidos.

Están previstas dos sesiones de tutoría por videoconferencia, una al inicio y otra al final del semestre. En la primera se presentará la asignatura y la guía docente y en la segunda, en las semanas previas a la evaluación final, se dedicará a la resolución de dudas de los estudiantes.

Además, el docente utiliza el Tablón, el Foro y el Sistema de correo interno de Open Campus para atender las necesidades y dudas académicas de los estudiantes.


CV Docente

Ingeniero en Informática.

Máster en Seguridad Informática.

20 años de experiencia profesional en JCYL

Ciberseguridad (HTB CPTS)

AWS Devops y AWS Developer
 


CV Profesional

Técnico funcional de aplicaciones en la Junta de Castilla y León y Organismos Autónomos.

Técnico de Sistemas Operativos y Redes (SACYL)

 

Créditos totales: 6
Tipo: Obligatorio
Período: 2º Semestre