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. Us servirà per planificar la matrícula (consulteu 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ó. 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 estudiant. Tots els estudiants del Màster de Ciència de Dades han de superar Programació per a la ciència de dades com a complement de formació, a excepció dels 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 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 - Python 3 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

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 realitzats.

La manca d'autenticitat en l'autoria o d'originalitat de les proves d'avaluació; la còpia o el plagi; l'intent fraudulent d'obtenir un resultat acadèmic millor; la col·laboració, l'encobriment o l'afavoriment de la còpia, o la utilització de material o dispositius no autoritzats durant l'avaluació, entre d'altres, són conductes irregulars que poden tenir conseqüències acadèmiques i disciplinàries greus.

D'una banda, si es detecta alguna d'aquestes conductes irregulars, pot 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 o dispositius no autoritzats durant les proves, com ara 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, o perquè s'ha practicat qualsevol altra conducta irregular.

De l'altra, i d'acord amb les normatives acadèmiques, les conductes irregulars en l'avaluació, a més de comportar el suspens de l'assignatura, poden donar lloc a la incoació d'un procediment disciplinari i a l'aplicació, si escau, de la sanció que correspongui.

Amunt

Aquesta assignatura només es pot superar a partir de l'avaluació contínua (AC). La nota final d'avaluació contínua esdevé la nota final de l'assignatura. La fórmula d'acreditació de l'assignatura és la següent: AC.

 

Amunt