Logo

Fonaments de Programació

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

Professor/a de contacte

Nom :
Robert 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 propi 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.

Resultats d'aprenentatge

  1. 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.
  2. Avaluar de manera crítica el treball realitzat.
  3. Planificar i gestionar el temps i els recursos disponibles.
  4. Aplicar els principis bàsics de l'estructura i la programació dels computadors.
  5. Implementar en un llenguatge de programació problemes algorítmics de dificultat mitjana.
  6. Desenvolupar programes amb un bon estil de programació i ben documentats.
  7. Aplicar estratègies de depuració, prova i correcció de programes.

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
Preparació classes i estudi personal 30 1,2 1, 3, 4, 5, 6, 7
Resolució de problemes auto-avaluables 41 1,64 1, 2, 4, 5, 6, 7
Projectes de programació 25 1 1, 2, 3, 4, 5, 6, 7
Classes de problemes 30 1,2 1, 2, 4, 5, 6, 7
Classes de teoria 10 0,4 1, 2, 4, 5, 6, 7
Classes de pràctiques 10 0,4 1, 2, 3, 4, 5, 6, 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-se 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è l'alumnat completi 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
Examen final 45% 2 0,08 1, 2, 4, 5, 6, 7
Lliuraments de problemes 15% 0 0 4, 5, 6, 7
Examen intrasemestral 15% 2 0,08 1, 4, 5, 6, 7
Activitats de classe avaluables 10% 0 0 2, 4, 5, 6, 7
Pràctiques 15% 0 0 3, 4, 5, 6, 7

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.

L'examen intrasemestral es podrà recuperar a través de l'examen final i de l'examen de recuperació. En cas que la nota de l'examen final o de l'examen de recuperació sigui superior a la nota de l'examen intrasemestral, la nota del final o de la recuperació substituirà la nota de l'examen 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à la qualificació 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


Alumnat amb discapacitat o necessitats educatives de suport educatiu (NESE)

L'alumnat amb discapacitat o necessitats educatives de suport educatiu (NESE) pot contactar amb el Servei d'Igualtat i Diversitat de la UAB que dona suport específic pel desenvolupament d'una vida acadèmica i social plena i autònoma a la universitat.


Sol·licituds de reprogramacions

Existeix un protocol de "sol·licitud de reprogramació d'activitats d'avaluació" segons els casos especificats als criteris i instruccions d'avaluació en l'Escola d'Enginyeria.


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, com la 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 assolir tots els punts següents:

  • nota superior a 2 en l'examen final o de recuperació de "Fonaments de Programació"
  • nota final superior a 6 a "Programació Avançada"
  • nota superior a 7 en els problemes de repàs proposats a principi de curs a "Programació Avançada"

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 els punts 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. 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

Tipus de docència Grup Idioma Semestre Torn
(PAUL) Pràctiques d'aula 81 Català/Castellà primer quadrimestre matí-mixt
(PAUL) Pràctiques d'aula 82 Català/Castellà primer quadrimestre matí-mixt