Estudia
- Artes y humanidades
- Ciencias
- Ciencias de la salud
- Ciencias sociales y jurídicas
-
Ingeniería y arquitectura
- Doble Grado en Ingeniería Civil e Ingeniería de los Recursos Mineros y Energéticos
- Doble Grado en Ingeniería en Tecnologías y Servicios de Telecomunicación / Grado en Ciencia e Ingeniería de Datos
- Doble Grado en Ingeniería Informática del Software / Grado en Matemáticas
- Doble Grado en Ingeniería Informática en Tecnologías de la Información / Grado en Ciencia e Ingeniería de Datos
- Grado en Ciencia e Ingeniería de Datos
- Grado en Ingeniería Civil
- Grado en Ingeniería de los Recursos Mineros y Energéticos
- Grado en Ingeniería de Organización Industrial
- Grado en Ingeniería de Tecnologías Industriales
- Grado en Ingeniería de Tecnologías Mineras
- Grado en Ingeniería Eléctrica
- Grado en Ingeniería Electrónica Industrial y Automática
- Grado en Ingeniería en Geomática
- Grado en Ingeniería en Tecnologías y Servicios de Telecomunicación
- Grado en Ingeniería Forestal y del Medio Natural
- Grado en Ingeniería Forestal y del Medio Natural (En extinción)
- Grado en Ingeniería Informática del Software
- Grado en Ingeniería Informática en Tecnologías de la Información
- Grado en Ingeniería Mecánica
- Grado en Ingeniería Química
- Grado en Ingeniería Química Industrial
- Grado en Marina
- Grado en Náutica y Transporte Marítimo
- Información, acceso y becas
Tecnologías y Paradigmas de la Programación
- Prácticas de Aula/Semina (7 Hours)
- Prácticas de Laboratorio (21 Hours)
- Tutorías Grupales (2 Hours)
- Clases Expositivas (28 Hours)
La asignatura de Tecnologías y Paradigmas de Programación (TPP) se imparte en el segundo cuatrimestre del segundo curso del grado. Forma parte de la materia de Programación (PR), del Módulo de Software de Aplicación (SA), junto con otras seis asignaturas: Fundamentos de Informática (FIN), Introducción a la Programación (INP), Metodología de la Programación (MTP), Estructuras de Datos (ESD), Algoritmia (ALG) y Programación Concurrente y Paralela (PCP). Dentro de la materia PR, el principal contenido que cubre la asignatura TTP son otros paradigmas aparte de la programación orientada a objetos e imperativa. El contenido de esta asignatura es fundamental para muchas asignaturas, en particular para las asignaturas ALG y ESD, y en general para la mayoría de las asigntaturas relacionadas con el desarrollo de software, ya que esta asignatura proporciona herramientas metodológicas y tecnológicas que de forma natural complementan y se integran con el paradigma orientado a objetos ya conocido por los alumnos. Las asignaturas INP, MTP son básicas para poder abordar con éxito la asignatura de TPP.
Se espera que mediante esta asignatura el estudiante adquiera las siguientes competencias del Grado en Ingeniería Informática en Tecnologías de la Información: Competencias específicas ECR8 y ECR14.3.
Aunque no hay requisitos en esta asignatura, sí que se pueden plantear una serie de recomendaciones que facilitarán la asimilación de los contenidos de la materia.
En esta asignatura resultan relevantes los conocimientos adquiridos en las asignaturas de Programación del primer curso, que permiten a los alumnos diseñar y desarrollar programas correctos en el paradigma orientado a objeto. Se retomarán también, los principios de computación y teoría de autómatas vistos en la asignatura de Autómatas y Matemáticas Discretas, ya que aportan los fundamentos en los que se basan varias de las técnicas expuestas en esta asignatura.
Las competencias a cubrir en esta asignatura son las ECR8 y la ECR14.3.En la competencia ECR8 se trata de desarrollar la capacidad del alumno para analizar, diseñar, construir y mantener aplicaciones de forma robusta, segura y eficiente, eligiendo el paradigma y los lenguajes de programación más adecuados. Los objetivos de aprendizaje para esta competencia se pueden resumir en cuatro perspectivas del Software (o subcompentencias):
- Robustez (ECR8.1)
- Conocer y saber aplicar las buenas prácticas de diseño e implementación de software en orden a paliar y prevenir los errores en el software
- Conocer y saber aplicar los mecanismos de control de errores en tiempo de ejecución
- Seguridad (ECR8.2)
- Conocer los mecanismos de seguridad en los paradigmas de programación estudiados
- Desarrollar una aplicación atendiendo a las especificaciones de un problema dado garantizando las condiciones de seguridad del proceso y de entorno
- Eficiencia (ECR8.3)
- Conocer los mecanismos de evaluación del rendimiento del software
- Evaluar el rendimiento de un desarrollo software atendiendo al paradigma, el lenguaje y el entorno
- Paradigmas y Lenguajes (ECR8.4)
- Conocer los paradigmas de programación lógica y funcional
- Conocer las bases formales de la programación lógica y funcional
- Desarrollar una solución basada en programación lógica a una especificación de problema dado
- Desarrollar una solución basada en programación funcional a una especificación de problema dado
- Conocer lo que es una base de datos deductiva
- Conocer el concepto de patrón de diseño
- Conocer los patrones de diseño básicos
- Aplicar el diseño basado en patrones a una especificación de problema dado
- Evaluar el paradigma de programación así como el lenguaje adecuado a una especificación de programa dada
- Seleccionar el paradigma de programación así como el lenguaje adecuado a una especificación de programa dada
Esta competencia es compartida por gran parte de las asignaturas de Programación de la titulación, en ésta en concreto se hará especial hincapié en revisar el paradigma Declarativo y en las introducción de los Patrones de Diseño como herramientas de desarrollo software del Ingeniero.
La competencia ECR14.3 se centra en guiar al alumno en la comprensión y aplicación de los principios fundamentales y técnicas básicas de la programación de tiempo real. Los resultados de aprendizaje que cubre esta competencia son:
- Conocer los objetivos de la programación en tiempo real
- Conocer y aplicar las técnicas básicas (estáticas y dinámicas) de planificación de tareas:
- RM, DM, ESDF.
- Conocer y aplicar las técnicas de análisis de viabilidad de un conjunto de tareas
- Conocer y aplicar los mecanismos de sincronización de tareas : semáforos con techo de prioridad
- Conocer el concepto de tiempo real blando y calidad del servicio
- Desarrollar una aplicación simple empleando el paradigma OO que cumpla con una especificación dada con restricciones de tiempo real
En concreto esta asignatura tratará de extender el paradigma OO en los conceptos de programación orientada a eventos y la introducción de restricciones temporales en su programación
Contenidos teóricos:
T1. El paradigma declarativo.
T2. El diseño orientado a patrones.
T3. El paradigma orientado a eventos.
T4. El paradigma de tiempo real.
Contenidos prácticos:
P1. Ejercicios con el paradigma declarativo.
P2. Ejercicios con patrones de diseño.
P3. Ejercicios con el paradigma orientado a eventos.
P4. Ejercicios con paradigma de tiempo real.
El modelo que se propone para la organización de la actividad docente de la asignatura y del trabajo personal de los estudiantes se resume en las tablas siguientes. Se incluyen los porcentajes correspondientes estimados en función del número total de créditos europeos de la asignatura:
TRABAJO PRESENCIAL | TRABAJO NO PRESENCIAL | ||||||||
Temas | A | B | C | D | E | F | T | G | T |
T1 | 24,5 | 11 | 0,5 | 1 | 12,5 | 12 | 12 | ||
T2 | 25,5 | 6 | 0,5 | 1 | 7,5 | 18 | 18 | ||
T3 | 20,5 | 7 | 0,5 | 1 | 8,5 | 12 | 12 | ||
T4 | 2,5 | 1 | 0,5 | 1,5 | 1 | 1 | |||
P1 | 26 | 1 | 10 | 11 | 15 | 15 | |||
P2 | 24 | 3 | 1 | 0 | 4 | 20 | 20 | ||
P3 | 26 | 4 | 10 | 14 | 12 | 12 | |||
P4 | 1 | 1 | 0 | 1 | 0 | 0 | |||
Total | 150 | 28 | 7 | 20 | 2 | 3 | 60 | 90 | 90 |
A. Horas totales | D. Prácticas de laboratorio | G. Trabajo autónomo |
MODALIDADES | Horas | % | Totales | |
Presencial | Clases Expositivas | 28 | 18,67 | 60 (40%) |
Práctica de aula | 7 | 4,67 | ||
Prácticas de laboratorio | 20 | 13,33 | ||
Prácticas clínicas hospitalarias | ||||
Tutorías grupales | 2 | 1,33 | ||
Prácticas Externas | ||||
Sesiones de evaluación | 3 | 2,00 | ||
No presencial | Trabajo en Grupo | 90 (60%) | ||
Trabajo Individual | 90 | 60,00 |
La asignatura tendrá dos bloques: teoría y prácticas, que se evaluarán por separado según se indica a continuación.
Convocatoria ordinaria
En la convocatoria ordinaria se evaluarán de forma presencial e individual los bloques de teoría y prácticas que se indica en la tabla siguiente:
Bloques | ||
Contenidos | Teoría | Prácticas |
El paradigma declarativo. | BT1 | BP1 |
El diseño orientado a patrones. | B2 | |
El paradigma orientado a eventos. El paradigma de tiempo real. | BT3* | BP3* |
* La evaluación del último bloque se realizará directamente el día del examen final en el periodo reservado para esta convocatoria. |
Las horas totales de estudio planificadas para los bloques indicados es, aproximadamente, un tercio del tiempo que el estudiante ha de dedicar a la asignatura; es decir, unas 50h por bloque. Por tanto, la calificación final se obtendrá aplicando las siguientes fórmulas:
B1 = (BT1 * 0'3 + BP1 * 0'7)
B3 = (BT3 * 0'3 + BP3 * 0'7)
Nota_Global = PROMEDIO( B1, B2, B3 )
siendo necesario superar cada uno de los bloques (B1, B2 y B3) de forma independiente. En el caso de suspenso la calificación final será el resultado de:
Mínimo(4'0, Nota_Global)
Convocatorias extraordinarias
En las convocatorias extraordinarias se realizará una evaluación equivalente a la realizada en la convocatoria ordinaria, pero se llevará a cabo en un único control, tanto para el bloque de teoría como para el bloque de prácticas.
Evaluación diferenciada
La evaluación de los estudiantes a los que se les haya concedido el régimen de evaluación diferenciada se efectuará mediante el procedimiento ya indicado para las convocatorias extraordinarias.
- Programación Declarativa:
- How to Design Programs, An Introduction to Computing and Programming, Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi, MIT Press, 2003. http://www.htdp.org/
- Oliver Sturm. Functional Programming in C#: Classic Programming Techniques for Modern Projects. Wiley. 2011.
- Prolog Programming in Depth. Covington Nute & Vellino. Prentice Hall, 1997
- Programación basada en eventos:
- Event-Driven Programming. Frederic P Miller, Agnes F Vandome, John McBrewster. VDM . Publishing House Ltd., 2009.
- Iniciación a la programación utilizando lenguajes visuales orientados a eventos. Adolfo Lozano Tello. Ed.Bellisco Ediciones Técnicas y Científicas, 2001.
- Patrones de Diseño:
- Patrones de diseño "Elementos de sofware orientado a objetos reutilizable". Gamma, Erich Helm, Richard ; Johnson, Ralph E. Addison Wesley Publishers, 2002.
- Programación en Tiempo Real:
- Alan Burns & Andy Wellings. Real-Time Systems and Programming Languages. 4th ed. Addison-Wesley, 2009. ISBN 978-0-321-41745-9.