El coneixement d’algoritmes i de programació és fonamental per a l’estudi de la ciència de dades i l’analítica, així com per a les aplicacions informàtiques generals en ciències i enginyeria. L’assignatura cobreix els conceptes fonamentals d’algoritmes, tipus de dades, estructures de control, gestió de fitxers, classes i mètodes. Aquestes eines algorítmiques es connecten amb els conceptes de programació en Python: tipus i estructures de dades, control del flux d’execució, definició de funcions, entrada/sortida de fitxers i classes i mètodes per a la programació orientada a objectes.
No es requereix coneixement previ a nivell universitari.
L’objectiu principal d’aquesta assignatura és estudiar els fonaments de la programació i les bones pràctiques d’implementació en el llenguatge de propòsit general Python.
Els objectius específics són dotar els estudiants de les següents capacitats:
• Proposar solucions algorítmiques a problemes bàsics en ciència de dades, estadística i matemàtiques fonamentals.
• Construir programes utilitzant adequadament les estructures de dades de Python, el control de flux i la gestió de fitxers, així com les unitats de modularització.
• Comprendre els fonaments de la programació orientada a objectes i utilitzar classes en Python per resoldre problemes en els àmbits esmentats.
- Sistemes numèrics, model de computador de programa emmagatzemat i representació de nombres.
- Estructures de control seqüencials i condicionals: operacions booleanes o lògiques. Estructures de control condicionals o de selecció (simples, múltiples i imbricades).
- Estructures de control iteratives: bucles for i while; bucles imbricats; combinacions de for i while; instrucció break.
- Estructures de dades tipus arrays i operacions associades: vectors i matrius. Operacions element a element i a nivell d’array; mètodes de cerca i ordenació.
- Estructures de dades en Python: llistes, diccionaris, conjunts (sets) i tuples: creació, operacions i aplicacions.
- Funcions en Python: concepte (codi reutilitzable), pas d’arguments, exemples, recursivitat.
L’assignatura consta de dues sessions setmanals. Cada sessió es divideix en dues parts: una primera part magistral en què el professor explica els nous continguts, i una segona part en què els estudiants treballen en nous exercicis per consolidar la matèria. Cada dues o tres sessions es duen a terme activitats d’avaluació individuals o en grup mitjançant proves escrites, lliurament d’exercicis realitzats a casa, etc.
1) Activitats pràctiques d’avaluació: 20%
2) Examen parcial (part de programació + teoria): 30%
3) Projecte en grup (informe + presentació oral): 20%
4) Examen final (part de programació + teoria): 20%
5) Participació a classe: 10%
Utilització eines de IA: Si s’utilitzen eines de IA en alguna activitat, cal incloure un paràgraf a l’activitat indicant per a què has utilitzat la IA i quines indicacions has utilitzat per obtenir els resultats. No fer-ho és una violació de les polítiques d'honestedat acadèmica.
1) Activitats pràctiques d’avaluació: 20%
2) Examen parcial (part de programació + teoria): 30%
3) Projecte en grup (informe + presentació oral): 20%
4) Examen final (part de programació + teoria): 20%
5) Participació a classe: 10%
Utilització eines de IA: Si s’utilitzen eines de IA en alguna activitat, cal incloure un paràgraf a l’activitat indicant per a què has utilitzat la IA i quines indicacions has utilitzat per obtenir els resultats. No fer-ho és una violació de les polítiques d'honestedat acadèmica.
Bibliografia recomanada:
• Barry, P. (2017). Head First Python, 2a edició: A brain-friendly guide. O'Reilly Media, Inc.
• Phillips, D. (2015). Python 3 Object-Oriented Programming, 2a edició. Packt Publishing Ltd.
El professor pot proporcionar material addicional de pràctica.