Titulación | Tipo | Curso |
---|---|---|
Matemática Computacional y Analítica de Datos | FB | 1 |
Puede consultar esta información al final del documento.
No hay prerequisitos oficiales, pero es necesario saber programar en Python.
El objetivo principal es que el estudiante adquiera conocimientos sobre los principios del Diseño Orientado a Objetos y los Patrones de Diseño, con el fin de elaborar diseños de software que se representen mediante diagramas UML y se implementen posteriormente en un lenguaje de programación orientado a objetos.
Esto incluye conceptos fundamentales como clases, objetos, métodos, atributos, herencia, composición y encapsulamiento. A partir de estos principios, se introducen los Patrones de Diseño de Software, que proporcionan soluciones reutilizables a problemas comunes en el desarrollo de software.
Los diagramas UML permiten representar de forma clara las estructuras y relaciones del software, facilitando la visualización y comparación de diferentes diseños, así como la planificación de su implementación.
Conceptos de orientación a objetos.
Introducción a los principios fundamentales de la orientación a objetos, como el encapsulamiento, la herencia, la composición o el uso de interfaces, así como la representación gráfica mediante diagramas de clases UML.
Programación orientada a objetos en Python.
Uso de un lenguaje de programación para aplicar los conceptos orientados a objetos, incluyendo características avanzadas del lenguaje.
Principios de diseño orientado a objetos.
Análisis de principios para estructurar software mantenible y escalable, y asignar responsabilidades de forma coherente entre los componentes.
Patrones de diseño.
Estudio de soluciones reutilizables para problemas comunes en el diseño de software.
Estilo de codificación y buenas prácticas.
Aplicación de convenciones de estilo, documentación del código, uso de comentarios y técnicas para mejorar la trazabilidad y comprensión del software.
Desarrollo práctico incremental.
Aplicación progresiva de los contenidos teóricos-prácticos mediante ejercicios y un proyecto principal dividido en fases.
Título | Horas | ECTS | Resultados de aprendizaje |
---|---|---|---|
Tipo: Dirigidas | |||
Clases de prácticas | 13 | 0,52 | CM09, CM10, SM09, CM09 |
Clases de teoria | 36 | 1,44 | CM11, KM09, SM10, CM11 |
Estudiar | 50,5 | 2,02 | |
Programación para la resolución de problemas | 50,5 | 2,02 |
La asignatura sigue una metodología de aprendizaje basado en proyectos (ABP), en la que los estudiantes desarrollan progresivamente un proyecto de programación aplicando los principios de la Programación Orientada a Objetos (POO). El proyecto está estructurado en hitos (milestones), que permiten consolidar los contenidos trabajados a lo largo del curso, promoviendo un aprendizaje significativo, activo y orientado a la práctica.
Clases de teoría. Se introducen los conceptos clave del paradigma orientado a objetos y se proporcionan las bases necesarias para afrontar el desarrollo del proyecto. Estas clases incluyen también la resolución de pequeños problemas de diseño y programación orientada a objetos. Además, se ofrecen referencias bibliográficas (libros, artículos, recursos en línea) que complementan las sesiones presenciales. Las transparencias utilizadas en clase no deben considerarse como única fuente de estudio; se espera que los estudiantes consulten activamente los materiales recomendados, disponibles en el campus virtual de la asignatura.
Clases de prácticas. Al inicio del curso, los estudiantes se organizan en pequeños grupos de trabajo. Durante estas sesiones, 1) se revisa semanalmente el progreso en el proyecto y se resuelven dudas técnicas y/o conceptuales, y 2) se realiza una evaluación continua, tanto grupal como individual, según el baremo definido en el enunciado de la práctica. Estas sesiones no están diseñadas para desarrollar el proyecto completo desde cero, sino para hacer seguimiento y evaluar el trabajo que los grupos han avanzado previamente de manera autónoma.
Trabajo autónomo. El aprendizaje de la programación requiere dedicación y práctica constante. Por ello, se espera que los estudiantes trabajen de forma autónoma fuera del aula: estudiando los contenidos teóricos, resolviendo ejercicios, revisando ejemplos y avanzando de manera continua en el desarrollo del proyecto.
El campus virtual contiene todos los materiales de la asignatura, así como la planificación detallada del curso. Todos los contenidos escritos están redactados en inglés.
Nota: se reservarán 15 minutos de una clase dentro del calendario establecido por el centro o por la titulación para que el alumnado rellene las encuestas de evaluación de la actuación del profesorado y de evaluación de la asignatura o módulo.
Título | Peso | Horas | ECTS | Resultados de aprendizaje |
---|---|---|---|---|
Exámenes | 50% | 0 | 0 | CM11, KM09, SM10 |
Práctica | 50% | 0 | 0 | CM09, CM10, SM09 |
La evaluación de la asignatura se basa en un sistema de evaluación continuada que combina actividades individuales y grupales, con el objetivo de valorar tanto la comprensión conceptual como la aplicación práctica de los contenidos teórico-prácticos.
Cálculo de la nota final (FM)
Todas las notas están sobre 10 puntos. La nota final se calcula según el siguiente algoritmo:
EX = max(0.5 * (EX1 + EX2), EXR) + EXextra
PR = 0.5 * (M1 + M2)
if (EX >= 4.0) and (PR >= 4.0):
FM = 0,5 * (EX + PR)
else:
FM = min(EX, PR)
Para aprobar el curso se requiere que FM >= 5 puntos.
Donde:
Evaluación Única: Esta asignatura no prevé el sistema de evaluación única.
Evaluación de la práctica
Evaluación de los exámenes
Otros aspectos relevantes
El Uso de IA:
Básica
Las clases de teoría se basan en un conjunto de transparencias que sintetizan los conceptos clave del curso. Estos materiales están pensados como guía, por lo que se recomienda consultar las siguientes obras para una mejor comprensión y para ampliar conocimientos:
Patrones de diseño. E. Gama, R. Helm, R. Johnson, J. Vlissides. Pearson Educación 2003.
Es un clásico del patrones de diseño orientado a objeto, por los autores que propusieron este concepto. La versión original en inglés es de 1995 y por ello sus ejemplos y diagramas pueden parecer desactualizados, explica muy bien los fundamentos.
Design patterns explained simply. Alexander Shvets. Libro on-line, https://sourcemaking.com/design-patterns-ebook. Tambien del mismo autor otro libro online en https://refactoring.guru/design-patterns
Ofrece explicaciones claras e ilustradas con ejemplos en múltiples lenguajes, incluídos Python, C++ y Jave. Ideal como introducción práctica.
Complementaria
Head first Design Patterns. E. Freeman & E. Robson, 2021.
Un libro muy didáctico sobre patrones de diseño que utiliza ejemplos sencillos explicados con humor.
Python: master the art of design patterns. D. Phillips, C. Giridhar, S. Kasampalis. Packt Publishing, 2016.
Obra extensa (más de 700 páginas) centrada en la implementación detallada de patrones de diseño en Python. Muy útil para ver cómo se aplican realmente en este lenguaje.
Mastering object-oriented Python. Steven F.Lott. Packt publishing, 2014.
Aporta una visión avanzada del lenguaje Python, profundizando en aspectos clave de la programación orientada a objetos. Destacan capítulos como el dedicado al sistema de logging y otros temas específicos del lenguaje.
La información proporcionada es provisional hasta el 30 de noviembre de 2025. A partir de esta fecha, podrá consultar el idioma de cada grupo a través de este enlace. Para acceder a la información, será necesario introducir el CÓDIGO de la asignatura
Nombre | Grupo | Idioma | Semestre | Turno |
---|---|---|---|---|
(PLAB) Prácticas de laboratorio | 1 | Catalán/Español | segundo cuatrimestre | manaña-mixto |
(PLAB) Prácticas de laboratorio | 2 | Catalán/Español | segundo cuatrimestre | tarde |
(TE) Teoría | 1 | Español | segundo cuatrimestre | manaña-mixto |