Información general


Idiomas de impartición


  • Català

Descripción


La asignatura de Programación Orientada al Objeto pertenece a la materia de la Programación y es la segunda dentro de esta área. Los diversos temas tratados en la asignatura están pensados para capacitar a los estudiantes para el aprendizaje de los conceptos relacionados con la programación orientada a objetos. Estos conceptos se necesitarán en las posteriores asignaturas dentro de esta misma materia y también en posteriores asignaturas dentro del grado.

Esta asignatura dispone de recursos metodológicos y digitales para hacer posible su continuidad en modalidad no presencial en el caso de ser necesario por motivos relacionados con la Covid-19. De esta forma se asegurará la consecución de los mismos conocimientos y competencias que se especifican en este plan docente.

Resultados de aprendizaje


En general, esta asignatura contribuye a los siguientes resultados de aprendizaje especificados en la mateira a la que pertenece (algoritmos y Programación):

  • Construir algoritmos correctos y eficientes para problemas de pequeña dificultad.
  • Implementar algoritmos simples en un lenguaje de programación imperativo para el nivel inicial.
  • Identificar las soluciones algorítmicas más adecuadas para resolver problemas de dificultad media.
  • Razonar sobre la corrección y eficiencia de una solución algorítmica.
  • Diseñar, escribir, probar, depurar, documentar y mantener el código en un lenguaje de alto nivel para resolver problemas de programación mediante la aplicación de esquemas algorítmicos y uso de estructuras de datos.
  • Aplicar técnicas básicas de descomposición modular de programas.
  • Elegir, combinar y explotar diferentes paradigmas de programación en el momento de la construcción del software, según criterios como la facilidad de desarrollo, eficiencia, portabilidad y mantenibilidad.   
  • Diseñar la arquitectura de los programas utilizando las técnicas de orientación de objetos, modularización y especificación e implementación de tipo datos abstractes.
  • Demostrar conocimiento y comprensión de hechos  esenciales, conceptos, principios y teorías relativas a la informática y a sus disciplinas de referencia.
  • Colaborar en un entorno unidisciplinar. Identificar los objetivos del grupo y colaborar en el diseño de la estrategia a seguir y un plan de trabajo para conseguirlos. Identificar las responsabilidades de cada componente del grupo y asumir el compromiso personal de la tarea asignada. Evaluar y presentar los resultados propios. Identificar el valor de la cooperación e intercambiar información con los otros componentes del grupo. Intercambiar información sobre el progreso del grupo y proponer estrategias para mejorar su funcionamiento.

En un nivel específico, al final del curso el estudiante debe ser capaz de:

  • RA1: Comprender la estructura y entender programas escritos con  un lenguaje orientado a objetos.     
  • RA2: Diseñar y codificar, depurar y documentar programas utilizando el  paradigma de la orientación a objetos, con un número limitado de clases.     
  • RA3: Conocer y hacer uso de los mecanismos de tratamiento de errores proporcionados por algún lenguaje de programación de alto nivel.
  • RA4: Diseñar y codificar una interfaz gráfica de usuario sencilla en un entorno de Desarrollo Rápido de Aplicaciones.

Metodologia de trabajo


Todos los conceptos teóricos de la materia se expondrán en clases de teoría (grupos grandes). En estas clases, y a discreción de los docentes impartidores, también se resolverán ejercicios y problemas de carácter más práctico. Asimismo, y siempre a discreción de los impartidores, se podrá pedir a los estudiantes que resuelvan, de forma individual o en grupo, problemas y / o ejercicios breves. Estas actividades, breves y optativas, servirán al estudiante como instrumento de autoevaluación de su logro de los contenidos de la materia y podrán ser utilizados por parte del docente para tomar decisiones sobre la calificación final del estudiante todo y que nunca en detrimento de la calificación numérica calculada según el sistema de calificación especificado por la asignatura.

Los conceptos de carácter más práctico y todo lo que en esencia se pueda considerar la aplicación práctica de los conceptos teóricos serán trabajados de manera más intensiva en grupos pequeños (de laboratorio). En las sesiones que se programen a tal efecto se darán las herramientas adecuadas para resolver las actividades programadas todo y que se espera que estas se alarguen desde el punto de vista temporal, más allá de las horas de laboratorio y que, en consecuencia, los estudiantes deban finalizar durante el tiempo de aprendizaje autónomo.

Siempre que se considere oportuno se pondrá a disposición de los estudiantes actividades de tipo totalmente opcional que le ayuden a preparar y prepararse para las de tipo obligatorio.

Este curso, debido a la situación generada por la COVID, algunas de las sesiones de grupo grande se harán en formato híbrido: presencial y en línea (vía streaming). Esto permitirá que los estudiantes puedan asistir rotativamente a las clases presenciales, respetando el máximo de estudiantes por aula que imponen las medidas de distanciamiento. Cuando no les toque sesión presencial podrán seguir la clase en línea desde casa.

En cuanto a las sesiones de prácticas en espacios más reducidos (como laboratorios, estudios o plató), si es necesario se trabajará simultáneamente en varios espacios para garantizar que se cumplan las condiciones establecidas por los protocolos de seguridad.

Contenidos


1.- Introducción a la Programación Orientada a Objetos

  • Definición intuitiva de objeto.
  • Abstracción y encapsulación: Objetos y clases.
  • Atributos y métodos.
  • Instanciación de objetos e invocación de métodos.

2.- Técnicas fundamentales de la Programación Orientada al Objeto: Herencia y Polimorfismo

  • Extensión de clases: herencia.
  • Polimorfismo. Sobrecarga y reescritura.

3.- Conceptos avanzados: interfaces y clases abstractas

  • Clases y métodos abstractos.
  • Interfaces.

4.- Tratamiento de errores

  • Excepciones.
  • Lanzamiento, captura y tratamiento de excepciones.

5.- Introducción a la programación de la interfaz gráfica de usuario

  • Programación en respuesta a eventos.
  • Ventanas y controles.

Actividades de aprendizaje


Se pone a disposición de los estudiantes actividades de carácter práctico (ejercicios cortos, problemas...) que son la base de las actividades de aprendizaje de la asignatura. Los estudiantes las tendrán que resolver, a menudo en sesiones no  presenciales, siguiendo las instrucciones de los profesores y también,se trabajarán en clase, ya sea como ejemplos en las sesiones teóricas, ya sea en las sesiones de laboratorio. Si bien estas actividades serán opcionales (los docentes no verificaran individualmente la realización de los alumnos), serán imprescindibles para lograr el conocimiento teórico-práctico de la asignatura.

Con el objetivo de reunir pruebas del logro de los resultados de aprendizaje que se esperan, se realizaran las siguientes actividades evaluativas (prácticas y exámenes):

Las prácticas serán realizadas en grupo de dos estudiantes. No necesariamente, la calificación de los dos miembros del grupo debe ser la misma, se tendrá en cuenta el grado de participación de cada uno de ellos en la confección de cada una de las prácticas.

PRÁCTICA 1

Con esta práctica, los estudiantes tendrán que codificar un programa que haga uso de las clases de objetos, algunas proporcionadas por el profesor y/o codificadas por ellos mismos. El objetivo de la práctica es doble, por un lado, la codificación, la prueba y la depuración de nuevas clases de objetos y, por otro lado, utilizar los dos paradigmas de la programación, la programación orientada a objetos y la programación estructurada. El estudiante tendrá que resolver el mismo problema dos veces, tendrá que hacer dos versiones:

  • una primera haciendo uso del paradigma de programación imperativa, siguiendo el modelo de los programas aprendida por los estudiantes en la asignatura precedente de programación.
  • una segunda versión, haciendo uso del paradigma de la orientación al objeto.

El estudiante debe entender las dos metodologías, entender las diferencias y evaluar los pros y los contras de cada uno.

Para implementar la segunda versión, el estudiante debe utilizar más elementos  del software usado para el desarrollo, del entorno de programación, y por eso tendrá que profundizar en su utilización ya que la nueva implementación requiere más elementos de los el estudiante ha utilizado hasta entonces.

El problema a resolver se habrá puesto a disposición de los alumnos antes de la realización de la sesión de laboratorio, con el doble objetivo de entender el problema que se tratará y que empiecen a diseñar las soluciones.

Los estudiantes tendrán que terminar, en las horas pensadas en el aprendizaje autónomo, la solución de los problemas planteados.

La realización de esta actividad contribuye al logro de los resultados de aprendizaje RA1y RA2.

PRÁCTICA 2

En esta práctica, los estudiantes tendrán que codificar un programa que haga uso de clases de objetos de diferentes bibliotecas del lenguaje de programación, y de otras codificadas por ellos mismos. El objetivo de la práctica se centrará en la codificación, la prueba y la depuración de un diseño de clases y su uso en la escritura de un programa. El estudiante tendrá que codificar un diseño de clases utilizando los diferentes elementos de la programación orientada a objetos, desde los más básicos a los más complejos.

La complejidad del trabajo a realizar será superior a la práctica anterior.

El problema a resolver se habrá puesto a disposición de los alumnos antes de la realización de la sesión de laboratorio, con el doble objetivo de, entender el problema que se tratará y de que hayan empezado a diseñar las soluciones.

Los estudiantes tendrán que terminar, en las horas pensadas en el aprendizaje autónomo, la totalidad de la actividad.

La realización de esta actividad contribuye al logro de los resultados de aprendizaje RA1 y RA2.

PRÁCTICA 3

En esta práctica, los estudiantes tendrán que codificar un diseño de clases que hagan uso de clases de objetos dadas por el lenguaje de programación y otras codificadas por ellos mismos. El objetivo de la práctica se centrará en la codificación, pruebas y depuración de nuevas clases de objetos, pero poniendo más énfasis en el control de errores mediante el uso de las excepciones. 

El problema a resolver se habrá puesto a disposición de los alumnos antes de la realización de la sesión de laboratorio, con el doble objetivo de, entender el problema que se tratará y que hayan empezado a diseñar las soluciones.

Los estudiantes tendrán que terminar, en las horas pasadas en el aprendizaje autónomo la gama completa de los problemas planteados.

La realización de esta actividad contribuye al logro de los resultados de aprendizaje RA1, RA2 y RA3.

PRÁCTICA 4

Esta práctica se dedicará a la resolución de problemas relacionados con la totalidad de los contenidos de la asignatura y con especial énfasis en el último tema: la programación de la interfaz gráfica de usuario. El estudiante resolverá dos problemas:

  • en uno tendrá de programar desde cero toda la interfaz gráfica e interactividad requerida
  • y en el otro, usará una herramienta de desarrollo de interfaces gráficas.  Tendrá de entender toda la lógica del código generado por la herramienta, para poder modificarlo para incorporar la interactividad solicitada por el problema.

Los problemas a resolver se han puesto a disposición de los estudiantes antes de la finalización de la sesión de laboratorio, con el doble objetivo de, conocer los problemas que se procesarán y que hayan empezado a diseñar las soluciones.

Los estudiantes tendrán que terminar, en las horas pasadas en el aprendizaje autónomo la gama completa de los problemas planteados.

La realización de esta actividad contribuye al logro de los resultados de aprendizaje RA1, RA2, RA3 y RA4.

A nivel competencial las cuatro prácticas, que mayoritariamente se deberán desarrollar en tiempo no presencial, cubren las siguientes competencias comunes y específicas de la asignatura (entre paréntesis los aspectos más relevantes de cada competencia a los que contribuye):

  • CIN1 (desarrollar software)
  • CIN3 (hábitos de trabajo efectivos en los entornos de desarrollo de software)
  • CIN5 (mantener software)
  • CIN6 (aplicar procedimientos algorítmicos)
  • EFB3 (comprender y dominar los conceptos de la algorítmica) 
  • EFB4 (uso de programas informáticos)

 

PRUEBA ESCRITA I

Esta actividad será unipersonal y evaluará los dos primeros contenidos de la asignatura. Con esta actividad se evalúan los resultados de aprendizaje RA1 y RA2.

PRUEBA ESCRITA II

Esta actividad será unipersonal y evaluará todos los contenidos de la asignatura. Con esta actividad se evalúan los resultados de aprendizaje RA1, RA2, RA3 y RA4, pero dando más peso a los resultados de aprendizaje no evaluados en la prueba escrita I.

 

A nivel competencial estas dos pruebas, cubren las siguientes competencias comunes y específicas de la asignatura:

  • CIN1 (desarrollar software)
  • CIN6 (aplicar procedimientos algorítmicos),
  • EFB3 (comprender y dominar los conceptos de la algorítmica y su aplicación para resolución de problemas)

Para superar (aprobar) las actividades evaluativas, los estudiantes deberán demostrar

  • Que han adquirido los conocimientos teóricos relativos a los contenidos de la asignatura y que su comprensión les permite llevarlos a la práctica [MECES-2 punto a, punto c]
  • Que pueden desarrollar soluciones a problemas que, si bien son similares a otros vistos anteriormente, presentan aspectos que son nuevos [MECES-2 punto f]

En relación a la competencia básica asignada a la asignatura, ésta queda cubierta especialmente en cuanto a los aspectos que se explicitan:

  • B2: resolución de problemas dentro de su área de estudio.

Finalmente, y en cuanto a las competencias transversales asociadas a la asignatura:

  • T1: (conocimiento tercera lengua) se trabaja a partir de las fuentes documentales que los estudiantes deben consultar, dado que todas ellas se encuentran en inglés.
  • T2: (trabajo en grupo) se trabaja en las actividades de prácticas que se realizan en grupos de dos estudiantes que deben consensuar y contribuir las soluciones de las actividades prácticas.

 

Normas de realización de las actividades

Para cada actividad, los docentes informarán de las normas y condiciones particulares que las rijan.

Las actividades unipersonales presuponen el compromiso del estudiante de realizarlas de manera individual. Se considerarán suspendidas todas aquellas actividades en las que el estudiante no se ajuste a este compromiso, independientemente de su papel (emisor o receptor).

Igualmente, las actividades que se deban realizar en grupos presuponen el compromiso por parte de los estudiantes que lo integran de realizarlas en el seno del grupo. Se considerarán suspendidas todas aquellas actividades en la que el grupo no haya respetado este compromiso con independencia de su papel (emisor o receptor).

En las actividades realizadas en grupo el docente puede, en base a la información de que disponga, personalizar la calificación para cada integrante del grupo.

Cualquier actividad no entregada se considerará puntuada con cero puntos.

Es potestativo de los docentes aceptar o no entregas fuera de los plazos que se indiquen. En caso de que estas entregas fuera de plazo se acepten, es potestativo del docente decidir si aplica alguna penalización y la cuantía de la misma.

 

Sistema de evaluación


La calificación final es la suma ponderada de las calificaciones de las siguientes actividades:

ACTIVIDAD             PESO

PRUEBA ESCRITA I    23%

PRUEBA ESCRITA II   45%

PRACTICA 1    8%

PRACTICA 2    8%

PRACTICA 3    8%

PRACTICA 4    8%

Con las ponderaciones anteriores, las actividades de laboratorio (prácticas) tienen un peso del 32%, las actividades de carácter teórico tienen un peso del 68%.

Si la calificación de la PRUEBA ESCRITA II es inferior a 4, la calificación final de la asignatura será la de esta actividad. La asignatura quedará suspendida, con posibilidad de recuperación.

Para aprobar la asignatura es necesario que el estudiante:

  • como mínimo, haya entregado tres prácticas, i que,
  • la calificación mínima de tres de las prácticas entregadas ha ser de  4.

Si no se dan estas premisas la asignatura quedará suspendida y en este caso sin posibilidad de recuperarla.

La recuperación sólo posibilita recuperar la calificación de las actividades teóricas, PRUEBA ESCRITA I y II, y siempre que esta nueva calificación no sea inferior a 4 se aplicará la misma ponderación descrita anteriormente. En caso contrario la asignatura no se considerará recuperada.

 

Bibliografía


Básica

Enric Sesa i Nogueras. POO: notes de classe i exemples. ESUPT Tecnocampus.

Lina Juan: Ampliació notes de classe. Exercicis. ESUPT Tecnocampus.


Complementaria

Bertrand Meyer. Object-Oriented Software Construction. PRENTICE-HALL

Bruce Eckel. Thinking in Java. Prentice-Hall