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