Profesores Titulares
Profesores Docentes
Metodología y tecnología de la programación (recomendación)
Objetivo.1 Demuestra conocer el paradigma orientado a objetos y todas sus características.
Clases, Objetos y Mensajes.
Encapsulación y Abstracción.
Herencia.
Polimorfismo.
Objetivo.2 Demuestra conocer un lenguaje orientado a objetos real y actual.
Introducción a Java.
Orientación a Objetos en Java.
Herencia en Java.
Gestión de excepciones.
Collections, Generics y otras utilidades.
Implementación de UI.
Concurrencia.
Objetivo.3 Demuestra saber emplear un entorno de desarrollo real.
Herramientas de modelado de diagramas.
Entornos de desarrollo (IDE).
Sistemas de control de versiones.
Herramientas de gestión de proyectos.
Objetivo.4 Demuestra tener la capacidad de diseñar software a partir de unas especificaciones concretas.
Diagramas de clase en UML.
Diseño de Clases, Objetos y Mensajes.
Encapsulamiento vs Visibilidad.
Relaciones entre clases.
Objetivo.5 Demuestra saber usar patrones de diseño software.
Patrones de diseño GRASP.
Diseño orientado a responsabilidades.
Arquitectura por capas.
Patrón Modelo-Vista-Controlador.
Orientación a Objetos y persistencia de datos.
Objetivo.6 Demuestra saber trabajar en equipo.
Herramientas de comunicación por equipos.
Sistemas de control de versiones.
Herramientas de gestión de proyectos.
Introducción al desarrollo Agile.
Los descriptores generales de contenidos de la asignatura son:
1. Análisis, diseño y programación orientada a objetos.
2. Diagrama de clases (UML).
3. Estructuras de datos lineales.
4. Patrones de diseño (GRASP, GOF).
La asignatura se orienta para que el alumno tome parte activa en su propio aprendizaje. La metodología docente está pensada para que la asignatura sea dinámica y participativa. Las clases magistrales se combinan con clases de ejercicios y actividades en clase, así como prácticas guiadas por el profesorado de la asignatura.
La metodología docente de la asignatura está claramente diferenciada en dos semestres. En el primero, se logran las bases del paradigma de la orientación a objetos y de la programación en Java. La orientación docente de este semestre es con clases magistrales, ejercicios de evaluación continua y prácticas. En el segundo semestre, la asignatura se enfoca con la metodología de aprendizaje basada en proyectos. Los conocimientos logrados durante el primer semestre se consolidan mediante la realización de un proyecto casi real de desarrollo de software.
El sistema de evaluación de la asignatura se diferenciará en dos semestres.
Durante el primer semestre, los alumnos tendrán que desarrollar, de forma progresiva, bajo la tutela del profesorado, un proyecto que tendrá como objetivo consolidar los conceptos que representan los fundamentos del paradigma orientado a objetos.
Por el contrario, durante el segundo semestre, los alumnos tendrán que realizar un proyecto en grupo en que tendrán que demostrar que pueden poner en práctica todo lo aprendido durante el primer semestre en la implementación de un proyecto de mayor envergadura.
Para aprobar la asignatura, el alumno debe aprovar ambos semestres por separado:
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 proyecto realizado por parejas que se entregará por fases. Cada fase tendrá que estar aprobada por separado y no se podrá evaluar una fase hasta que todas las fases anteriores no hayan sido aprobadas. Finalmente, los alumnos tendrán que superar una entrevista de conocimientos para dar la práctica por aprobada. Esta entrevista se puede convalidar si el profesorado estima que el alumno ha demostrado los conocimientos durante la mentoria del proyecto.
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 proyecto realizado en equipos de cinco (5) personas. La Nota_S2 se calculará a partir de la nota del proyecto, será ponderada por las notas del peer review realizado por los compañeros de grupo y también será ponderada por la nota de mentoria que determine el profesorado. Finalmente, los alumnos tendrán que superar una entrevista grupal de conocimientos.
if (Entrevista_S2.equals (OK)) {
Nota_S2 = Nota_proyecto * 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