Programación para la ciencia de datos Código:  22.503    :  6
Consulta de los datos generales   Descripción   La asignatura en el conjunto del plan de estudios   Conocimientos previos   Información previa a la matrícula   Objetivos y competencias   Contenidos   Consulta de los recursos de aprendizaje de los que dispone la asignatura   Recursos de aprendizaje y herramientas de apoyo   Informaciones sobre la evaluación en la UOC   Consulta del modelo de evaluación  
Este es el plan docente de la asignatura para el segundo semestre del curso 2023-2024. Podéis consultar si la asignatura se ofrece este semestre en el espacio del campus Más UOC / La universidad / Planes de estudios). Una vez empiece la docencia, tenéis que consultarlo en el aula. El plan docente puede estar sujeto a cambios.

En la asignatura de Fundamentos de Programación se ha realizado una introducción a la programación en lenguaje Python, centrada en la resolución de problemas del ámbito de la ciencia de datos. En esta asignatura, se pretende que el estudiante acabe de asimilar los conceptos de programación explicados en Fundamentos de Programación, profundizando en la comprensión de algunos de los conceptos clave, a la vez que se explican otros conceptos de programación más avanzados, que permitirán a los estudiantes afrontar problemas de programación más complejos, y de manera más eficiente, en Python.

La ciencia de datos es un campo interdisciplinario en el que se estudian métodos para extraer conocimiento a partir de datos. Así, la ciencia de datos utiliza técnicas de disciplinas como matemáticas, estadística o ciencias de la computación, con el objetivo común de obtener conocimiento de los datos.  

El objetivo de este curso es pues el de proveer de herramientas al científico de datos para que pueda crear sus propios programas que adquieran, traten, analicen y/o visualicen datos.  

El curso está estructurado en tres grandes bloques. En primer lugar, el curso presenta una visión más profunda y formal a conceptos básicos de programación. Se revisan algunas estructuras de datos básicos (listas, tuplas, diccionarios), se presentan variantes (diccionarios ordenados, pilas, colas) y estructuras de datos más avanzadas (árboles). También se profundiza en el uso de funciones para mejorar la modularidad del código, así como en el uso de archivos. En segundo lugar, el curso se centra en la optimización de programas: explica cómo evaluamos la complejidad teórica de un determinado algoritmo, qué herramientas podemos utilizar para evaluar el uso de recursos de nuestros programas, y qué técnicas tenemos a nuestro alcance para mejorar el rendimiento de nuestros programas. Finalmente, el tercer bloque explica cómo podemos probar el correcto funcionamiento de nuestro código, como desplegamos aplicaciones para su uso y cómo se mantienen estas aplicaciones una vez han sido desplegadas. Las explicaciones se encuentran siempre contextualizadas en el ámbito de la ciencia de datos, proporcionando ejemplos donde aplicar cada una de las técnicas presentadas. De este modo, al finalizar el curso, se espera que el estudiante haya adquirido unas bases sólidas de programación en Python que le permitan afrontar proyectos de análisis de datos y que sirvan como base para el aprendizaje autónomo de la programación.

Amunt

La asignatura forma parte de los programas del Grado de Ciencia de Datos Aplicada y del Máster en Ciencia de datos.   

En cuanto al Grado de Ciencia de Datos Aplicada, la asignatura es obligatoria y forma parte de la materia de Programación.

En cuanto al Máster en Ciencia de Datos, la asignatura es un complemento de formación. Los complementos de formación tienen como objetivo nivelar los conocimientos de los estudiantes que cursan el máster, y es obligatorio superarlos en función de la titulación de origen de cada estudiante. Todos los estudiantes del Máster de Ciencia de Datos deben superar Programación para la ciencia de datos como complemento de formación, a excepción de los que provengan de titulaciones oficiales del ámbito de la Ciencia de datos, la Informática, la Computación, o afines.

En ambos casos, recomendamos haber cursado la asignatura Fundamentos de Programación para poder hacer un correcto seguimiento de esta asignatura. También para los estudiantes de las dos titulaciones, la asignatura tiene continuidad en la asignatura Diseño y Programación Orientada a Objetos, donde se trabaja el paradigma de programación orientada a objetos.

Amunt

La asignatura asume que el estudiante tiene un conocimiento básico de Python, de las librerías más comunes relacionadas con la ciencia de datos en Python (principalmente, NumPy, pandas, matplotlib y scipy), y se encuentra familiarizado con el uso de jupyter notebooks.

Amunt

Recomendamos haber cursado la asignatura Fundamentos de Programación para poder hacer un correcto seguimiento de esta asignatura.

Amunt

El objetivo principal de la asignatura es proporcionar a los estudiantes una base sólida de programación en Python, en el contexto de los problemas típicos que se afrontan en ciencia de datos. Esta asignatura se puede cursar dentro del programa del Grado de Ciencia de Datos Aplicada, o bien como complemento de formación del Máster en Ciencia de Datos. A continuación se detallan las competencias concretas a que se refiere la asignatura en cada caso. Para los estudiantes que cursan el Grado de Ciencia de Datos Aplicada, las competencias del grado que se trabajan en la asignatura son: 

  • CB1 - Que los estudiantes hayan demostrado poseer y comprender conocimientos en un área de estudio que parte de la base de la educación secundaria general, y se suele encontrar a un nivel que, si bien se apoya en libros de texto avanzados, incluye también algunos aspectos que implican conocimientos procedentes de la vanguardia de su campo de estudio.
  • 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.
  • CB5 - Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía.
  • CG3 - Buscar, gestionar y utilizar la información más adecuada para modelizar problemas concretos y aplicar adecuadamente procedimientos teóricos para su resolución de manera autónoma y creativa.
  • CT1 - Uso y aplicación de las TIC en el ámbito académico y profesional.
  • CE5 - Utilizar de forma combinada los fundamentos matemáticos, estadísticos y de programación para desarrollar soluciones a problemas en el ámbito de la ciencia de los datos.
  • CE6 - Entender cómo los algoritmos y las estructuras de datos son diseñados, optimizados y aplicados según la escala del volumen de datos.
  • CE7 - Diseñar y construir aplicaciones analíticas mediante técnicas de desarrollo, integración y reutilización de componentes software.
  • CE9- Aplicar técnicas específicas de captura, tratamiento y análisis de datos estructurados, semi-estructurados y no estructurados.

Amunt

Bloque 1: Se presenta una visión más profunda y formal a conceptos básicos de programación. Se revisan algunas estructuras de datos básicos (listas, tuplas, diccionarios), se presentan variantes (diccionarios ordenados, pilas, colas) y estructuras de datos más avanzadas (árboles). También se profundiza en el uso de funciones para mejorar la modularidad del código, así como el uso de archivos. El bloque 1 está formado por las siguientes unidades:
 
  • Unidad 0: Una mirada más profunda y formal a conceptos básicos de Python
  • Unidad 1: Estructuras de datos avanzadas en Python
  • Unidad 2: Uso avanzado de funciones en Python
  • Unidad 3: Archivos e interacción con el sistema
 
Bloque 2: Se centra en la optimización de programas: explica cómo evaluamos la complejidad teórica de un determinado algoritmo, qué herramientas podemos utilizar para evaluar el uso de recursos de nuestros programas, y qué técnicas tenemos a nuestro alcance para mejorar el rendimientos de nuestros programas. El bloque 2 está formado por las siguientes unidades:
 
  • Unidad 4: Optimización de código Python: complejidad algorítmica y profiling
  • Unidad 5: Optimización de código Python: programación paralela

Bloque 3: Se expone cómo podemos probar el correcto funcionamiento de nuestro código, como desplegamos aplicaciones para su uso y cómo se mantienen estas aplicaciones una vez han sido desplegadas. Las explicaciones se encuentran siempre contextualizadas en el ámbito de la ciencia de datos, proporcionando ejemplos donde aplicar cada una de las técnicas presentadas. De este modo, al finalizar el curso, se espera que el estudiante haya adquirido unas bases sólidas de programación en Python que le permitan afrontar proyectos de análisis de datos y que sirvan como base para el aprendizaje autónomo de la programación. El bloque 3 está formado por la siguiente unidad:

  • Unidad 6: Testing, mantenimiento y desarrollo de aplicaciones Python

Amunt

Espacio de recursos de ciencia de datos Web
MV - Linux Software en línea

Amunt

En cada unidad encontraréis el material necesario para realizar un trabajo práctico. Esto incluye teoría, referencias bibliográficas, enlaces, ejemplos prácticos, enunciados de problemas a resolver y software necesario. Con ello se pretende que el estudiante se familiarice con el contenido a través de la práctica (learn by doing).
 
El entorno de programación utilizará una máquina virtual con la distribución Xubuntu instalada y que correrá sobre la arquitectura Oracle VM VirtualBox. La máquina virtual ya dispone de todas las librerías Python instaladas que se necesitan. La versión de Python elegida es la última estable de la serie 3. Los módulos con los contenidos son notebooks de jupyter que permiten ejecutar los ejemplos y ejercicios propuestos desde el navegador web y con la posibilidad de modificarlos para una mejor comprensión.

Amunt

El proceso de evaluación se fundamenta en el trabajo personal de cada estudiante y presupone la autenticidad de la autoría y la originalidad de los ejercicios realizados.

La falta de autenticidad en la autoría o de originalidad de las pruebas de evaluación; la copia o el plagio; el intento fraudulento de obtener un resultado académico mejor; la colaboración, el encubrimiento o el favorecimiento de la copia, o la utilización de material o dispositivos no autorizados durante la evaluación, entre otras, son conductas irregulares que pueden tener consecuencias académicas y disciplinarias graves.

Por un lado, si se detecta alguna de estas conductas irregulares, puede comportar el suspenso (D/0) en las actividades evaluables que se definan en el plan docente –incluidas las pruebas finales– o en la calificación final de la asignatura, ya sea porque se han utilizado materiales o dispositivos no autorizados durante las pruebas, como redes sociales o buscadores de información en internet, porque se han copiado fragmentos de texto de una fuente externa (internet, apuntes, libros, artículos, trabajos o pruebas del resto de estudiantes, etc.) sin la correspondiente citación, o porque se ha practicado cualquier otra conducta irregular.

Por el otro, y de acuerdo con las normativas académicas, las conductas irregulares en la evaluación, además de comportar el suspenso de la asignatura, pueden dar lugar a la incoación de un procedimiento disciplinario y a la aplicación, si procede, de la sanción que corresponda.

Amunt

La asignatura solo puede aprobarse con el seguimiento y la superación de la evaluación continua (EC). La calificación final de la asignatura es la nota obtenida en la EC.

 

Amunt