Curso Académico:
2022/23
30212 - Programación de sistemas concurrentes y distribuidos
Información del Plan Docente
Año académico:
2022/23
Asignatura:
30212 - Programación de sistemas concurrentes y distribuidos
Centro académico:
110 - Escuela de Ingeniería y Arquitectura
326 - Escuela Universitaria Politécnica de Teruel
Titulación:
439 - Graduado en Ingeniería Informática
443 - Graduado en Ingeniería Informática
Créditos:
6.0
Curso:
2
Periodo de impartición:
Primer semestre
Clase de asignatura:
Obligatoria
Materia:
---
1.1. Objetivos de la asignatura
La asignatura y sus resultados previstos responden a los siguientes planteamientos y objetivos:
En esta asignatura el alumno aprenderá a enfrentarse al diseño de programas en los que un conjunto de procesos deben sincronizarse, ya sea mediante mecanismos de memoria compartida como a través de redes de comunicaciones, llegando a poder razonar sobre la corrección de la solución propuesta.
Estos planteamientos y objetivos están alineados con los siguientes Objetivos de Desarrollo Sostenible (ODS) de la Agenda 2030 de Naciones Unidas (https://www.un.org/sustainabledevelopment/es/), de tal manera que la adquisición de los resultados de aprendizaje de la asignatura proporciona capacitación y competencia para contribuir en cierta medida a su logro: Objetivo 7: Energía asequible y no contaminante (Meta 7.3 De aquí a 2030, duplicar la tasa mundial de mejora de la eficiencia energética); Objetivo 9: Industria, innovación e infraestructuras (Meta 9.5 Aumentar a investigación científica y mejorar la capacidad tecnológica de los sectores industriales de todos los países, en particular los países en desarrollo, entre tras cosas fomentando la innovación y aumentando considerablemente, de aquí a 2030, el número de personas que trabajan en investigación y desarrollo por millón e habitantes y los gastos de los sectores público y privado en investigación y desarrollo).
1.2. Contexto y sentido de la asignatura en la titulación
Esta asignatura, junto con las de programación del primer año y la asignatura de Teoría de la Computación son la plataforma sobre la que se va a asentar todo el desarrollo de las asignaturas posteriores que trabajen en el desarrollo de sistemas. Actualmente es difícil encontrar una aplicación "software" que no incluya características propias de sistemas concurrentes, distribuidos y de tiempo real.
1.3. Recomendaciones para cursar la asignatura
La asignatura es la continuación natural de las asignaturas de programación presentadas en el primer año de estudios, Programación I y Programación II. Es necesario que el alumno haya adquirido soltura en el desarrollo de programas secuenciales correctos. Es también recomendable que se encuentre cursando las asignaturas de Sistemas Operativos y Teoría de la Computación, ya que comparten algunos temas clave.
2. Competencias y resultados de aprendizaje
2.1. Competencias
Al superar la asignatura, el estudiante será más competente para...
Contribuye a que el estudiante adquiera las siguientes competencias generales comunes a la rama de informática:
- Conocer y aplicar los procedimientos algorítmicos básicos de las tecnologías informáticas para diseñar soluciones a problemas, analizando la idoneidad y complejidad de los algoritmos propuestos.
- Conocer y aplicar las características, funcionalidades y estructura de los Sistemas Distribuidos, las Redes de Computadores e Internet y diseñar e implementar aplicaciones basadas en ellas.
- Conocer y aplicar los principios fundamentales y técnicas básicas de la programación paralela, concurrente, distribuida y de tiempo real.
- Conocer y aplicar los principios, metodologías y ciclos de vida de la ingeniería de software.
Adicionalmente, contribuye a adquirir las siguientes competencias generales/transversales:
- Capacidad para resolver problemas y tomar decisiones con iniciativa, creatividad y razonamiento crítico.
- Capacidad para usar las técnicas, habilidades y herramientas de la Ingeniería necesarias para la práctica de la misma.
- Capacidad para aprender de forma continuada y desarrollar estrategias de aprendizaje autónomo.
- Capacidad para aplicar las tecnologías de la información y las comunicaciones en la Ingeniería.
2.2. Resultados de aprendizaje
El estudiante, para superar esta asignatura, deberá demostrar los siguientes resultados...
El estudiante terminará con un conocimiento profundo de cuáles son las características específicas de los sistemas concurrentes y distribuidos.
Conocerá los problemas generados por el acceso concurrente a datos y recursos, así como las soluciones conceptuales y tecnológicas que se han dado a los mismos.
Conocerá las características de los sistemas distribuidos, los retos que plantea y las soluciones que se han planteado para los mismos.
Tendrá nociones de qué son los sistemas tiempo real, y sistemas basados en eventos.
Conocerá herramientas para el diseño y programación de programas con características concurrentes y/o distribuidas.
2.3. Importancia de los resultados de aprendizaje
En la época en que nos encontramos, todo ingeniero informático debe ser capaz de diseñar sistemas concurrentes y distribuidos. Debe también entender cuáles son las características importantes a considerar en sistemas en que el tiempo real es un requisito. Una base sólida en estos aspectos es imprescindible para poder desenvolverse en el mundo profesional.
3.1. Tipo de pruebas y su valor sobre la nota final y criterios de evaluación para cada prueba
El estudiante deberá demostrar que ha alcanzado los resultados de aprendizaje previstos mediante una prueba global de evaluación compuesta de dos partes:
En la Escuela de Ingeniería y Arquitectura de Zaragoza:
- Prácticas de laboratorio (30%): Se evaluarán las soluciones propuestas a los ejercicios planteados considerando el diseño, la programación y la corrección de las mismas.
- Prueba teórico-práctica (70%): En esta prueba se plantearán cuestiones y/o problemas relacionados con el programa impartido en la asignatura. En general, se valorará la calidad y claridad de las respuestas, así como las estrategias de solución planteadas por los alumnos.
La evaluación de la asignatura en la segunda convocatoria constará de dos pruebas:
- Prueba escrita teórico-práctica (70%), de características similares a la de la primera convocatoria
- Prácticas de laboratorio (30%), en la que se evaluarán las soluciones propuestas a ejercicios similares a los planteados durante las sesiones prácticas del curso.
En ambas convocatorias, la calificación final de la asignatura se obtendrá como la media ponderada de las dos partes, teniendo en cuenta que es necesario llegar a obtener, al menos, 5.0 puntos sobre 10.0 en cada una de partes. En caso de no alcanzar ese mínimo en alguna de las partes, la calificación global de la asignatura será la mínima entre 4.0 y el resultado de ponderar con los porcentajes de cada parte.
En la Escuela Universitaria Politécnica de Teruel:
La nota final de la asignatura en la convocatoria ordinaria se divide de la siguiente forma:
- Trabajo en grupo. 20% de la nota final. Consistirá en proponer un problema de programación concurrente, resolverlo y exponerlo. En el examen final habrá una parte de recuperación de esta actividad.
- Prácticas. 30% de la nota final. Habrá varias prácticas entregables a lo largo del curso, referidas a distintos temas del mismo. En el examen final habrá una parte de recuperación de esta actividad.
- Teoría y ejercicios. 50% de la nota final. Evaluable en el examen final, que constará de cuestiones y/o problemas relacionados con el programa impartido en la asignatura.
La calificación final de la asignatura se obtendrá como la media ponderada de las tres partes, teniendo en cuenta que es necesario llegar a obtener, al menos, 4 puntos sobre 10 en las prácticas y 4 puntos sobre 10 en la prueba escrita. En caso de no alcanzar ese mínimo en alguna de esas partes, la calificación global de la asignatura será la mínima entre 4.0 y el resultado de ponderar con los porcentajes de cada parte.
En cuanto a la segunda convocatoria, la nota final será la nota del examen extraordinario, teniendo en cuenta que ese examen tendrá una parte de prácticas que valdrá el 30% de la nota total. Aquellos que hubieran aprobado la parte de prácticas en la convocatoria ordinaria mantendrán la nota y no tendrán que hacer dicha parte de prácticas en el examen extraordinario. En la convocatoria extraordinaria, la nota del trabajo no se mantiene.
4. Metodología, actividades de aprendizaje, programa y recursos
4.1. Presentación metodológica general
El proceso de aprendizaje que se ha diseñado para esta asignatura se basa en lo siguiente:
- La presentación de los contenidos de la asignatura en clases magistrales por parte de los profesores.
- La resolución de problemas planteados en clase.
- El estudio personal de la asignatura por parte de los alumnos.
- El desarrollo de prácticas por parte de los alumnos, guiadas por los profesores, que desarrollan los conocimientos teóricos.
- La resolución de problemas sencillos de dificultad creciente propuestos por los profesores.
Se debe tener en cuenta que la asignatura tiene una orientación tanto teórica como práctica. Por ello, el proceso de aprendizaje pone énfasis tanto en la asistencia del alumno a las clases magistrales como en la realización de prácticas en laboratorio, en la resolución de problemas sencillos de dificultad creciente, y en el estudio individualizado.
4.2. Actividades de aprendizaje
El programa que se ofrece al estudiante para ayudarle a lograr los resultados previstos comprende las siguientes actividades:
Las actividades se organizarán en base a sesiones teórico-prácticas, resolución de problemas (con y sin tutela del profesor), prácticas de laboratorio y actividades de evaluación.
Por tipos de actividad, la dedicación del alumno se organiza en torno a:
En la Escuela de Ingeniería y Arquitectura (Zaragoza):
- 45 horas de actividades teórico-prácticas, de las que 15 corresponden a sesiones de problemas.
- 15 horas de sesiones de laboratorio.
- 85 horas de trabajo y estudio individual efectivo (estudio de textos, resolución de problemas, preparación de clases y prácticas, desarrollo de programas, etc.).
- 5 horas dedicadas a distintas pruebas de evaluación.
En la Escuela Universitaria Politécnica (Teruel):
- 45 horas de actividades teórico-prácticas, de las que 15 corresponden a sesiones de problemas.
- 15 horas de sesiones de laboratorio.
- 24 horas de trabajo en grupo.
- 60 horas de trabajo y estudio individual efectivo (estudio de textos, resolución de problemas, preparación de clases y prácticas, desarrollo de programas, etc.).
- 6 horas dedicadas a distintas pruebas de evaluación.
4.3. Programa
El programa de la asignatura consta de los siguientes temas (entre paréntesis se especifica el número aproximado de horas de trabajo teórico-práctico y en la solución de problemas):
- Introducción a la programación concurrente (4h aprox.)
- Modelado y análisis de sistemas concurrentes (6h aprox.)
- El problema de la sección crítica (5h aprox.)
- Semáforos (8h aprox.)
- Monitores (6h aprox.)
- Introducción a la programación distribuida (3h aprox.)
- Coordinación basada en espacios de tuplas (3h aprox.)
- Algoritmos distribuidos (7h aprox.)
- Introducción a los sistemas de tiempo real (1.5h aprox.)
- Introducción a los sistemas dirigidos por eventos (1.5h aprox.)
También se realizarán las siguientes prácticas:
- La programación concurrente. Threads y datos compartidos. Problemas generados por la compartición de datos y recursos (2h)
- Solución al problema de la sección crítica (2h)
- Programación con semáforos (3h)
- Programación con monitores (3h)
- Programación de sistemas distribuidos (5h)
4.4. Planificación de las actividades de aprendizaje y calendario de fechas clave
El calendario de la asignatura estará definido por el centro en base al calendario académico del curso correspondiente.
El calendario de clases, prácticas y exámenes, así como las fechas de entrega de trabajos de evaluación, se anunciarán con suficiente antelación.