Anar al contingut (clic a Intro)
UdG Home UdG Home
Tancar
Menú

Estudia

Dades generals

Curs acadèmic:
2026
Descripció:
Disseny modular. Programació orientada a objectes. Casos pràctics. Desenvolupament d'un projecte de programació.
Crèdits ECTS:
5
Professor responsable:
Francisco Castro Villegas

Grups

Grup A

Durada:
Semestral, 2n semestre
Professorat:
Francisco Castro Villegas  / Josep Soler Maso
Idioma de les classes:
Català (100%)

Grup EB

Durada:
Semestral, 2n semestre
Professorat:
Francisco Castro Villegas  / Ignacio Clemente Martin Campos  / Josep Soler Maso
Idioma de les classes:
Català (100%)

Competències

  • CT01 Analitzar situacions complexes i dissenyar estratègies per a resoldre-les
  • CT04 Treballar en equip
  • CB05 Prendre decisions per a la resolució de situacions diverses
  • CT09 Aplicar cirteris de qualitat a les propostes i/o projectes
  • CT02 Treballar en equip
  • CT14 Proposa noves iniciatives en la planificació i desenvolupament de projectes
  • CES2 Analitzar problemes computacionals i desenvolupar solucions algorísmiques acord
  • CES10 Especificar, dissenyar i avaluar solucions informàtiques integrades per a la gestió dels processos de salut
  • CES11 Dirigir de manera integrada projectes, incloent els processos de desenvolupament i Innovació, en el camp biomèdic
  • CES14 Treballar de forma autònoma en la realització d'un projecte i presentar i defensar els resultats aconseguits davant d'un jurat o col·lectiu expert
  • CC3 Capacitat per avaluar la complexitat computacional d'un problema, conèixer estratègies algorítmiques que poguin conduir a la seva resolució i recomenar, desenvolupar i implementar aquella que garanteixi el millor rendiment d'acord amb els requisits establerts.
  • CIS3 Capacitat de donar solució a problemes d'integració en funció de les estratègies, estàndards i tecnologies disponibles.

Continguts

1. FONAMENTS DE PROGRAMACIÓ

          1.1. Modularització

          1.2. Abstracció i descomposició

          1.3. Disseny descendent vs disseny ascendent

2. PROGRAMACIÓ ORIENTADA A OBJECTES

          2.1. Objectes. Estat i comportament. Encapsulament.

          2.2. Visió OO dels objectes. Getters i setters.

          2.3. Tipus abstractes de dades. Java: classes abstractes vs. interfaces.

          2.4. Herència vs subtipatge

          2.5. Utilització vs refinament

          2.6. Polimorfisme. Lligam missatge-mètode.

3. ROBUSTESA

          3.1. Excepcions i gestió d'errors

          3.2. Disseny per contracte: precondicions, postcondicions i invariants

4. EINES PRÀCTIQUES (basades en Java)

          4.1. Genericitat

          4.2. Iterabilitat

          4.3. Comparabilitat. Equals i hashcode.

          4.4. Contenidors bàsics a l'API de Java

          4.5. Comodins. Comodins afitats

          4.6. Mètodes genèrics

          4.7. Funcions lambda i interfaces funcionals

5. DISSENY MODULAR

          5.1. Principis SOLID

          5.2. Composició + delegació vs herència

          5.3. Patrons simples: delegació i Strategy

          5.4. MVC com a paradigma de separació de responsabilitats

6. EXEMPLE COMPLET

7. QUALITAT I DOCUMENTACIÓ

          7.1. Documentació d'implementacions

          7.2. Introducció al testing i a la verificació

8. TEMES OPTATIUS

          8.1. Documentació Doxygen

          8.2. GUI's bàsiques amb JavaFX

          8.3. JUnit (eina per a proves unitàries)

Activitats

Tipus d’activitat Hores amb professor Hores sense professor Hores virtuals amb professor Total
Prova d'avaluació 2,00 4,00 0 6,00
Resolució d'exercicis 1,50 5,00 0 6,50
Sessió participativa 28,00 7,00 0 35,00
Treball en equip 20,00 57,50 0 77,50
Total 51,50 73,50 0 125

Bibliografia

  • Liskov, Barbara (2000 ). Program Development in Java : Abstraction, Specification,and Object-Oriented Design . Boston: Addison-Wesley. Catàleg
  • Preiss, Bruno R (2000 ). Data structures and algorithms with object-oriented designpatterns in Java . New York: John Wiley and Sons. Catàleg
  • Robert C.Martin (2018). Clean architecture : a craftsman's guide to software structure and design. London: Prentice Hall.
  • Marco Faella (2020). Seriously Good Software (March 2020). Manning.

Avaluació i qualificació

Activitats d'avaluació:

Descripció de l'activitat Avaluació de l'activitat % Recuperable
Petits exercicis durant classes de teoria Es realitzaran varis exercicis breus, que sumaran un total de 13 punts (marge de 3 punts per si algun alumne falta puntualment a classe). Tindran valors d'1 a 4 punts. Es podran consultar els apunts.
Si algun alumne no pot assistir a la majoria de les classes de teoria, ho ha d'indicar al professor a inici del quadrimestre (amb justificant) per tal de compensar aquest 10% sobre la nota final.
10 No
Exercici introductori de programació en Java S'ha de lliurar al Moodle dins el termini indicat. IA no permesa.
Si durant el procés de correcció d'alguna activitat d’avaluació el professor determina l’existència d’un possible frau, es reserva el dret de validar la qualificació obtinguda segons la metodologia d’avaluació que consideri oportuna.
5 No
Projecte de programació (lliurament inicial) Es valorarà l'abast i la correcció de la proposta inicial de mòduls que integraran la solució d'un projecte elaborat en equip. IA no permesa. 5 No
Projecte: check intermedi de l'evolució del projecte Document que indiqui la situació detallada del desenvolupament del projecte. S'haurà de lliurar al Moodle (cada grup) en el període reservat per l'EPS per a PAC's.
Equivaldrà a una fotografia de l'estat actual a nivell d'estructura de mòduls, punts forts (més avançats) i febles (més endarrerits), a més de remarcar la divisió dels moduls entre els components de l'equip.
Es pot usar IA en la composició del document.
5 No
Projecte de programació (seguiment) Cada equip haurà de comentar setmanalment amb el professor el treball efectuat en relació al projecte. El seguiment es farà en horari de classe de pràctiques, a partir de l'inici del projecte. La no participació en el seguiment setmanal afectarà la nota de segiment del projecte, fins al punt que no s'acceptaran lliuraments de projectes dels quals no se n'hagi pogut fer un seguiment satisfactori.
IA permesa amb un ús limitat: es permet l'ús d'eines per generar codi (tipus GitHub Copilot) només per a l'autocompleció de codi, no per demanar solucions.
10 No
Projecte de programació (lliurament final) La qualificació estarà determinada pel grau d'assoliment dels objectius pactats amb el professor durant les sessions de seguiment, la qualitat de la solució aportada d'acord amb els continguts de l'assignatura, i les competències relacionades. IA permesa amb un ús limitat: es permet l'ús d'eines per generar codi (tipus GitHub Copilot) només per a l'autocompleció de codi, no per demanar solucions.
Si durant el procés de correcció el professor determina l’existència d’un possible frau, es reserva el dret de validar la qualificació obtinguda segons la metodologia d’avaluació que consideri oportuna.
35 No
Examen Les respostes es puntuaran en funció del grau de coneixement i especialment de la comprensió dels continguts de l'assignatura. L'examen pot cobrir tant aspectes teòrics com pràctics.
IA no permesa.
Si durant el procés de correcció el professor determina l’existència d’un possible frau, aquest es reserva el dret de validar la qualificació obtinguda segons la metodologia d’avaluació que consideri oportuna.
30

Qualificació

El projecte es desenvoluparà en equips de mínim dos i màxim tres alumnes. Cal tenir en compte que cada any el projecte és diferent, de manera que el nombre de membres dels equips s'ajustarà depenent del projecte, a criteri del professor. També és possible que es permeti desenvolupar un mateix projecte en equips de dos i de tres. En tal cas, el professor procurarà que la càrrega de feina sigui equitativa.
Per motius pedagògics relacionats amb les comptències a assolir, en cap cas es permetrà que un alumne faci el projecte sol.

La interacció amb el "client" (el professor) a l'hora de definir l'especificació de les funcionalitats i usos del programa, i la discussió de la implementació del programa amb un programador "expert" (el professor), influiran en la qualificació del projecte.

L'avaluació del projecte podrà tenir en compte tant l'aportació individual de l'alumne com els resultats del seu equip. Això implica que no tots els components d'un equip tindran necessàriament la mateixa nota.

No s'acceptaran lliuraments de projectes dels quals no se n'hagi pogut fer un seguiment satisfactori (veure activitats d'avaluació).

Pel que fa al 10% de la nota corresponent als petits exercicis realitzats durant algunes classes de teoria, els alumnes que, a inici de quadrimestre, vegin que no podran assistir a bona part d'aquestes classes, hauran d'indicar-ho al professor, amb un corresponent justificant. Així, aquest 10% s'absorbirà a la nota d'examen, que passarà a tenir un pes del 40% per a aquests alumnes.

Criteris específics de la nota «No Presentat»:
Si un alumne no ha fet (o no se li ha acceptat) el darrer lliurament del projecte, o bé no s'ha presentat a cap examen, tindrà la qualificació de "No Presentat".

Avaluació única:
L'avaluació única consisteix d'un examen escrit.

Requisits mínims per aprovar:
La realització del projecte és obligatòria.

Per aprovar l'assignatura cal tenir el projecte acceptat (veure criteris de qualificació), una nota mínima de 4 de l'examen, i una nota mínima de 5 segons la ponderació de les diferents activitats d'avaluació (és a dir, la nota final haurà de ser >=5 per superar l'assignatura).

En el cas que la nota d'examen sigui inferior a 4, la nota final serà 3.5.

En el cas d'haver lliurat l'examen de recuperació i també el primer examen, la nota que comptarà serà la millor de totes dues (interessant per als alumnes que vulguin apujar nota).

Tutoria

Les tutories es faran preferentment de manera presencial, tot i que en cassos especials i justificats es poden realitzar telemàticament, prèvia petició al professor.

Comunicació i interacció amb l'estudiantat

Les comunicacions d'interès general es faran mitjançant el "Fòrum d'Avisos i Notícies" del Moodle. Hi haurà el fòrum general, i probablement 2 fòrums específics, un per a GEInf i un altre per a GEB.

La interacció escrita (bidireccional) amb els estudiants tindrà lloc preferentment via fòrums del Moodle, reservant el correu electrònic per a qüestions privades.

Les comunicacions privades relacionades amb el desenvolupament del projecte es realitzaran preferentment via GitHub.

Observacions

L'objectiu principal d'aquesta assignatura és el de practicar la programació d'aplicacions de mitjana escala, incloent aspectes de disseny, documentació, implementació i proves. Es treballaran tant els aspectes lligats a la qualitat del producte final (eficiència, reusabilitat de components, etc.) com al propi procés per arribar-hi (organització de l'equip de treball, prototipatge, proves, etc.)

Assignatures recomanades

  • Estructures de dades i algorítmica
  • Intel·ligència artificial
  • Metodologia i tecnologia de la programació II

Escull quins tipus de galetes acceptes que el web de la Universitat de Girona pugui guardar en el teu navegador.

Les imprescindibles per facilitar la vostra connexió. No hi ha opció d'inhabilitar-les, atès que són les necessàries pel funcionament del lloc web.

Permeten recordar les vostres opcions (per exemple llengua o regió des de la qual accediu), per tal de proporcionar-vos serveis avançats.

Proporcionen informació estadística i permeten millorar els serveis. Utilitzem cookies de Google Analytics que podeu desactivar instal·lant-vos aquest plugin.

Per a oferir continguts publicitaris relacionats amb els interessos de l'usuari, bé directament, bé per mitjà de tercers (“adservers”). Cal activar-les si vols veure els vídeos de Youtube incrustats en el web de la Universitat de Girona.