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  
ATENCIÓN: Este es el plan docente de la asignatura para el primer semestre del curso 2020-2021. Os servirá para planificar la matrícula. 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.
 
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

MV - Phyton 3 Software en línea
Máquina virtual Software en línea
Espacio de recursos de ciencia de datos Web

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

La Normativa académica de la UOC dispone que el proceso de evaluación se fundamenta en el trabajo personal del estudiante y presupone la autenticidad de la autoría y la originalidad de los ejercicios realizados.

La falta de originalidad en la autoría o el mal uso de las condiciones en las que se hace la evaluación de la asignatura es una infracción que puede tener consecuencias académicas graves.

Se calificará al estudiante con un suspenso (D/0) si se detecta falta de originalidad en la autoría de alguna actividad evaluable (práctica, prueba de evaluación continua (PEC) o final (PEF), o la que se defina en el plan docente), ya sea porque ha utilizado material o dispositivos no autorizados, ya sea porque ha copiado de forma textual de internet, o ha copiado de apuntes, de materiales, manuales o artículos (sin la citación correspondiente) o de otro estudiante, o por cualquier otra conducta irregular.

La calificación de suspenso (D/0) en la evaluación continua (EC) puede conllevar la obligación de hacer el examen presencial para superar la asignatura (si hay examen y si superarlo es suficiente para superar la asignatura según indique este plan docente).

Cuando esta mala conducta se produzca durante la realización de las pruebas de evaluación finales presenciales, el estudiante puede ser expulsado del aula, y el examinador hará constar todos los elementos y la información relativos al caso.

Además, esta conducta puede dar lugar a la incoación de un procedimiento disciplinario y la aplicación, si procede, de la sanción que corresponda.

La UOC habilitará los mecanismos que considere oportunos para velar por la calidad de sus titulaciones y garantizar la excelencia y la calidad de su modelo educativo.

Amunt

Esta asignatura sólo puede superarse a partir de la evaluación continua (EC). La nota final de evaluación continua se convierte en la nota final de la asignatura. La fórmula de acreditación de la asignatura es la siguiente: EC.

 

Amunt