Aquesta versió de la guia docent és provisional fins que no finalitzi el període d’edició de les guies del nou curs.

Logo UAB

Fonaments de Programació

Codi: 104337 Crèdits: 6
2025/2026
Titulació Tipus Curs
Enginyeria de Dades FB 1

Professor/a de contacte

Nom:
Roberto Benavente Vidal
Correu electrònic:
robert.benavente@uab.cat

Equip docent

Ivan Erill Sagales

Idiomes dels grups

Podeu consultar aquesta informació al final del document.


Prerequisits

Atès que l’assignatura és d’introducció, s’assumirà que no es posseeix cap tipus de coneixement previ sobre la matèria.

Malgrat això, és recomanable tenir coneixements a nivell d’usuari d’algun tipus de plataforma (windows, mac o linux).

En les activitats presencials a l'aula és imprescindible disposar d'un ordinador portàtil per a realitzar les tasques de l'assignatura.

 


Objectius

Aquesta assignatura té un caràcter general i introductori a la programació. S'aprofundirà en l'estudi dels aspectes metodològics de la programació i l'aprenentatge d'un llenguatge d'alt nivell. Per tant, els objectius generals que es proposen són els següents:

  • Entendre el cicle de vida del software: anàlisi del problema (entendre el que se’ns demana), disseny (proposar una solució al problema), implementació (codificació en un llenguatge de programació de la solució escollida), i prova (realització d’un test de manera sistemàtica per assegurar la correctesa de la solució implementada).
  • Dotar l'estudiant de la capacitat de disseny d'algorismes per a la resolució de problemes, introduint de manera progressiva i sistemàtica una metodologia rigorosa i estructurada de programació, basada fonamentalment en la tècnica del disseny descendent d'algorismes.
  • Introduir a l'estudiant en un llenguatge de programació real. Es pretén que l'estudiant percebi la diferència entre la flexibilitat de la notació pseudo-algorísmica que s'empra en els primers temes i l'estricta sintaxi d'un llenguatge de programació real, en els seus aspectes lèxics (paraules vàlides del llenguatge), sintàctics (regles per combinar-les) i semàntics (significat de les mateixes).
  • Habituar l'estudiant a desenvolupar programes seguint unes normes d'estil tendents a aconseguir programes de qualitat. Dins d'aquestes normes d'estil s'engloben aquelles que faciliten la comprensió del codi, com poden ser l'ús de comentaris, la indentació del codi, la utilització de noms adequats per als tipus de dades, etc.

 


Competències

  • Avaluar de manera crítica el treball realitzat.
  • Dissenyar solucions algorítmiques eficients per a problemes computacionals, implementar-les en forma de desenvolupaments de programari robust, estructurat i fàcil de mantenir, i verificar-ne la validesa.
  • Planificar i gestionar el temps i els recursos disponibles.
  • Que els estudiants hagin demostrat que comprenen i tenen 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 basa en llibres de text avançats, inclou també alguns aspectes que impliquen coneixements procedents de l'avantguarda d'aquell camp d'estudi.

Resultats d'aprenentatge

  1. Aplicar els principis bàsics de l'estructura i la programació dels computadors.
  2. Aplicar estratègies de depuració, prova i correcció de programes.
  3. Avaluar de manera crítica el treball realitzat.
  4. Desenvolupar programes amb un bon estil de programació i ben documentats.
  5. Implementar en un llenguatge de programació problemes algorítmics de dificultat mitjana.
  6. Planificar i gestionar el temps i els recursos disponibles.
  7. Que els estudiants hagin demostrat que comprenen i tenen 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 basa en llibres de text avançats, inclou també alguns aspectes que impliquen coneixements procedents de l'avantguarda d'aquell camp d'estudi.

Continguts

Tema 1: Introducció a la informàtica

Història. Estructura funcional de l’ordinador. Programes/instruccions. Nivells conceptuals de l’ordinador.

Tema 2: Resolució de problemes: introducció a l’algorísmica i la programació.

Introducció a la resolució de problemes. Concepte d'algorisme. Fases en el desenvolupament d'algorismes. La programació com a disciplina d'enginyeria. Cicle de vida del software. Elements bàsics d'un algorisme. Eines per a la representació d'algorismes. Llenguatges de programació. Classificació. Traductors de llenguatges: Compiladors i intèrprets.

Tema 3: Conceptes bàsics i estructures de control

Definició de variables i constants. Tipus de dades fonamentals. Estructura Seqüencial. Estructures de selecció o condicionals. Estructures iteratives o repetitives.

Tema 4: Estructures de dades

Arrays unidimensionals: strings, tuples i llistes. Cerques i recorreguts.

Tema 5: Subprogrames

El concepte de subprograma com a abstracció d'operacions. Localitat, niament, àmbit i visibilitat. Definició de funcions i procediments. Crides a funcions i procediments. Disseny modular descendent.

Tema 6: Fitxers

Definicions bàsiques. Entrada/ sortida de dades en fitxers. Tipus d'accesos a fitxers.

Tema 7: Prevenció i detecció d'errors

Tipus d'errors. Excepcions. Depuració de programes.

Tema 8: Introducció a la programació orientada a objectes

Classes i objectes. Atributs i mètodes. Encapsulació. Definició de classes.

Tema 9: Tipus de dades  complexes 

Llistes: iteradors, generadors, paradigma funcional i list comprehensions. Conjunts. Diccionaris.

 


Activitats formatives i Metodologia

Títol Hores ECTS Resultats d'aprenentatge
Tipus: Dirigides      
Classes de pràctiques 10 0,4 1, 2, 3, 4, 5, 6, 7
Classes de problemes 30 1,2 1, 2, 3, 4, 5, 7
Classes de teoria 10 0,4 1, 2, 3, 4, 5, 7
Tipus: Supervisades      
Projectes de programació 25 1 1, 2, 3, 4, 5, 6, 7
Tipus: Autònomes      
Preparació classes i estudi personal 30 1,2 1, 2, 4, 5, 6, 7
Resolució de problemes auto-avaluables 41 1,64 1, 2, 3, 4, 5, 7

La gestió de la docència de l'assignatura es farà a través del gestor documental Caronte (http://caronte.uab.cat/), que servirà per a poder veure els materials, gestionar els grups de pràctiques, fer els lliuraments corresponents, veure les notes, comunicar-vos amb el professorat, etc. Per a poder-lo utilitzar cal fer els següents passos:

  1.  Donar-se d'alta donant el nom, NIU, i una foto en format JPG. Si ja us heu donat d'alta per alguna altra assignatura, no cal tornar-ho a fer; podeu anar al següent pas.
  2.  Inscriure’s al tipus de docència "Programació en Python", donant com a codi d'assignatura el proporcionat el primer dia de classe. 

En el desenvolupament de l'assignatura es seguirà la metodologia d'aula inversa. Això significa que l'alumnat haurà de treballar alguns coneixements abans de les sessions presencials on principalment es realitzaran activitats pràctiques amb l'objectiu de tractar el màxim de casos possibles per entendre la complexitat del que implica plantejar una solució a un problema de programació.

Abans de classe. Els conceptes bàsics es treballen abans de les sessions presencials a partir dels materials proporcionats amb una setmana d'antelació a la plataforma Caronte. El material a treballar serà documentació escrita, contingut multimèdia i activitats d'aprenentatge.

Cada estudiant ha de preparar-se les classes abans d’assistir-hi, revisant els materials tantes vegades com calgui per assimilar els conceptes. Com a orientació, es recomana dedicar setmanalment un nombre d’hores equivalent al temps de classe, aproximadament entre 2 i 3 hores setmanalment. Per a cada tema, es proposarà un qüestionari que permetrà avaluar el grau d’assoliment dels continguts treballats

A Classe. L'objectiu de les sessions presencials és passar de la informació al coneixement. Posarem l'èmfasi en crear coneixements aplicables a l'anàlisi i solució de problemes concrets. L'estructura de les classes serà:

  • Revisió dels conceptes bàsics del tema a tractar (15 min). L'objectiu és resoldre els dubtes que pugui haver-hi sobre aspectes teòrics no entesos i fer seguiment de l'adquisició dels conceptes bàsics.
  • Solució de problemes (resta del temps de classe). L'objectiu és experimentar fent una tasca pràctica que permeti aplicar els conceptes apresos per resoldre reptes i així compartir i crear coneixement.

Després de Classe. L'objectiu és consolidar el coneixement. A la plataforma Caronte es podran trobar un conjunt de problemes avaluables d'autocorrecció que han de permetre a l'alumnat aprofundir en la comprensió dels temes i personalitzar el coneixement. El fet que sigui auto-avaluable permet adequar el ritme de consolidació a cada estudiant i que es produeixi una reflexió sobre el propi aprenentatge.

Nota: es reservaran 15 minuts d'una classe, dins del calendari establert pel centre/titulació, perquè els alumnes completin les enquestes d'avaluació de l'actuació del professorat i d'avaluació de l'assignatura.


Avaluació

Activitats d'avaluació continuada

Títol Pes Hores ECTS Resultats d'aprenentatge
Activitats de classe avaluables 10% 0 0 1, 2, 3, 4, 5
Examen final 45% 2 0,08 1, 2, 3, 4, 5, 7
Examen intrasemestral 15% 2 0,08 1, 2, 3, 4, 5, 7
Lliuraments de problemes 15% 0 0 1, 2, 4, 5
Pràctiques 15% 0 0 1, 2, 4, 5, 6

Activitats d'avaluació programades

L’assignatura consta de les activitats d’avaluació següents: 

Activitat

Tipus

Pes

Nota mínima

Recuperable

Examen intrasemestral

individual

15%

No

Si

Examen final

individual

45%

5

Si

Pràctiques

grupal

15%

5

Si

Resolució de problemes

individual

15%

No

Si

Activitats de classe avaluables

individual

10%

No

No

Per poder aprovar l’assignatura, caldrà tenir una nota mínima de 5 en l'examen final i les pràctiques.

 

Programació d’activitats d’avaluació

El calendari de les activitats d’avaluació es donarà el primer dia de l’assignatura i es farà públic a través de Caronte, i a l’apartat d’exàmens de la web del grau.

 

Procés de recuperació

L’estudiant es pot presentar a la recuperació sempre que s’hagi presentat a un conjunt d’activitats que representi un mínim de dues terceres parts de la qualificació total de l’assignatura. En particular si l’estudiant no s’ha presentat a l’examen final no podrà fer l’examen de recuperació

L’examen final es podrà recuperar en la data fixada per la coordinació del grau. En cas de realitzar l’examen de recuperació, la nota d’aquest examen també podrà substituir la nota de l’examen intrasemestral si la nota de la recuperació és superior a la nota de l’intrasemestral.

Les pràctiques es podran recuperar en un segon lliurament a la data fixada en el calendari de les activitats d’avaluació que es donarà el primer dia de l’assignatura i es farà públic a través de Caronte.

Els lliuraments de problemes es podran recuperar en qualsevol moment del curs, lliurant-los de nou i avaluant-los amb l'autocorrector.

D’acord amb la coordinació del Grau i la direcció de l’Escola d’Enginyeria les activitats de classe avaluables no es podran recuperar.

 

Procediment de revisió de les qualificacions

Pels exàmens (intrasemestral, final i recuperació), s’indicarà un lloc, data i hora de revisió en la que l'alumnat podrà revisar l’activitat amb el professorat. En aquest context, es podran fer reclamacions sobre la nota de l’activitat, que seran avaluades pel professorat responsable de l’assignatura. Si l'estudiant no es presenta a aquesta revisió, no es revisarà posteriorment aquesta activitat.

Per la resta d'activitats, si es detecta alguna errada en la correcció, es podrà demanar que es revisi en qualsevol moment, fins la data de la revisió de l'examen de recuperació.

 

Qualificacions

No Avaluable (NA): Un estudiant es considerarà no avaluable (NA) si no s’ha presentat a cap de les següents activitats d'avaluació: exàmens de l'assignatura (intrasemestral, final i recuperació), pràctiques i activitats avaluables a classe.

Nota final: Es calcula amb la suma ponderada de les activitats d'avaluació segons els criteris exposats en l'apartat d'activitats d'avaluació.

En cas de no superar l'assignatura degut a que alguna de les activitats d'avaluació no arriba a la nota mínima requerida, la nota numèrica de l'expedient serà el valor menor entre 4.5 i la mitjana ponderada de les notes. Amb les excepcions de que s'atorgarà laqualificació de "No Avaluable" a l’alumnat que no participi en cap de les activitats d'avaluació, i de que la nota numèrica de l'expedient serà el valor menor entre 3.0 i la mitjana ponderada de les notes en cas que el o la estudiant hagi comès irregularitats en un acte d'avaluació

Matrícules d'honor: Atorgar una qualificació de matrícula d'honor és decisió del professorat responsable de l'assignatura. La normativa de la UAB indica que les MH només es podran concedir a estudiants que hagin obtingut una qualificació final igual o superior a 9.00. Es pot atorgar fins a un 5% de MH del total d'estudiants matriculats. En el cas que el nombre d'estudiants amb nota superior o igual a 9 superi el 5% del total de matriculats, s'aplicaran els criteris de priorització següents en l'ordre enumerat a continuació:

  1. Estudiants que hagin fet menys activitats de recuperació.
  2. Estudiants amb nota final més alta.
  3. Estudiants amb nota més alta a l’examen final
  4. Estudiants amb nota més alta a l’examen intrasemestral

 

Irregularitats comeses per l'alumnat

Sense perjudici d'altres mesures disciplinàries que s'estimin oportunes, i d'acord amb la normativa acadèmica vigent, les irregularitats comeses per un/a estudiant que puguin conduir a una variació de la qualificació en una activitat avaluable es qualificaran amb un zero (0). Les activitats d'avaluació qualificades d'aquesta forma i per aquest procediment no seran recuperables. Si és necessari superar qualsevol d'aquestes activitats d'avaluació per aprovar l'assignatura, aquesta assignatura quedarà suspesa directament, sense oportunitat de recuperar-la en el mateix curs. Aquestes irregularitats inclouen, entre d'altres:

  • la còpia total o parcial d'una pràctica, informe, o qualsevol altra activitat d'avaluació;
  • deixar copiar;
  • presentar un treball de grup no fet íntegrament pels membres del grup (aplicat a tots els membres, no solament als que no han treballat);
  • ús no autoritzat de la IA (p. ex, Copilot, ChatGPT o equivalents) per a resoldre exercicis, pràctiques i/o qualsevol altra activitat avaluable;
  • presentar com a propis materials elaborats per un tercer, encara que siguin traduccions o adaptacions, i en general treballs amb elements no originals i exclusius de l'estudiant;
  • tenir dispositius de comunicació (com telèfons mòbils, smart watches, bolígrafs amb càmera, etc.) accessibles durant les proves d'avaluació teorico-pràctiques individuals (exàmens);
  • parlar amb companys durant les proves d'avaluació teorico-pràctiques individuals (exàmens);
  • copiar o intentar copiar d'altres alumnes durant les proves d'avaluació teorico-pràctiques (exàmens);
  • usar o intentar usar escrits relacionats amb la matèria durant la realització de les proves d'avaluació teorico-pràctiques (exàmens), quan aquests no hagin estat explícitament permesos.

En edicions futures d'aquesta assignatura, a l'alumnat que hagi comès irregularitats en un acte d'avaluació no se li convalidarà cap de les activitats d'avaluació realitzades ni es podrà acollir a cap normativa específica d'avaluació dels estudiants repetidors.

 

Ús de la IA

Per a aquesta assignatura, es permet l'ús de tecnologies d'Intel·ligència Artificial (IA) exclusivament en tasques de suport, comla cerca d’informació, la interpretació i explicació de programes, resolució de dubtes, etc. En cap cas es permet l'ús de la IA per a la realització de les tasques de programació que s'han de lliurar com a part de l'avaluació. Qualsevol treball que inclogui fragments generats amb IA serà considerat una falta d'honestedat acadèmica i comportarà l'aplicació de la normativa referent a irregularitats per part de l'estudiant.

 

Avaluació dels estudiants repetidors

Si el curs anterior l'actual es va superat l'assignatura "Programació Avançada" i es van aprovar els exercicis de repàs proposats en aquella assignatura, es podrà optar per una avaluació que consistirà en una prova de síntesi, sense haver de fer totes les activitats d'avaluació. La nota final en aquest cas serà de 5.

Per poder optar a aquesta avaluació diferenciada, la persona interessada ho ha de demanar al professorat mitjançant correu electrònic (Robert.Benavente@uab.cat o Ivan.Erill@uab.cat) com a molt tard 15 dies després de l’inici de les classes.

La resta d'estudiants repetidors han de cursar l’assignatura per complet. No es mantindrà cap nota de cursos anteriors. 

 

Avaluació única

Aquesta assignatura ofereix sistema d'avaluació única.

L'avaluació única de l'assignatura constarà de les següents activitats d'avaluació:

Activitat

Tipus

Pes

Nota mínima

Recuperable

Examen final

individual

60%

5

Si

Pràctiques

grupal

15%

5

Si

Resolució de problemes

individual

15%

No

Si

Qüestionari de pràctiques

individual

10%

5

Per poder aprovar l’assignatura, caldrà tenir una nota mínima de 5 en l'examen final, les pràctiques i el qüestionari de pràctiques.

S'aplicarà el mateix sistema de recuperació que per l'avaluació continuada, excepte en elspunts que fan referència a l’examen intrasemestral. El qüestionari de pràctiques es podrà recuperar el dia de l'examen de recuperació.

La revisió de la qualificació final segueix el mateix procediment que per a l'avaluació continuada.

S'aplicarà el mateix criteri de no avaluable que per a l'avaluació continuada.

 


Bibliografia

J. L. Gahete Díaz, C. M. Vallez Fernández, A. Fernández-Pacheco Sánchez-Migallóm. Fundamentos de programación con Python. McGraw Hill, 1ª edición, 2024. ISBN-10: 9788448645274

J. Guttag. Introduction to Computation and Programming Using Python: With Application to Understanding Data. MIT Press, 2nd edition, 2016. ISBN-10: 9780262529624

S. Chazallet. Python 3: Los fundamentos del lenguaje.  Ediciones ENI, 2ª edición, 2016. ISBN-10: 2409006140

E. Matthes. Python Crash Course: A Hands-On, Project-Based Introduction to Programming. No Starch Press, 1st edition, 2016. ISBN-10: 1593276036 (Existeix versió online: https://ebookcentral.proquest.com/lib/uab/detail.action?docID=4503145)

M. Myers. A Smarter Way to Learn Python: Learn it faster. Remember it longer. Createspace Independent Pub, 2017. ISBN-10: 1974431479

L. Joyanes Aguilar.  Fundamentos de Programación: Algoritmos, Estructuras de Datos y Objetos.  5ª Edición, McGraw-Hill, 2020. ISBN-10:8448161114 (Existeix versió online: https://www-ingebook-com.eu1.proxy.openathens.net/ib/NPcd/IB_Escritorio_Visualizar?cod_primaria=1000193&libro=10211)

 


Programari

S'utilitzarà la darrera versió del paquet Anaconda que inclou Python 3.x i l'editor Spyder (https://www.anaconda.com/download/success).

 


Grups i idiomes de l'assignatura

La informació proporcionada és provisional fins al 30 de novembre de 2025. A partir d'aquesta data, podreu consultar l'idioma de cada grup a través d’aquest enllaç. Per accedir a la informació, caldrà introduir el CODI de l'assignatura

Nom Grup Idioma Semestre Torn
(PAUL) Pràctiques d'aula 81 Català primer quadrimestre matí-mixt
(PAUL) Pràctiques d'aula 82 Català primer quadrimestre matí-mixt