Guía docente de la asignatura

Nuevas Tecnologías de la Programación (Especialidad Ingeniería del Software)

Curso 2021 / 2022
Fecha última actualización: 21/06/2021
Fecha de aprobación: 21/06/2021

Grado

Grado en Ingeniería Informática

Rama

Ingeniería y Arquitectura

Módulo

Complementos de Ingeniería del Software

Materia

Complementos de Programación

Curso

4

Semestre

2

Créditos

6

Tipo

Optativa

Profesorado

Teoría

  • Manuel Gómez Olmedo. Grupos: A

Prácticas

  • Manuel Gómez Olmedo. Grupos: 1

Tutorías

Manuel Gómez Olmedo

mgolmedo@ugr.es
  • Primer semestre
    • Jueves de 8:30 a 11:30 (Pol (Politecn))
    • Martes de 8:30 a 11:30 (Pol (Politecn))
  • Segundo semestre
    • Jueves de 9:30 a 11:30 (D31 Etsiit)
    • Martes de 9:30 a 12:30 (D31 Etsiit)
    • Miércoles de 11:30 a 12:30 (D31 Etsiit)

Prerrequisitos y/o Recomendaciones

Los alumnos no habrán de tener materias o asignaturas aprobadas como requisito indispensable para superar esta materia. No obstante, se recomienda tener aprobados los contenidos y adquiridas las competencias de cuatrimestres precedentes.

Breve descripción de contenidos (Según memoria de verificación del Grado)

  • Técnicas avanzadas de programación: programación funcional.
  • Patrones de diseño. Aplicaciones.

Competencias asociadas a materia/asignatura

Competencias generales

  • CG08 - Conocimiento de las materias básicas y tecnologías, que capaciten para el aprendizaje y desarrollo de nuevos métodos y tecnologías, así como las que les doten de una gran versatilidad para adaptarse a nuevas situaciones.
  • CG09 - Capacidad para resolver problemas con iniciativa, toma de decisiones, autonomía y creatividad. Capacidad para saber comunicar y transmitir los conocimientos, habilidades y destrezas de la profesión de Ingeniero Técnico en Informática.

Resultados de aprendizaje (Objetivos)

  • Conocer el paradigma de programación funcional. 
  • Conocer la forma en que se incorpora este lenguaje de programación en el lenguaje Java. 
  • Abordar la solución de un programa usando programación funcional con el lenguaje de programación Scala. 
  • Analizar de forma crítica un diseño software, identificando puntos esenciales que supongan un problema en cuanto a su posible ampliación o modificación. 
  • Conocer soluciones prototípicas que han demostrado su eficacia en la resolución de problemas concretos pero usualmente presentes en los sistemas software. 
  • Ser capaces de identificar qué patrón de diseño puede solucionar un determinado problema identificado en un diseño software. 
  • Adquirir capacidades en el uso avanzado de lenguajes de programación, no cubiertas en otras materias y asignaturas, como, por ejemplo, el paradigma de programación funcional. 
  • Ser capaces de identificar y analizar problemas y diseñar, desarrollar, implementar, verificar y documentar soluciones software sobre la base de un conocimiento adecuado de las teorías, modelos y técnicas actuales.

Programa de contenidos teóricos y prácticos

Teórico

  • TEMA 1. Repaso de conceptos de orientación a objetos.
    1. Conceptos de clase y objeto, herencia, polimorfismo, uso de interfaces.
  • TEMA 2. Programación funcional en Java
    1. Introducción.
    2. Uso de colecciones.
    3. String, comparadores y filtros.
    4. Diseño con expresiones lambda.
    5. Trabajo con flujos.
    6. Evaluación lazy.
    7. Optimización de recursos.
    8. Composición con expresiones lambda.
  • TEMA 3. Programación en Scala: paradigma de programación funcional
    1. Introducción.
    2. Variables, estructuras de control
    3. Funciones
    4. Clases y objetos, herencia.
  • TEMA 4. Patrones y antipatrones. Refactorización.
    1. Introducción.
    2. Ejemplos motivadores y aplicaciones de patrones: observador, decorador, factoría, factoría abstracta, singleton, plantilla, iterador, composite, estado.
    3. Introducción a la refactorización.

Práctico

  • PRÁCTICA 1. Entorno de trabajo, repaso de conceptos previos de orientación a objetos. Práctica no evaluable.
  • PRÁCTICA 2. Práctica sobre programación funcional en Java.
  • PRÁCTICA 3. Práctica de Scala: funciones y recursividad.
  • PRÁCTICA 4. Trabajo de evaluación de la asignatura. Práctica de diseño e implementación en Scala.

Bibliografía

Bibliografía fundamental

  • Introduction to Java Programming and Data Structures. Y.D. Liang. Pearson, 2019.
  • Big Java: Early objects. C. Horstman. Wiley, 2019.
  • Programming in Scala, M. Odersky, L. Spoon, B. Venners. Artima, 2019.
  • Programming Scala: Scalability = functional programming + objects. D. Wampler, A. Payne. O'Reilly Media, 2014.
  • Introduction to the art of programming using Scala. M. C. Lewis. Chapman & Hall, 2012.
  • Learning Scala: practical functional programming for the JVM. J. Swartz. O'Reilly Media, 2014.

Bibliografía complementaria

  • Functional Programming in Java: Harnessing the power of Java 8 lambda expressions. V. Subramaniam. The pragmatic programmers, 2014.
  • Object orientation, abstraction and data structures using Scala. M.C. Lewis, L.L. Lacher. Chapman & Hall, 2017.
  • Head First Design Patterns: a brain-friendly guide. E. Freeman, E. Freeman, B. Bates, K. Sierra. O’Reilly Media, 2020.
  • Design Patterns Explained. A. Shalloway, J.R. Trott. Addison-Wesley, 2004.

Metodología docente

  • MD01 Lección Magistral (Clases Teóricas-Expositivas) 
  • MD02 Actividades Prácticas (Resolución de Problemas, Resolución de Casos Prácticos, Desarrollo de Proyectos, Prácticas en Laboratorio, Taller de Programación, Aula de Informática, Prácticas de Campo). 
  • MD03  Seminarios (Debates, Demos, Exposición de Trabajos Tutelados, Conferencias, Visitas Guiadas, Monografías). 
  • MD04 Actividades no presenciales Individuales. 
  • MD05 Actividades no presenciales Grupales. 
  • MD06 Tutorías Académicas. 

Evaluación (instrumentos de evaluación, criterios de evaluación y porcentaje sobre la calificación final)

Evaluación ordinaria

 

Evaluación de la asignatura  
Entregas de prácticas sin defensa 55%
Entrega y defensa de práctica final 35%
Evaluación continua 10%

Es obligatoria la realización de todas las prácticas propuestas en la asignatura. En caso de no entregar y defender la práctica final, se suspenderá la asignatura en la evaluación ordinaria, pero se podrá mantener la nota de prácticas para la evaluación extraordinaria.

Evaluación extraordinaria

Los estudiantes serán evaluados con un examen único consistente en la resolución de varios cuestiones teórico-prácticas relacionadas con la materia impartida. El peso de este examen dependerá de las actividades realizadas por el alumno durante la fase de evaluación continua: 100% en caso de no haber realizado ninguna entrega; 35 % en caso de haber entregado las prácticas sin defensa.

Evaluación única final

De acuerdo a lo establecido en la Normativa de evaluación y de calificación de los estudiantes de la Universidad de Granada vigente, la evaluación será preferentemente continua. No obstante, el estudiante que no pueda acogerse a dicho sistema por motivos laborales, estado de salud, discapacidad, programas de movilidad o cualquier otra causa debidamente justificada podrá acogerse a la evaluación única final. Para ello deberá solicitarlo al Director del Departamento o al Coordinador del Máster en las dos primeras semanas de impartición de la asignatura o, excepcionalmente, en las dos primeras semanas tras la matriculación en la asignatura.

Esta modalidad de evaluación se realizará en un único acto académico en la fecha establecida por el Centro y consistirá en un examen escrito (evaluado de 0 a 10) que incluirá preguntas tanto de tipo teórico como práctico que garanticen que el alumno ha adquirido la totalidad de las competencias descritas en esta misma guía docente.

Información adicional

La asistencia a las clases teóricas y prácticas no será obligatoria, aunque la participación activa en clase y la entrega de ejercicios planteados por el profesor se tendrá en cuenta dentro del sistema de evaluación continua de la asignatura. Sí será obligatoria la defensa de prácticas si así se requiere por parte del profesor (en caso de no realizarse la defensa la práctica correspondiente se considerará como no entregada).

ESCENARIO A (ENSEÑANZA-APRENDIZAJE PRESENCIAL Y TELE-PRESENCIAL)

Horario (Según lo establecido en el POD)

  • Martes, de 9.30 a 12.30.
  • Miércoles de 11.30 a 12.30.
  • Jueves, de 9.30 a 11.30.

Las tutorías se pasarán de forma presencial, si es posible, en el despacho 31, planta 4, bloque de despachos, ETSIIT. En caso de no poderse realizar de forma presencial se realizarán de forma telemática, mediante Google-Meet, Skype, o cualquier otro medio disponible.

Herramientas para la atención tutorial (Indicar medios telemáticos para la atención tutorial)

  • Google-Meet
  • Skype
  • Correo electrónico
  • Cuenta de Telegram para la asignatura

Medidas de adaptación de la evaluación (Instrumentos, criterios y porcentajes sobre la calificación)

El profesorado de la asignatura adaptará, total o parcialmente, los contenidos para su impartición online preferentemente en los horarios establecidos por el centro. Esta adaptación estará sujeta a los condicionantes de infraestructura y medios que existan en el momento de adopción del Escenario A. Se utilizarán las plataformas y herramientas proporcionadas por la Universidad de Granada.

Evaluación ordinaria

El profesorado podrá adaptar total o parcialmente las actividades evaluables indicadas en esta guía para su realización online mediante las herramientas y plataformas provistas por la UGR, atendiendo a la situación sanitaria y a las disposiciones de la UGR.

Evaluación extraordinaria

El profesorado podrá adaptar total o parcialmente las actividades evaluables indicadas en esta guía para su realización online mediante las herramientas y plataformas provistas por la UGR, atendiendo a la situación sanitaria y a las disposiciones de la UGR.

Evaluación única final

El profesorado podrá adaptar total o parcialmente las actividades evaluables indicadas en esta guía para su realización online mediante las herramientas y plataformas provistas por la UGR, atendiendo a la situación sanitaria y a las disposiciones de la UGR.

ESCENARIO B (SUSPENSIÓN DE LA ACTIVIDAD PRESENCIAL)

Horario (Según lo establecido en el POD)

  • Martes, de 9.30 a 12.30.
  • Miércoles de 11.30 a 12.30.
  • Jueves, de 9.30 a 11.30.

Las tutorías se realizarán de forma telemática, mediante Google-Meet, Skype, o cualquier otro medio disponible o recomendado por la Universidad de Granada.

Herramientas para la atención tutorial (Indicar medios telemáticos para la atención tutorial)

  • Google-Meet
  • Skype
  • Correo electrónico
  • Cuenta de Telegram para la asignatura

Medidas de adaptación de la evaluación (Instrumentos, criterios y porcentajes sobre la calificación)

El profesorado de la asignatura adaptará, total o parcialmente, los contenidos para su impartición online en los horarios establecidos por el centro. Esta adaptación estará sujeta a los condicionantes de infraestructura y medios que existan en el momento de adopción del Escenario B. Se utilizarán las plataformas y herramientas proporcionadas por la Universidad de Granada.

Evaluación ordinaria

La evaluación se realizará mediante la evaluación de los trabajos prácticos propuestos. La defensa de las prácticas (en caso de ser necesario) se hará mediante las herramientas y plataformas provistas por la Universidad de Granada.

Evaluación extraordinaria

El profesorado podrá adaptar total o parcialmente las actividades evaluables indicadas en esta guía para su realización online mediante las herramientas y plataformas provistas por la UGR, atendiendo a la situación sanitaria y a las disposiciones de la UGR.

 

Evaluación única final

El profesorado podrá adaptar total o parcialmente las actividades evaluables indicadas en esta guía para su realización online mediante las herramientas y plataformas provistas por la UGR, atendiendo a la situación sanitaria y a las disposiciones de la UGR.