Profesores Titulares
Conocimientos básicos de programación imperativa y procedimental (variables, estructuras de control, funciones y tratamiento básico de datos). Se recomienda haber cursado Fundamentos de Programación.
El alumnado adquiere los conocimientos y habilidades siguientes:
1. Comprender los fundamentos de la programación orientada a objetos y aplicarlos mediante un lenguaje de programación actual.
2. Diseñar y estructurar aplicaciones de software a partir de especificaciones concretas, utilizando UML y principios básicos de diseño.
3. Utilizar adecuadamente un entorno de desarrollo integrado (IDE) y aplicar buenas prácticas de programación.
4. Desarrollar soluciones en equipo, integrando metodologías de trabajo colaborativo en proyectos de software.
1. Introducción y fundamentos de la programación orientada a objetos.
2. Análisis, diseño e implementación orientada a objetos.
3. Herencia, polimorfismo, clases abstractas e interfaces.
4. Diseño modular y tipos abstractos de datos.
5. Memoria dinámica y gestión de objetos.
6. Estructuras de datos lineales aplicadas al desarrollo.
7. Gestión de excepciones en aplicaciones orientadas a objetos.
8. Introducción a los patrones de diseño.
9. Introduccion a la concurrencia y programación multihilo.
10. Herramientas y técnicas de modelado: introducción a UML y diagrama de clases.
11. Uso de entornos de desarrollo (IDE) y herramientas habituales del ciclo de programación.
La metodología docente combina la exposición teórica con actividades prácticas orientadas a reforzar los conceptos trabajados. Las clases magistrales presentan los fundamentos de la POO y del diseño en UML, mientras que los ejercicios guiados y las prácticas permiten aplicarlos de forma progresiva.
La asignatura se organiza en dos fases:
- Primera fase: adquisición de los conceptos básicos del paradigma orientado a objetos mediante ejercicios y prácticas guiadas.
- Segunda fase: desarrollo de un proyecto aplicado, donde el alumnado integra y consolida los conocimientos mediante una metodología de aprendizaje basada en proyectos.
Se fomenta la participación activa, el pensamiento crítico y la colaboración entre estudiantes, reproduciendo procesos habituales del desarrollo de software real.
La evaluación combina actividades de evaluación continua, ejercicios prácticos y una prueba final escrita. También se realiza un proyecto práctico donde se aplican los contenidos principales de la asignatura.
- Proyecto (40%): Desarrollo de un proyecto en grupo durante las últimas semanas de la asignatura.
- Ejercicios (30%): Ejercicios de evaluación continua realizados durante el semestre, antes del inicio del proyecto.
- Examen (10%): Prueba final sobre los contenidos aprendidos y el proyecto.
- Portafolio (5%): Documento elaborado al final del semestre que recoge las tareas más relevantes realizadas.
- Autoevaluación (5%): Evaluación peer-to-peer al finalizar el proyecto.
- Presentación oral (5%): Entrevista final realizada por el profesorado a los grupos. La nota será individual.
- Participación (5%): Participación activa del estudiante a lo largo del semestre.
Se valorará el dominio de los contenidos de POO y UML, la calidad del código y del proyecto, la correcta aplicación de principios de diseño, la capacidad de resolver ejercicios teóricos y prácticos, y la calidad de la documentación entregada.
- Deitel & Deitel. Java: How to Program. Pearson.
- Gamma et al. Design Patterns: Elements of Reusable Object-Oriented Software (capítulos introductorios).
- Documentos y apuntes proporcionados por el profesorado.
Materiales adicionales, tutoriales, ejercicios extra y ejemplos de código disponibles en la plataforma virtual de la asignatura.