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 què disposa l'assignatura   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 al científic de dades per tal que pugui 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'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ó.

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ó. 
 
En ambos casos, recomanem haver cursat l’assignatura Fonaments de Programació per tal de poder fer un correcte seguiment d’aquesta assignatura. També per als estudiants 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 als estudiants 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 als estudiants que cursen 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

La Normativa acadèmica de la UOC disposa que el procés d'avaluació es fonamenta en el treball personal de l'estudiant i pressuposa l'autenticitat de l'autoria i l'originalitat dels exercicis fets.

La manca d'originalitat en l'autoria o el mal ús de les condicions en què es fa l'avaluació de l'assignatura és una infracció que pot tenir conseqüències acadèmiques greus.

Es qualificarà l'estudiant amb un suspens (D/0) si es detecta manca d'originalitat en l'autoria d'alguna activitat avaluable (pràctica, prova d'avaluació contínua (PAC) o final (PAF), o la que es defineixi al pla docent), sigui perquè ha utilitzat material o dispositius no autoritzats, sigui perquè ha copiat textualment d'internet, o ha copiat d'apunts, de materials, de manuals o d'articles (sense la citació corresponent), d'altres estudiants, o per qualsevol altra conducta irregular.

La qualificació de suspens (D/0) en les qualificacions finals d'avaluació contínua pot comportar l'obligació de fer l'examen presencial per a superar l'assignatura (si hi ha examen i si superar-lo és suficient per a superar l'assignatura segons indiqui el pla docent).

Quan aquesta mala conducta es produeixi durant la realització de les proves d'avaluació finals presencials, l'estudiant pot ser expulsat de l'aula, i l'examinador farà constar tots els elements i la informació relatius al cas.

D'altra banda, aquesta conducta pot donar lloc a la incoació d'un procediment disciplinari i l'aplicació, si escau, de la sanció que correspongui.

La UOC habilitarà els mecanismes que consideri oportuns per a vetllar per la qualitat de les seves titulacions i garantir l'excel·lència i la qualitat del seu model educatiu.

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