Logo UAB

Programació Orientada als Objectes

Codi: 104389 Crèdits: 6
2025/2026
Titulació Tipus Curs
Matemàtica Computacional i Analítica de Dades FB 1

Professor/a de contacte

Nom:
Guillermo Eduardo Torres
Correu electrònic:
guillermo.torres@uab.cat

Equip docent

Enric Sala Esteva

Idiomes dels grups

Podeu consultar aquesta informació al final del document.


Prerequisits

No hi ha prerequisits oficials, però és necessari saber programar en Python.


Objectius

L'objectiu principal és que l'estudiant adquireixi coneixements sobre els principis del Disseny Orientat a Objectes i els Patrons de Disseny, amb la finalitat d'elaborar dissenys de programari que es representin mitjançant diagrames UML i s'implementin posteriorment en un llenguatge de programació orientat a objectes.

Això inclou conceptes fonamentals com a classes, objectes, mètodes, atributs, herència, composició i encapsulamiento. A partir d'aquests principis, s'introdueixen els Patrons de Disseny de Programari, que proporcionen solucions reutilitzables a problemes comuns en el desenvolupament de programari.

Els diagrames UML permeten representar de manera clara les estructures i relacions del programari, facilitant la visualització i comparació de diferents dissenys, així com la planificació de la seva implementació.


Resultats d'aprenentatge

  1. CM09 (Competència) Desenvolupar solucions algorísmiques eficients a problemes computacionals d'acord amb els requisits establerts per a la programació orientada a objectes.
  2. CM10 (Competència) Analitzar la complexitat computacional de les solucions algorísmiques per a desenvolupar i implementar la que garanteixi el millor rendiment de la programació orientada a objectes.
  3. CM11 (Competència) Assegurar el funcionament correcte d'una solució algorísmica d'acord amb els requisits del problema a resoldre per a la programació orientada a objectes.
  4. KM09 (Coneixement) Reconèixer els mètodes, sistemes i tecnologies propis de la programació orientada a objectes.
  5. SM09 (Habilitat) Utilitzar els sistemes operatius i programes d'ús comú en la programació orientada a objectes.
  6. SM10 (Habilitat) Utilitzar les estructures algorísmiques i de representació de dades adequades per a la resolució de problemes en la programació orientada a objectes.

Continguts

  1. Conceptes d'orientació a objectes.
    Introducció als principis fonamentals de l'orientació a objectes, com el encapsulamiento, l'herència, la composició o l'ús d'interfícies, així com la representació gràfica mitjançant diagrames de classes UML.

  2. Programació orientada a objectes en Python.
    Ús d'un llenguatge de programació per a aplicar els conceptes orientats a objectes, incloent-hi característiques avançades del llenguatge.

  3. Principis de disseny orientat a objectes.
    Anàlisis de principis per a estructurar programari mantenible i escalable, i assignar responsabilitats de manera coherent entre els components.

  4. Patrons de disseny.
    Estudi de solucions reutilitzables per a problemes comuns en el disseny de programari.

  5. Estil de codificació i bones pràctiques.
    Aplicació de convencions d'estil, documentació del codi, ús de comentaris i tècniques per a millorar la traçabilitat i comprensió del programari.

  6. Desenvolupament pràctic incremental
    Aplicació progressiva dels continguts teòrics-pràctics mitjançant exercicis i un projecte principal dividit en fases.










Activitats formatives i Metodologia

Títol Hores ECTS Resultats d'aprenentatge
Tipus: Dirigides      
Classes de pràctiques 13 0,52 CM09, CM10, SM09
Classes de teoria 36 1,44 CM11, KM09, SM10
Estudiar 50,5 2,02
Programació per a la resolució de problemes 50,5 2,02

L'assignatura segueix una metodologia d'aprenentatge basat en projectes (ABP), en la qual els estudiants desenvolupen progressivament un projecte de programació aplicant els principis de la Programació Orientada a Objectes (POO). El projecte està estructurat en fites (milestones), que permeten consolidar els continguts treballats al llarg del curs, promovent un aprenentatge significatiu, actiu i orientat a la pràctica.

Classes de teoría. S'introdueixen els conceptes clau del paradigma orientat a objectes i es proporcionen les bases necessàries per a afrontar el desenvolupament del projecte. Aquestes classes inclouen també la resolució de petits problemes de disseny i programació orientada a objectes. A més, s'ofereixen referències bibliogràfiques (llibres, articles, recursos en línia) que complementen les sessions presencials. Les transparències utilitzades en classe no han de considerar-se com a única font d'estudi; s'espera que els estudiants consultin activament els materials recomanats, disponibles al campus virtual de l'assignatura.

Clases de Pràctiques. A l'inici del curs, els estudiants s'organitzen en petits grups de treball. Durant aquestes sessions, 1) es revisa setmanalment el progrés en el projecte i es resolen dubtes tècnics i/o conceptuals, i 2) es realitza una avaluació contínua, tant grupal com individual, segons el barem definit en l'enunciat de la pràctica. Aquestes sessions no estan dissenyades per a desenvolupar el projecte complet des de zero, sinó per a fer seguiment i avaluar el treball que els grups han avançat prèviament de manera autònoma.

Treball autònom. L'aprenentatge de la programació requereix dedicació i pràctica constant. Per això, s'espera que els estudiants treballin demanera autònoma fora de l'aula: estudiant els continguts teòrics, resolent exercicis, revisant exemples i avançant de manera contínua en el desenvolupament del projecte.

El campus virtual conté tots els materials de l'assignatura, així com la planificació detallada del curs. Tots els continguts escrits estan redactats en anglès.

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
Examens 50% 0 0 CM11, KM09, SM10
Pràctica 50% 0 0 CM09, CM10, SM09

L'avaluació de l'assignatura es basa en un sistema d'avaluació continuada que combina activitats individuals i grupals, amb l'objectiu de valorar tant la comprensió conceptual com l'aplicació pràctica dels continguts teorico-pràctics.

Càlcul de la nota final (FM)

Totes les notes estan sobre 10 punts. La nota final es calcula segons el següent algorisme:


EX = max⁡(0.5 * (EX1 + EX2), EXR) + EXextra
PR = 0.5 * (M1 + M2)
if (EX >= 4.0) and (PR >= 4.0):
    FM = 0,5 * (EX + PR)
else:
    FM = min(EX, PR)

Per a aprovar el curs es requereix que FM >= 5 punts.

On:

  • EX1 y EX2 corresponden al prevalgui examen i segon examen, dues proves escrites individuals realitzades durant el curs.
  • EXR és l'examen de recuperació que pot substituir a la mitjana d'EX1 i EX2 si millora la nota.
  • M1 i M2 són les fites (milestones) d'avaluació de les pràctiques en grup i individual realitzats al llarg del curs.
  • EXextra són els punts addicionals obtinguts mitjançant exercicis opcionals.

Avaluació Única: Aquesta assignatura no preveu el sistema d’avaluació única.

Avaluació de la pràctica

  • La pràctica es divideix en diverses parts o "fites", avaluades in situ durant les sessions pràctiques.
  • Cada part té una puntuació específica indicada en l'enunciat corresponent.
  • Aquestes avaluacions no tenen recuperació.
  • Els lliuraments es realitzaran a través del campus virtual. Els lliuraments fora de termini podran obtenir com a màxim una puntuació de 5 punts.
  • En cas de dubtes sobre l'autoria o contribució individual dins del grup, la qualificació passarà a ser individual, assignant la nota en funció de l'aportació de cada membre.
    Les sessions de pràctica són essencials per a assimilar els conceptes teòrics-pràctics, i la seva realització ha de fer-se de manera progressiva durant el curs.

Avaluació dels exàmens

  • Es realitzaran dues proves escrites (EX1 i EX2) al llarg del trimestre.
  • Existeix un examen de recuperació (EXR) que permet millorar la nota si és superior a la mitjana d'EX1 i EX2.
  • Els exercicis opcionals (EXextra) podran sumar punts addicionals a la nota de teoria (EX) i no tenen recuperació.

Altres aspectes rellevants

  • No es convaliden pràctiques, exercicis ni exàmens de cursos anteriors.
  • En cas de no lliurar un examen o una part de la pràctica, la nota d'aquesta part serà zero.
  • La nota final serà "no avaluable" si l'estudiant no ha presentat cap activitat avaluable.
  • La qualificació de Matrícula d'Honor (MH) es concedirà discrecionalment a estudiants amb nota final superior a 9.0, valorant totes les activitats realitzades.
  • Les dates de lliurament i avaluació es publicaran al campus virtual i podran modificar-se en cas d'incidències, informant-se sempre mitjançant aquest mitjà.
  • Per als exàmens escrits s'indicarà data i lloc per a la revisió per part de l'estudiant; si no assisteix, no es farà revisió posterior.
  • Plagis, còpies o qualsevol irregularitat en activitats avaluables suposaran una qualificació de zero en aquesta activitat sense possibilitat de recuperacióenel mateix curs acadèmic, i si és elcas, la suspensió de l'assignatura.
Ús d’IA.
  • Les eines d’IA és podrán usar com eines de suport a l’aprenetatge (per exemple, per millorar la redacció, l’estil, la claredat expositiva, la correcció lingüística /oi per l'obtenció d'assistència en aspectes tècnics). En cap cas podrán substituir i/o suolantar l’activitat d’aprenentatge de l’estudiant, ni la seva adquisición dels coneixements específics de l’assignatura. 
  • No és acceptable utilitzar eines d’intel·ligència artificial per generar continguts del treball que estan sotmesos a avaluació. Les tasques/activitats evaluables sospitoses d’haver estat generades per una IA enlloc de per l’estudiant serán considerades com una còpia i serán evaluades amb un 0. 

Bibliografia

Bàsica

Les classes de teoria es basen en un conjunt de transparències que sintetitzen els conceptes clau del curs. Aquests materials estan pensats com a guia, per la qual cosa es recomana consultar les següents obres per comprendre millor els continguts i ampliar coneixements:

Patrons de disseny, E. Gamma, R. Helm, R. Johnson, J. Vlissides. Pearson Educación, 2003.
És un clàssic dels patrons de disseny orientats a objectes, escrit pels autors que van proposar aquest concepte. La versió original en anglès és de 1995, i per això els exemples i diagrames poden semblar antiquats, però explica molt bé els fonaments.

Design Patterns Explained Simply, Alexander Shvets.
Llibre en línia: sourcemaking.com. També del mateix autor, un altre llibre disponible a refactoring.guru.
Ofereix explicacions clares i il·lustrades amb exemples en diversos llenguatges, incloent-hi Python, C++ i Java. Ideal com a introducció pràctica.

Complementària

Head First Design Patterns, E. Freeman & E. Robson, 2021.
Un llibre molt didàctic sobre patrons de disseny que utilitza exemples senzills explicats amb humor.

Python: Master the Art of Design Patterns, D. Phillips, C. Giridhar, S. Kasampalis. Packt Publishing, 2016.
Una obra extensa (més de 700 pàgines) centrada en la implementació detallada de patrons de disseny en Python. Molt útil per veure com s’apliquen realment en aquest llenguatge.

Mastering Object-Oriented Python, Steven F. Lott. Packt Publishing, 2014.
Aporta una visió avançada del llenguatge Python, aprofundint en aspectes clau de la programació orientada aobjectes. Destaquen capítols com el dedicat al sistema de registre (logging) i altres temes específics del llenguatge.


Programari

  • Python juntament amb el gestor de paquets Pip o Anaconda per a instal·lar llibreries com NumPy i Matplotlib.
  • IDE Spyder per a programar i depurar codi Python.

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
(PLAB) Pràctiques de laboratori 1 Català/Espanyol segon quadrimestre matí-mixt
(PLAB) Pràctiques de laboratori 2 Català/Espanyol segon quadrimestre tarda
(TE) Teoria 1 Espanyol segon quadrimestre matí-mixt