Última revisión realizada:10/11/2020

Denominación de la asignatura: Programación Avanzada
Pregrado al que pertenece: Pregrado en Ingeniería Informática
Créditos ECTS: 3
Semestre en el que se imparte: Cuarto semestre

Presentación

El desarrollo de software es una de las ramas más importantes de la ingeniería informática. Un buen desarrollador además de ser un buen programador (conocer en profundidad el lenguaje de programación que va a utilizar) debe ser capaz de identificar la técnica de programación más adecuada para resolver el problema al que se enfrenta.

La asignatura está dividida en dos grandes bloques, un primer bloque centrado en técnicas de programación (se llevará a cabo en Java) y un segundo bloque centrado en los aspectos formales de la programación (pruebas, documentación, medición….), unidos nos llevan a la obtención de un desarrollo de calidad.

En el primer bloque se van a abordar problemas complejos del mundo real y se va a mostrar al alumno como resolverlos, de manera práctica, a través de diferentes técnicas de diseño y programación. Esto va a proporcionar las herramientas necesarias para que el alumno sea capaz de resolver los problemas más comunes a los que se enfrenta un programador profesional.

En el segundo bloque lo que vamos a hacer es no olvidar que un buen desarrollo no termina cuando se ha realizado el código, sino que hay que documentar y probar el software de tal manera que sea escalable, adaptable y fácil de mantener.

Tema 1. Introducción a la programación orientada a objetivos

  • Introducción y objetivos
  • Introducción a la programación orientada a objetos
  • Diseño de clases
  • Introducción a UML para el modelado de los problemas

Tema 2. Relaciones entre clases

  • Introducción y objetivos
  • Abstracción y herencia
  • Conceptos avanzados de herencia
  • Polimorfismo
  • Composición y agregación
  • This y Super

Tema 3. Introducción a los patrones de diseño para problemas orientados a objetos

  • Introducción y objetivos
  • Qué son los patrones de diseño
  • Patrón Factory
  • Patrón Singleton
  • Patrón Observer
  • Patrón Composite

Tema 4. Excepciones

  • Introducción y objetivos
  • Excepciones
  • Captura y gestión de excepciones
  • La clase Throwable
  • Creación de excepciones

Tema 5. Interfaces de usuarios

  • Introducción y objetivos
  • AWT
  • Gestores de posicionamiento
  • ¿Qué son los eventos?
  • Adaptadores

Tema 6. Interfaces de usuarios (II)

  • Introducción y objetivos
  • Eventos: definición y captural
  • Desarrollo de interfaces de usuario
  • SWING

Tema 7. Introducción a la programación concurrente

  • Introducción y objetivos
  • Introducción a la programación concurrente
  • El concepto de proceso e hilo
  • Interacción entre procesos e hilos
  • Los hilos en Java
  • Ventajas e inconvenientes de la programación concurrente

Tema 8. Sincronización

  • Introducción y objetivos
  • Sincronización
  • Mecanismos de bloqueo
  • Mecanismos de comunicación
  • Monitores
  • Bibliotecas de Java para concurrencia

Tema 9. Gestión de hilos

  • Introducción y objetivos
  • Ciclo de vida de un hilo
  • La clase Thread
  • Planificación de hilos
  • Grupos de hilos
  • Hilos de tipo demonio

Tema 10. Problemas comunes dentro de la programación concurrente

  • Introducción y objetivos
  • El problema de los productores consumidores
  • El problema de los lectores y escritores
  • El problema de la cena de los filósofos

Tema 11. Documentación de software

  • Introducción y objetivos
  • ¿Por qué es importante documentar el software?
  • Documentación de diseño
  • Uso de herramientas para la documentación: JavaDoc

Tema 12. Pruebas de software

  • Introducción y objetivos
  • Introducción a las pruebas del software
  • Prueba de unidad
  • Prueba de integración
  • Prueba de validación
  • Prueba del sistema

Las actividades formativas de la asignatura se han elaborado con el objetivo de adaptar el proceso de aprendizaje a las diferentes capacidades, necesidades e intereses de los alumnos.

Las actividades formativas de esta asignatura son las siguientes:

  • Casos prácticos. En la programación semanal, puedes consultar cuándo hacerlos y en el Aula virtual encontrarás toda la información sobre cómo desarrollarlos y cómo y cuándo entregarlos. 
  • Participación en eventos. Son eventos programados todas las semanas del cuatrimestre: sesiones presenciales virtuales, foros de debate.
Descargar programación

Estas actividades formativas prácticas se completan, por supuesto, con estas otras:

  • Estudio personal
  • Tutorías. Las tutorías se pueden articular a través de diversas herramientas y medios. Durante el desarrollo de la asignatura, el profesor programa tutorías en días concretos para la resolución de dudas de índole estrictamente académico a través de las denominadas “sesiones de consultas”. Como complemento de estas sesiones se dispone también del foro “Pregúntale al profesor de la asignatura” a través del cual se articulan algunas preguntas de alumnos y las correspondientes respuestas en el que se tratan aspectos generales de la asignatura. Por la propia naturaleza de los medios de comunicación empleados, no existen horarios a los que deba ajustarse el alumno.
  • Examen final online

Bibliografía básica

Recuerda que la bibliografía básica es imprescindible para el estudio de la asignatura. Cuando se indica que no está disponible en el aula virtual, tendrás que obtenerla por otros medios: librería UNIR, biblioteca...

Los textos necesarios para el estudio de la asignatura han sido elaborados por UNIR y están disponibles en formato digital para consulta, descarga e impresión en el aula virtual.

Además, en estos temas deberás estudiar la siguiente bibliografía:

Tema 1

García, L. F. (2010). Todo lo básico que debería saber sobre programación orientada a objetos en Java. Barranquilla: Uninorte.
Disponible en el aula virtual e virtud del artículo 32.4 de la Ley de Propiedad Intelectual.

Tema 3

Vélez, J. (2011). «Patrones y principios de diseño». En Autor, Diseñar y programar, todo es empezar: Una introducción a la programación orientada a objetos usando UML y Java (pp. 141-151). Madrid: Dykinson.
Disponible en el aula virtual e virtud del artículo 32.4 de la Ley de Propiedad Intelectual.

Tema 5

Sznajdleder, P. A. (2013). «Interfaz gráfica (GUI)». En Autor, Java a Fondo: estudio del lenguaje y desarrollo de aplicaciones (2ª ed.) (pp.162-176). Buenos Aires: Alfaomega Grupo Editor.
Disponible en el aula virtual e virtud del artículo 32.4 de la Ley de Propiedad Intelectual.

Temas 7, 8 y 9

Espinosa, A. R., Argente, E. y Muñoz, F. D. (2013). Concurrencia y sistemas distribuidos (pp.1-8, 14-18, 19-37, 43-56). Valencia: Editorial de la Universidad Politécnica de Valencia.
Disponible en el aula virtual e virtud del artículo 32.4 de la Ley de Propiedad Intelectual.

Tema 11

Pressman, R. S. (2002). Ingeniería del software. Un enfoque práctico (pp. 219-223, 226-234). Madrid: McGraw Hill.
Disponible en el aula virtual e virtud del artículo 32.4 de la Ley de Propiedad Intelectual.

El sistema de calificación se basa en la siguiente escala numérica:

0 - 5,9 Suspenso (SS)
6 - 10 Aprobado (AP)
  • Escala de calificaciones. En las calificaciones definitivas el docente utilizará una escala numérica con un rango que va de cero (0) a diez (10), donde cero (0) es la nota más baja y diez (10) la más alta.
  • Calificación reprobada. Una calificación total inferior a seis (6) en la suma de las actividades y el examen significará el suspenso de la materia.
  • Evaluaciones parciales o continuas (60% de la nota final).
  • Evaluación final (40% de la nota final).
Sistema de evaluación PONDERACIÓN MIN-MAX
Participación del estudiante (sesiones y foros)

0%-60%

Trabajos (trabajos, laboratorios y casos prácticos)

0%-60%

Test de autoevaluación

0%-60%

Examen final online

40%-40%

Obviamente, al tratarse de formación online puedes organizar tu tiempo de estudio como desees, siempre y cuando vayas cumpliendo las fechas de entrega de actividades, trabajos y exámenes. Nosotros, para ayudarte, te proponemos los siguientes pasos:

  1. Desde el Campus virtual podrás acceder al aula virtual de cada asignatura en la que estés matriculado y, además, al aula virtual del Curso de introducción al campus virtual. Aquí podrás consultar la documentación disponible sobre cómo se utilizan las herramientas del aula virtual y sobre cómo se organiza una asignatura en la UNIR y también podrás organizar tu plan de trabajo con tu tutor personal.
  2. Observa la programación semanal. Allí te indicamos qué parte del temario debes trabajar cada semana.
  3. Ya sabes qué trabajo tienes que hacer durante la semana. Accede ahora a la sección Temas del aula virtual. Allí encontrarás el material teórico y práctico del tema correspondiente a esa semana.
  4. Comienza con la lectura de las Ideas clave del tema. Este resumen te ayudará a hacerte una idea del contenido más importante del tema y de cuáles son los aspectos fundamentales en los que te tendrás que fijar al estudiar el material básico. Consulta, además, las secciones del tema que contienen material complementario.
  5. Dedica tiempo al trabajo práctico (sección Actividades y Test). En la programación semanal te detallamos cuáles son las actividades correspondientes a cada semana y qué calificación máxima puedes obtener con cada una de ellas.
  6. Te recomendamos que participes en los eventos del curso (sesiones presenciales virtuales, foros de debate…). Para conocer la fecha concreta de celebración de los eventos debes consultar las herramientas de comunicación del aula vitual. Tu profesor y tu tutor personal te informarán de las novedades de la asignatura.

En el aula virtual del Curso de introducción al campus virtual encontrarás siempre disponible la documentación donde te explicamos cómo se estructuran los temas y qué podrás encontrar en cada una de sus secciones.

Recuerda que en el aula virtual del Curso de introducción al campus virtual puedes consultar el funcionamiento de las distintas herramientas del aula virtual: Correo, Foro, Sesiones presenciales virtuales, Envío de actividades, etc.

Ten en cuenta estos consejos...

  • Sea cual sea tu plan de estudio, accede periódicamente al aula Virtual, ya que de esta forma estarás al día de las novedades del curso y en contacto con tu profesor y con tu tutor personal.
  • Recuerda que no estás solo: consulta todas tus dudas con tu tutor personal utilizando el correo electrónico. Además, siempre puedes consultar tus dudas sobre el temario en los foros que encontrarás en cada asignatura (Pregúntale al profesor).
  • ¡Participa! Siempre que te sea posible accede a los foros de debate. El intercambio de opiniones, materiales e ideas nos enriquece a todos.
  • Y ¡recuerda!, estás estudiando con metodología on line: tu esfuerzo y constancia son imprescindibles para conseguir buenos resultados. ¡No dejes todo para el último día!