Descripció
La Programació Orientada a Objectes (POO) és un dels paradigmes més populars en l’actualitat i Java és un dels llenguatges més usats a la indústria actualment. L’objectiu és que l’alumne sigui capaç de plantejar solucions seguint un patró orientat a objectes així com implementar-les en el llenguatge Java. Aquesta assignatura serà molt útil com a base per altres assignatures en que s’usen llenguatges orientats a objectes i també pel desenvolupament d’aplicacions mòbils, sent Java el llenguatge més usat per implementar aplicacions per Android.
Tipus assignatura
Tercer - Obligatoria
Semestre
Primer
Curs
2
Crèdits
6.00

Professors Titulars

Professor/a
Coneixements previs
Objectius

Els Objectius d’aquesta assignatura són:

O.01 Aprendre a dissenyar i implementar solucions usant la POO.
O.02 Tenir una base sòlida de programació usant el llenguatge Java.
O.03 Ser capaç d’estructurar, dissenyar, programar i coordinar sistemes desenvolupats en equip.

Els Resultats d’Aprenentatge d’aquesta assignatura són:

RA.01 Programar de forma estructurada i modular.
RA.02 Conèixer els fonaments de la programació orientada a objectes.
RA.03 Desenvolupar software segons el paradigma de l’orientació a objectes.
RA.04 Aplicar patrons de disseny software per una alta cohesió i un baix acoblament.
RA.05 Aprendre les bases del llenguatge de modelat UML.
RA.06 Conèixer i aplicar els fonaments de la concurrència.

Continguts

Introducció i fonaments de la programació orientada a objectes.
Anàlisi i disseny orientats a objectes.
Implementació orientada a objectes.
Herència, polimorfisme, classes abstractes i interfícies.
Memòria dinàmica.
Disseny modular.
Tipus abstractes de dades.
Estructures de dades lineals.
Gestió d’excepcions.
Patrons de disseny software.
Introducció a la concurrència.

Metodologia

L’assignatura s’orienta per tal que l’alumne prengui part activa en el seu propi aprenentatge. La metodologia docent està pensada per tal que l’assignatura sigui dinàmica i participativa. Les classes magistrals es combinen amb classes d’exercicis i activitats a classe, així com projectes tutoritzats pel professorat de l’assignatura.

Avaluació

La nota final de l’assignatura es calcula segons els següents mecanismes amb les corresponents ponderacions:

• Projecte (40%): Desenvolupament d’un projecte en grups durant les darreres setmanes de l’assignatura, que requerirà ser completat fora de l’horari de classe. Cal obtenir un 5 o més per aprovar.
• Exercicis (30%): Exercicis d’avaluació continuada realitzats durant el semestre, abans de l’inici del projecte. El punt de control serà una entrega i formarà part d’aquests exercicis. Cal obtenir un 5 o més a totes les entregues per a poder calcular la nota total mitjançant una mitjana aritmètica uniforme.
• Examen (10%): Un sol examen al final de l’assignatura, sobre els continguts apresos i el projecte. Cal obtenir un 5 o més per aprovar.
• Portafoli (5%): Document elaborat al final del semestre que mostra les tasques més rellevants realitzades en l’assignatura. El professorat indicarà a l’alumne el conjunt de tasques a documentar. Cal obtenir un 5 o més per aprovar.
• Autoavaluació (5%): Avaluació peer to peer al final del projecte.
• Presentació oral (5%): Entrevista al final del projecte, realitzada pel professorat als grups. La nota serà individual.
• Participació (5%): Participació de l’alumne al llarg del desenvolupament de l’assignatura. Entre d’altres, pot incloure proves orals o escrites realitzades a classe, respondre a preguntes i/o participació en diferents activitats.

Criteris avaluació

Normativa de recuperacions:

En cas de suspendre algun dels apartats o la nota final, es podrà recuperar el que calgui en la convocatòria extraordinària de juliol, mitjançant els mecanismes i regulacions següents:

• Projecte (40%): Caldrà tornar-lo a entregar, mantenint el mateix grup.
• Exercicis (30%): Caldrà tornar a entregar aquells exercicis suspesos.
• Examen (10%): Caldrà presentar-se a un examen de recuperació.
• Portafoli (5%): Caldrà tornar a entregar el portafoli.
• Autoavaluació (5%): En cas de suspendre l’autoavaluació del projecte, el professorat realitzarà una reunió amb el grup o alumne implicats, segons sigui necessari.
• Presentació oral (5%): Si es suspèn l’entrevista del projecte tot i haver-lo aprovat, el professorat decidirà què cal tornar a entregar i com, depenent de les circumstàncies de l’entrevista.
• Participació (5%): Si es suspèn aquesta part, no es tindrà en compte de cares a la nota en convocatòria extraordinària.
Normativa d’exercicis i projectes:

Cadascuna de les activitats pràctiques realitzades durant l’assignatura tindrà les seves especificacions i requeriments descrites a l’enunciat corresponent. Si no es compleixen, la nota final no podrà ser superior a 4 en cap cas.

Les dates d’entregues seran fixes, amb un període afegit de 5 dies on els alumnes podran entregar amb una penalització d’un punt per cada dia de retard.

Si es recupera un exercici o projecte, la nota màxima serà de 7. Al juliol no s’acceptaran entregues més enllà de la data límit.

Normativa de còpies:

De cares a la normativa de còpies (que podeu consultar a https://www.salleurl.edu/ca/normativa-de-copies) les diferents activitats d’avaluació tindran el següent pes:

• Projecte: Altament significatiu
• Exercicis: Moderadament significatius
• Examen: Altament significatiu
• Portafoli: Moderadament significatiu
• La resta no aplica

Bibliografia bàsica

[1] C.S.Horstman and G.Cornell, Core Java 2, Vol I. Fundamentos, Septima edición, Prentice Hall, 2006.
[2] K.Arnold, JGosling and D.Holmes, The Java programming language, Boston : Addison-Wesley, 2000
[3] M.Fowler, UML Distilled Third Edition. A brief guide to the standard object modeling language, Addison-Wesley, 2003.
[4] R.Miles and K.Hamilton, Learning UML 2.0, O'Reilly Media Inc, 2006.
[5] C.Larman, Applying UML and patterns : an introduction to object-oriented analysis and design, Prentice Hall PTR, 1998
[6] E.Gamma, R.Helm, R.Johnson and J.Vlissides, Design patterns: elements of reusable object-oriented software, Addison-Wesley Longman Publishing Co., 1995
[7] J.Cooper, Java Design Patterns, Addison Wesley, 2000
[8] D.Lea, Concurrent programming in Java: design principles and patterns, Addison-Wesley, 2000

Material complementari

[9] M.Fowler, Refactoring: Improving the Design of Existing Code, Addison-Wesley Professional, 2018
[10] R.Martin, Clean Code: A Handbook of Agile Software Craftsmanship, Pearson, 2008
[11] K.Sierra and B.Bates, Head First Java, O'Reilly Media, 2005
[12] E.Freeman, B.Bates, K.Sierra and E.Robson, Head First Design Patterns: A Brain-Friendly Guide, O'Reilly Media, 2004