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 la UOC para la asignatura   Información adicional sobre los 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 primer semestre del curso 2024-2025. 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 a las personas que se dedican a la ciencia 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 estudiantado 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 del estudiantado que cursa el máster, y es obligatorio superarlos en función de la titulación de origen de cada persona. Todo el estudiantado del Máster de Ciencia de Datos debe superar Programación para la ciencia de datos como complemento de formación, a excepción de las personas 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 el estudiantado 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 estudiantado 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 al estudiantado 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 el estudiantado que cursa 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

En la UOC, la evaluación generalmente es virtual. Se estructura en torno a la evaluación continua, que incluye diferentes actividades o retos; la evaluación final, que se lleva a cabo mediante pruebas o exámenes, y el trabajo final de la titulación.

Las actividades o pruebas de evaluación pueden ser escritas y/o audiovisuales, con preguntas aleatorias, pruebas orales síncronas o asíncronas, etc., de acuerdo con lo que decida cada equipo docente. Los trabajos finales representan el cierre de un proceso formativo que implica la realización de un trabajo original y tutorizado que tiene como objetivo demostrar la adquisición competencial hecha a lo largo del programa.

Para verificar la identidad del estudiante y la autoría de las pruebas de evaluación, la UOC se reserva la potestad de aplicar diferentes sistemas de reconocimiento de la identidad y de detección del plagio. Con este objetivo, la UOC puede llevar a cabo grabación audiovisual o usar métodos o técnicas de supervisión durante la ejecución de cualquier actividad académica.

Asimismo, la UOC puede exigir al estudiante el uso de dispositivos electrónicos (micrófonos, cámaras u otras herramientas) o software específico durante la evaluación. Es responsabilidad del estudiante asegurar que estos dispositivos funcionan correctamente.

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 las actividades académicas. La web sobre integridad académica y plagio de la UOC contiene información al respecto.

La falta de autenticidad en la autoría o de originalidad de las pruebas de evaluación; la copia o el plagio; la suplantación de identidad; la aceptación o la obtención de cualquier actividad académica a cambio o no de una contraprestación; la colaboración, el encubrimiento o el favorecimiento de la copia, o el uso de material, software o dispositivos no autorizados en el plan docente o el enunciado de la actividad académica, incluida la inteligencia artificial y la traducción automática, entre otras, son conductas irregulares en la evaluación que pueden tener consecuencias académicas y disciplinarias graves.

Estas conductas irregulares pueden conllevar el suspenso (D/0) en las actividades evaluables definidas en el plan docente -incluidas las pruebas finales- o en la calificación final de la asignatura, ya sea porque se han utilizado materiales, software o dispositivos no autorizados durante las pruebas (como el uso de inteligencia artificial no permitida, 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 de otros estudiantes, etc.) sin la citación correspondiente, por la compraventa de actividades académicas, o porque se ha llevado a cabo cualquier otra conducta irregular.

Asimismo, y de acuerdo con la normativa académica, las conductas irregulares en la evaluación también pueden dar lugar a la incoación de un procedimiento disciplinario y a la aplicación, si procede, de la sanción que corresponda, de conformidad con lo establecido en la normativa de convivencia de la UOC.

En el marco del proceso de evaluación, la UOC se reserva la potestad de:

  • Solicitar al estudiante que acredite su identidad según lo establecido en la normativa académica.
  • Solicitar al estudiante que acredite la autoría de su trabajo a lo largo de todo el proceso de evaluación, tanto en la evaluación continua como en la evaluación final, a través de una entrevista oral síncrona, que puede ser objeto de grabación audiovisual, o por los medios establecidos por la UOC. Estos medios tienen el objetivo de verificar los conocimientos y las competencias que garanticen la identidad del estudiante. Si no es posible garantizar que el estudiante es el autor de la prueba, esta puede ser calificada con una D, en el caso de la evaluación continua, o con un suspenso, en el caso de la evaluación final.

Inteligencia artificial en el marco de la evaluación

La UOC reconoce el valor y el potencial de la inteligencia artificial (IA) en el ámbito educativo y, a su vez, pone de manifiesto los riesgos que supone si no se utiliza de forma ética, crítica y responsable. En este sentido, en cada actividad de evaluación se informará al estudiantado sobre las herramientas y los recursos de IA que se pueden utilizar y en qué condiciones. Por su parte, el estudiantado se compromete a seguir las indicaciones de la UOC a la hora de realizar las actividades de evaluación y de citar las herramientas utilizadas y, concretamente, a identificar los textos o imágenes generados por sistemas de IA, los cuales no podrá presentar como si fueran propios.

Respecto a usar o no la IA para resolver una actividad, el enunciado de las actividades de evaluación indica las limitaciones en el uso de estas herramientas. Debe tenerse en cuenta que usarlas de manera inadecuada, como por ejemplo en actividades en las que no están permitidas o no citarlas en las actividades en las que sí lo están, puede considerarse una conducta irregular en la evaluación. En caso de duda, se recomienda que, antes entregar la actividad, se haga llegar una consulta al profesorado colaborador del aula.

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