Información general


Tipo de asignatura: básica

Coordinador: Alfonso Palacios González

trimestre: Segundo trimestre

Créditos: 6

Profesorado: 

Catalina Juan Navidad
Rosa Herrero Antón 

Competencias


competencias básicas
  • B2_Que los estudiantes sepan aplicar sus conocimientos en su trabajo o vocación de una forma profesional y tengan las competencias que demuestran mediante la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio

Competencias específicas
  • EFB3_Capacidad para comprender y dominar los conceptos básicos de matemática discreta, lógica, algorítmica y complejidad computacional, y su aplicación para la resolución de problemas propios de la ingeniería

  • EFB4_Conocimientos básicos sobre el uso y programación de los ordenadores, sistemas operativos, bases de datos y programas informáticos con aplicación en la ingeniería

competencias transversales
  • T1_Que los estudiantes conozcan un tercer idioma, que será preferentemente el inglés, con un nivel adecuado de forma oral y por escrito, de acuerdo con las necesidades que tendrán las graduadas y graduados en cada titulación

  • T2_Que los estudiantes tengan capacidad para trabajar como miembros de un equipo interidisciplinar ya sea como un miembros más, o realizando tareas de dirección con el fin de contribuir a desarrollar proyectos con pragmatismo y sentido de la responsabilidad, asumiendo compromisos teniendo en cuenta los recursos disponibles

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 Covidien-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


A nivel general, esta asignatura contribuye a siguientes resultados de aprendizaje especificados para la materia a la que pertenece (Algorítmica y Programación):

  • Construir algoritmos correctos y eficientes para problemas de dificultad pequeña.
  • Implementar algoritmos sencillos en un lenguaje de programación imperativo de referencia para el nivel inicial.
  • Identificar las soluciones algorítmicas más adecuadas para resolver problemas de dificultad medio.
  • Razonar sobre la corrección y la eficiencia de una solución algorítmica.
  • Diseñar, escribir, probar, depurar, documentar y mantener código en un lenguaje de alto nivel para resolver problemas de programación aplicando esquemas algorítmicos y usando estructuras de datos.
  • Aplicar técnicas básicas de descomposición modular de programas.
  • Elegir, combinar y explotar diferentes paradigmas de la programación en el momento de construcción del software, atendiendo a criterios como la facilidad de desarrollo, la eficiencia, la portabilidad y el mantenimiento.
  • Diseñar la arquitectura de los programas usando las técnicas de orientación a objetos, modularización y especificación e implementación de tipos abstractos de datos.
  • Usar las herramientas de un entorno de desarrollo de software para crear y desarrollar aplicaciones.
  • Demostrar conocimiento y comprensión de hechos esenciales, conceptos, principios y teorías relativas a la informática ya 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.
     

A un nivel más concreto, al finalizar la asignatura el estudiante debe ser capaz de:

  • RA1: comprender su 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.

 

Metodología de trabajo


Todos los conceptos teóricos de la materia expondrán en clases de teoría (grupos grandes). En estas clases, ya 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 manera 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 adquisición 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 bueno 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 al efecto se darán las herramientas adecuadas para resolver las actividades programadas bueno y que se espera que estas 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.

Se pondrá a disposición de los estudiantes actividades de tipo totalmente opcional que le ayuden a preparar ya prepararse para las de carácter obligatorio.

Este curso, debido a la situación generada por la Covidien, algunas de las sesiones de grupo grande se harán en formato híbrido: presencial y en línea (vía en streaming). Esto permitirá que los estudiantes puedan ir rotativamente en 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ó), en su caso se trabajará simultáneamente en varios espacios para garantizar que se cumplen 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 una serie de actividades de carácter eminentemente práctico (ejercicios cortos, problemas ...) que son la base de las actividades de aprendizaje de la asignatura. Estas actividades los estudiantes / se las tendrán que resolver, a menudo de manera no presencial, siguiendo las indicaciones de los docentes y también serán trabajadas en clase, ya sea como ejemplos en las sesiones de teoría, ya sea en las sesiones de laboratorio. Si bien estas actividades tendrán carácter optativo (los docentes no verificarán de manera individualizada la realización por parte de los estudiantes), serán imprescindibles para alcanzar los conocimientos teórico-prácticos de la asignatura.

Con el objetivo de recoger evidencia del logro de los resultados de aprendizaje esperados se realizarán las siguientes actividades de carácter evaluativo (prácticas y exámenes):

Las prácticas serán realizadas en grupos 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

En esta práctica, los estudiantes deberán codificar un programa que haga uso de clases de objetos, suministrados por el profesor y / o codificadas por ellos mismos. El objetivo de la práctica es doble, por un lado codificar, probar y depurar nuevas clases de objetos y por la otra, usar los dos paradigmas de la programación, la programación orientada a objetos y la programación estructurada. El estudiante deberá resolver un mismo problema dos veces, deberá hacer dos versiones:

  • Una primera haciendo uso del paradigma de la programación imperativa, siguiendo el modelo de los programas realizados hasta entonces por los estudiantes en la asignatura precedente de programación.
  • Una segunda versión, en uso de la Programación la Orientación al Objeto.

El estudiante debe comprender las dos metodologías, entender las diferencias y valorar los pros y contras de cada una.

Para implementar la segunda versión el estudiante deberá usar más elementos del software informático usado para el desarrollo de programas, la nueva implementación requiere de más elementos de los que el estudiante ha usado hasta entonces.

El problema que habrá que resolver habrá sido puesto a disposición de los estudiantes con anterioridad a la realización de la sesión de laboratorio, con el doble objetivo, que conozcan el problema que será tratado y que hayan comenzado a diseñar las soluciones.

Los estudiantes deberán finalizar, en las horas dedicadas al aprendizaje autónomo la totalidad de los problemas planteados.

Esta actividad contribuye al logro de los resultados de aprendizaje RA1 y RA2.

PRÁCTICA 2

En esta práctica, los estudiantes deberán codificar un programa que haga uso de clases de objetos de las diferentes librerías del lenguaje, y otras clases codificadas por ellos mismos. El objetivo de la práctica se centrará en la codificación, prueba y depuración de un diseño de clases y su uso en la escritura de un programa. El estudiante deberá codificar un diseño de clases usando los diferentes elementos de la programación orientada a objetos, los más básicos y también el más complejas.

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

El problema que habrá que resolver habrá sido puesto a disposición de los estudiantes con anterioridad a la realización de la sesión de laboratorio, con el doble objetivo de que conozcan el problema que será tratado y que hayan comenzado a diseñar las soluciones.

Los estudiantes deberán finalizar, en las horas dedicadas al aprendizaje autónomo la totalidad de los problemas planteados.

Esta actividad contribuye al logro de los resultados de aprendizaje RA1 y RA2.

PRÁCTICA 3

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

El problema que habrá que resolver habrá sido puesto a disposición de los estudiantes con anterioridad a la realización de la sesión de laboratorio, con el doble objetivo de que conozcan el problema que será tratado y que hayan comenzado a diseñar las soluciones.

Los estudiantes deberán finalizar, en las horas dedicadas al aprendizaje autónomo la totalidad de los problemas planteados.

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: la programación de la interfaz gráfica de usuario. El estudiante resolverá dos enunciados:

  • En uno deberá programar desde cero toda la interfaz gráfica e interactividad pedida,
  • y en el otro, usar una herramienta de desarrollo de interfaces gráficas, entienden toda la lógica de la programación generada por la herramienta, para modificarla para incorporar la interactividad demanda por el problema.

Los problemas que habrá que resolver habrán sido puestos a disposición de los estudiantes con anterioridad a la realización de la sesión de laboratorio, con el doble objetivo de que conozcan los problemas que serán tratados y que hayan comenzado a diseñar las soluciones.

Los estudiantes deberán finalizar, en las horas dedicadas al aprendizaje autónomo la totalidad de los problemas planteados.

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) y
  • EFB4 (uso de programas informáticos)

 

PRUEBA ESCRITA Y

Esta actividad será unipersonal y evaluará los dos primeros contenidos de la asignatura. Con esta evaluación 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 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 las 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 actividades:

ACTIVIDAD PESO

PRUEBA ESCRITA Y 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, y que,
  • la calificación mínima de tres de las prácticas entregadas debe ser un 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ásico

Enric Sesa y Nogueras. POO: notas de clase y ejemplos. ESUPT Tecnocampus.

Lina Juan: Ampliación notas de clase. Ejercicios. ESUPT Tecnocampus.

Complementario

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

Bruce Eckel. Thinking in Java. Prentice-Hall