Professors Titulars
Professors Docents
Metodologia i tecnologia de la programació (recomanació)
Objectiu.1 Demostra conèixer el paradigma orientat a objectes i totes les seves característiques.
Classes, Objectes i Missatges.
Encapsulació i Abstracció.
Herència.
Polimorfisme.
Objectiu.2 Demostra conèixer un llenguatge orientat a objectes real i actual.
Introducció a Java.
Orientació a Objectes en Java.
Herència en Java.
Gestió dexcepcions.
Collections, Generics i altres utilitats.
Implementació de UI.
Concurrència.
Objectiu.3 Demostra saber emprar un entorn de desenvolupament real.
Eines de modelatge de diagrames.
Entorns de desenvolupament (IDE).
Sistemes de control de versions.
Eines de gestió de projectes.
Objectiu.4 Demostra tenir la capacitat de dissenyar software a partir dunes especificacions concretes.
Diagrames de classe en UML.
Disseny de Classes, Objectes i Missatges.
Encapsulament vs Visibilitat.
Relacions entre classes.
Objectiu.5 Demostra saber usar patrons de disseny software.
Patrons de disseny GRASP.
Disseny orientat a responsabilitats.
Arquitectura per capes.
Patró Model-Vista-Controlador.
Orientació a Objectes i persistència de dades.
Objectiu.6 Demostra saber treballar en equip.
Eines de comunicació per equips.
Sistemes de control de versions.
Eines de gestió de projectes.
Introducció al desenvolupament Agile.
Els descriptors generals de continguts de lassignatura són:
1. Anàlisi, disseny i programació orientada a objectes.
2. Diagrama de classes (UML).
3. Estructures de dades lineals.
4. Patrons de disseny (GRASP, GOF).
Lassignatura sorienta per tal que lalumne prengui part activa en el seu propi aprenentatge. La metodologia docent està pensada per tal que lassignatura sigui dinàmica i participativa. Les classes magistrals es combinen amb classes dexercicis i activitats a classe, així com pràctiques guiades pel professorat de lassignatura.
La metodologia docent de lassignatura està clarament diferenciada en dos semestres. En el primer, sassoleixen els fonaments del paradigma de lorientació a objectes i de la programació en Java. Lorientació docent daquest semestre és amb classes magistrals, exercicis davaluació contínua i pràctiques. En el segon semestre, lassignatura senfoca amb la metodologia daprenentatge basada en projectes. Els coneixements assolits durant el primer semestre es consoliden mitjançant la realització dun projecte quasi real de desenvolupament de software.
El sistema davaluació de lassignatura es diferenciarà en dos semestres.
Durant el primer semestre, els alumnes hauran de desenvolupar, de forma progressiva, sota la tutela del professorat de lassignatura, un projecte que tindrà com a objectiu consolidar els conceptes que representen els fonaments del paradigma orientat a objectes.
Per contra, durant el segon semestre, els alumnes hauran de realitzar un projecte en grup en què hauran de demostrar que poden posar en pràctica els coneixements adquirits durant el primer semestre en la implementació dun projecte de major envergadura.
Per tal daprovar lassignatura, cal que lalumne aprovi tots dos semestres per separat:
if (Nota_S1 >= 5.0 && Nota_S2 >= 5.0) {
Nota_final = Nota_S1 * 0.5 + Nota_S2 * 0.5;
}
else {
Nota_final = Math.min (Nota_S1, Nota_S2);
}
La Nota_S1, consistirà en un projecte realitzat per parelles que sentregarà per fases. Cada fase haurà destar aprovada per separat i no es podrà avaluar una fase fins que totes les fases anteriors no hagin estat aprovades. Finalment, els alumnes hauran de superar una entrevista de coneixements per tal de donar la pràctica per aprovada. Aquesta entrevista es pot convalidar si el professorat estima que lalumne ha demostrat els coneixements durant la mentoria del projecte.
if (Entrevista_S1.equals (OK)) {
Nota_S1 = (Fase_1 + Fase_2 + ... + Fase_N) / N;
}
else {
Nota_S1 = 2.0;
}
La Nota_S2, consistirà en un projecte realitzat en equips de cinc (5) persones. La Nota_S2 es calcularà a partir de la nota del projecte, serà ponderada per les notes del peer review realitzat pels companys de grup i també serà ponderada per la nota de mentoria que determini el professorat. Finalment, els alumnes hauran de superar una entrevista grupal de coneixements.
If (Entrevista_S2.equals (OK)) {
Nota_S2 = Nota_projecte * Nota_peer * Nota_mentoria;
}
else {
Nota_S2 = 2.0;
}
[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
[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