Programació per a la ciència de dades Codi:  22.403    :  6
Consulta de les dades generals   Descripció   L'assignatura en el conjunt del pla d'estudis   Coneixements previs   Informació prèvia a la matrícula   Objectius i competències   Continguts   Consulta dels recursos d'aprenentatge de la UOC per a l'assignatura   Informació addicional sobre els recursos d'aprenentatge i eines de suport   Informacions sobre l'avaluació a la UOC   Consulta del model d'avaluació  
Aquest és el pla docent de l'assignatura per al primer semestre del curs 2024-2025. Podeu consultar si l'assignatura s'ofereix aquest semestre a l'espai del campus Més UOC / La universitat / Plans d'estudis). Un cop comenci la docència, heu de consultar-lo a l'aula. El pla docent pot estar subjecte a canvis.

A l'assignatura de Fonaments de Programació s'ha realitzat una introducció a la programació en llenguatge Python, centrada en la resolució de problemes de l'àmbit de la ciència de dades. En aquesta assignatura, es pretén que l'estudiant acabi d'assimilar els conceptes de programació explicats a Fonaments de Programació, aprofundint en la comprensió d'alguns dels conceptes clau, alhora que s'expliquen altres conceptes de programació més avançats, que permetran als estudiants afrontar problemes de programació més complexos i de manera més eficient, en Python.

La ciència de dades és un camp interdisciplinari en el qual s'estudien mètodes per extreure coneixement a partir de dades. Així, la ciència de dades utilitza tècniques de disciplines com matemàtiques, estadística o ciències de la computació, amb l'objectiu comú d'obtenir coneixement de dades.

L'objectiu d'aquest curs és doncs el de proveir d'eines a les persones que es dediquen a la ciència de dades per tal que puguin crear els seus propis programes que adquireixin, tractin, analitzin i/o visualitzin dades.  

El curs està estructurat en tres grans blocs. En primer lloc, el curs presenta una visió més profunda i formal a conceptes bàsics de programació. Es revisen algunes estructures de dades bàsiques (llistes, tuples, diccionaris), se'n presenten variants (diccionaris ordenats, piles, cues) i estructures de dades més avançades (arbres). També s'aprofundeix en l'ús de funcions per millorar la modularitat del codi, així com en l'ús de fitxers. En segon lloc, el curs se centra en l'optimització de programes: s'explica com avaluem la complexitat teòrica d'un determinat algorisme, quines eines podem fer servir per avaluar l'ús de recursos dels nostres programes, i quines tècniques tenim al nostre abast per millorar el rendiments dels nostres programes. Finalment, el tercer bloc explica com podem provar el correcte funcionament del nostre codi, com despleguem aplicacions per al seu ús i com es mantenen aquestes aplicacions una vegada han estat desplegades. Les explicacions es troben sempre contextualitzades en l'àmbit de la ciència de dades, proporcionant exemples on aplicar cadascuna de les tècniques presentades. D'aquesta manera, en acabar el curs, s'espera que l'estudiantat hagi adquirit unes bases sòlides de programació en Python que li permetin afrontar projectes d'anàlisi de dades i que serveixin com a base per a l'aprenentatge autònom de la programació.

Amunt

L'assignatura forma part dels programes del Grau de Ciència de Dades Aplicada i del Màster en Ciència de dades.  

Pel que fa al Grau de Ciència de dades aplicada, l'assignatura és obligatòria i forma part de la matèria de Programació.

Pel que fa al màster en ciència de dades, l'assignatura és un complement de formació. Els complements de formació tenen com a objectiu anivellar els coneixements dels estudiants que cursen el màster, i és obligatori superar-los en funció de la titulació d'origen de cada persona. Tots l'estudiantat del Màster de Ciència de Dades ha de superar Programació per a la ciència de dades com a complement de formació, a excepció de les persones que provinguin de titulacions oficials de l'àmbit de la Ciència de dades, la Informàtica, la Computació, o afins.

En ambdós casos, recomanem haver cursat l'assignatura Fonaments de Programació per tal de poder fer un correcte seguiment d'aquesta assignatura. També per l'estudiantat de les dues titulacions, l'assignatura té continuïtat en l'assignatura Disseny i Programació Orientada a Objectes, on es treballa el paradigma de programació orientada a objectes.

Amunt

L’assignatura assumeix que l’estudiant té un coneixement bàsic de Python, de les llibreries més comunes relacionades amb la ciència de dades en Python (principalment, numpy, pandas, matplotlib i scipy), i es troba familiaritzat amb l’ús de jupyter notebooks.

Amunt

Recomanem haver cursat l’assignatura Fonaments de Programació per tal de poder fer un correcte seguiment d’aquesta assignatura. 

Amunt

L'objectiu principal de l'assignatura és proporcionar a l'estudiantat una base sòlida de programació en Python, en el context dels problemes típics que s'afronten en ciència de dades. Aquesta assignatura es pot cursar dins el programa del Grau de Ciència de Dades Aplicada, o bé com a complement de formació del Màster en Ciència de Dades. A continuació es detallen les competències concretes a què fa referència l'assignatura en cada cas. Per a l'estudiantat que cursa el Grau de Ciència de Dades Aplicada, les competències del grau que es treballen en l'assignatura són: 

  • CB1 - Que els estudiants hagin demostrat posseir i comprendre coneixements en una àrea d'estudi que parteix de la base de l'educació secundària general, i se sol trobar a un nivell que, si bé es recolza en llibres de text avançats, inclou també alguns aspectes que impliquen coneixements procedents de l'avantguarda del seu camp d'estudi.
  • CB2 - Que els estudiants sàpiguen aplicar els seus coneixements al seu treball o vocació d'una forma professional i posseeixin les competències que solen demostrar-se per mitjà de l'elaboració i defensa d'arguments i la resolució de problemes dins la seva àrea d'estudi.
  • CB5 - Que els estudiants hagin desenvolupat aquelles habilitats d'aprenentatge necessàries per emprendre estudis posteriors amb un alt grau d'autonomia.
  • CG3 - Cercar, gestionar i utilitzar la informació més adequada per modelitzar problemes concrets i aplicar adequadament procediments teòrics per a la seva resolució de manera autònoma i creativa.
  • CT1 - Ús i aplicació de les TIC en l'àmbit acadèmic i professional.
  • CE5 - Utilitzar de forma combinada els fonaments matemàtics, estadístics i de programació per desenvolupar solucions a problemes en l'àmbit de la ciència de les dades.
  • CE6 - Entendre com els algorismes i les estructures de dades són dissenyats, optimitzats i aplicats segons l'escala del volum de dades.
  • CE7 - Dissenyar i construir aplicacions analítiques mitjançant tècniques de desenvolupament, integració i reutilització de components programari.
  • CE9- Aplicar tècniques específiques de captura, tractament i anàlisi de dades estructurades, semi-estructurats i no estructurats.

Amunt

Bloc 1: Es presenta una visió més profunda i formal a conceptes bàsics de programació. Es revisen algunes estructures de dades bàsiques (llistes, tuples, diccionaris), se’n presenten variants (diccionaris ordenats, piles, cues) i estructures de dades més avançades (arbres). També s’aprofundeix en l’ús de funcions per millorar la modularitat del codi, així com en l’ús de fitxers. El bloc 1 està format per les següents unitats:
 
  • Unitat 0: Una mirada més profunda i formal als conceptes bàsics de Python
  • Unitat 1: Estructures de dades avançades en Python
  • Unitat 2: Ús avançat de funcions en Python
  • Unitat 3. Fitxers i interacció amb el sistema 
 
Bloc 2: Se centra en l’optimització de programes: s’explica com avaluem la complexitat teòrica d’un determinat algorisme, quines eines podem fer servir per avaluar l’ús de recursos dels nostres programes, i quines tècniques tenim al nostre abast per millorar el rendiments dels nostres programes. El bloc 2 està format per les següents unitats:
 
  • Unitat 4: Optimització de codi Python: complexitat algorísmica i profiling
  • Unitat 5: Optimització de codi Python: programació paral·lela 

Bloc 3: S’exposa com podem provar el correcte funcionament del nostre codi, com despleguem aplicacions per al seu ús i com es mantenen aquestes aplicacions una vegada han estat desplegades. Les explicacions es troben sempre contextualitzades en l’àmbit de la ciència de dades, proporcionant exemples on aplicar cadascuna de les tècniques presentades. D'aquesta manera, en acabar el curs, s'espera que l'estudiant hagi adquirit unes bases sòlides de programació en Python que li permetin afrontar projectes d'anàlisi de dades i que serveixin com a base per a l'aprenentatge autònom de la programació. El bloc 3 està format per la següent unitat:

  • Unitat 6: Testing, manteniment i desplegament d’aplicacions Python

Amunt

Espai de recursos de ciència de dades Web
MV - Linux Programari en línia

Amunt

A cada unitat trobareu el material necessari per a realitzar un treball pràctic. Això inclou teoria, referències bibliogràfiques, enllaços, exemples pràctics, enunciats de problemes a resoldre i programari necessari. Amb això es pretén que us familiaritzeu amb el contingut a través de la pràctica (learn by doing).
 
L'entorn de programació que es proposa s'utilitzarà una màquina virtual amb la distribució Xubuntu instal·lada i que correrà sobre l'arquitectura Oracle VM VirtualBox. La màquina virtual ja disposa de totes les llibreries Python instal·lades que es necessiten. La versió de Python escollida és l'última estable de les sèrie 3. Els mòduls amb els continguts són notebooks de jupyter que permeten executar els exemples i exercicis proposats des del navegador web i amb la possibilitat de modificar-los per a una millor comprensió.

Amunt

A la UOC, l'avaluació generalment és virtual. S'estructura entorn de l'avaluació contínua, que inclou diferents activitats o reptes; l'avaluació final, que es porta a terme mitjançant proves o exàmens, i el treball final de la titulació.

Les activitats o proves d'avaluació poden ser escrites i/o audiovisuals, amb preguntes aleatòries, proves orals síncrones o asíncrones, etc., d'acord amb el que decideixi cada equip docent. Els treballs finals representen el tancament d'un procés formatiu que implica la realització d'un treball original i tutoritzat que té com a objectiu demostrar l'adquisició competencial feta al llarg del programa.

Per verificar la identitat de l'estudiant i l'autoria de les proves d'avaluació, la UOC es reserva la potestat d'aplicar diferents sistemes de reconeixement de la identitat i de detecció del plagi. Amb aquest objectiu, la UOC pot dur a terme enregistrament audiovisual o fer servir mètodes o tècniques de supervisió durant l'execució de qualsevol activitat acadèmica.

Així mateix, la UOC pot exigir a l'estudiant l'ús de dispositius electrònics (micròfons, càmeres o altres eines) o programari específic durant l'avaluació. És responsabilitat de l'estudiant assegurar que aquests dispositius funcionen correctament.

El procés d'avaluació es fonamenta en el treball personal de l'estudiant i pressuposa l'autenticitat de l'autoria i l'originalitat de les activitats acadèmiques. Al web sobre integritat acadèmica i plagi de la UOC hi ha més informació respecte d'aquesta qüestió.

La manca d'autenticitat en l'autoria o d'originalitat de les proves d'avaluació; la còpia o el plagi; la suplantació d'identitat; l'acceptació o l'obtenció de qualsevol activitat acadèmica a canvi d'una contraprestació o no; la col·laboració, l'encobriment o l'afavoriment de la còpia, o l'ús de material, programari o dispositius no autoritzats en el pla docent o l'enunciat de l'activitat acadèmica, inclosa la intel·ligència artificial i la traducció automàtica, entre altres, són conductes irregulars en l'avaluació que poden tenir conseqüències acadèmiques i disciplinàries greus.

Aquestes conductes irregulars poden comportar el suspens (D/0) en les activitats avaluables que es defineixin en el pla docent -incloses les proves finals- o en la qualificació final de l'assignatura, sigui perquè s'han utilitzat materials, programari o dispositius no autoritzats durant les proves (com l'ús d'intel·ligència artificial no permesa, xarxes socials o cercadors d'informació a internet), perquè s'han copiat fragments de text d'una font externa (internet, apunts, llibres, articles, treballs o proves d'altres estudiants, etc.) sense la citació corresponent, per la compravenda d'activitats acadèmiques, o perquè s'ha dut a terme qualsevol altra conducta irregular.

Així mateix, i d'acord amb la normativa acadèmica, les conductes irregulars en l'avaluació també poden donar lloc a la incoació d'un procediment disciplinari i a l'aplicació, si escau, de la sanció que correspongui, de conformitat amb el que estableix la normativa de convivència de la UOC.

En el marc del procés d'avaluació, la UOC es reserva la potestat de:

  • Sol·licitar a l'estudiant que acrediti la seva identitat segons el que estableix la normativa acadèmica.
  • Sol·licitar a l'estudiant que acrediti l'autoria del seu treball al llarg de tot el procés d'avaluació, tant en l'avaluació contínua com en l'avaluació final, per mitjà d'una entrevista oral síncrona, que pot ser objecte d'enregistrament audiovisual, o pels mitjans que estableixi la Universitat. Aquests mitjans tenen l'objectiu de verificar els coneixements i les competències que garanteixin la identitat de l'estudiant. Si no és possible garantir que l'estudiant és l'autor de la prova, aquesta pot ser qualificada amb una D, en el cas de l'avaluació contínua, o amb un suspens, en el cas de l'avaluació final.

Intel·ligència artificial en el marc de l'avaluació

La UOC reconeix el valor i el potencial de la intel·ligència artificial (IA) en l'àmbit educatiu, alhora que posa de manifest els riscos que comporta si no s'utilitza de manera ètica, crítica i responsable. En aquest sentit, en cada activitat d'avaluació s'informarà l'estudiantat sobre les eines i els recursos d'IA que es poden utilitzar i en quines condicions. Per la seva banda, l'estudiantat es compromet a seguir les indicacions de la UOC a l'hora de dur a terme les activitats d'avaluació i de citar les eines utilitzades i, concretament, a identificar els textos o les imatges generats per sistemes d'IA, els quals no podrà presentar com si fossin propis.

Amb relació a fer servir o no la IA per resoldre una activitat, l'enunciat de les activitats d'avaluació indica les limitacions en l'ús d'aquestes eines. Cal tenir en compte que fer-les servir de manera inadequada, com ara en activitats en què no estan permeses o no citar-les en les activitats en què sí que ho estan, es pot considerar una conducta irregular en l'avaluació. En cas de dubte, es recomana que, abans de lliurar l'activitat, es faci arribar una consulta al professorat col·laborador de l'aula.

Amunt

L'assignatura només es pot aprovar amb el seguiment i la superació de l'avaluació contínua (AC). La qualificació final de l'assignatura és la nota obtinguda a l'AC.

 

Amunt