ECTS credits ECTS credits: 6
ECTS Hours Rules/Memories Student's work ECTS: 99 Hours of tutorials: 3 Expository Class: 24 Interactive Classroom: 24 Total: 150
Use languages Spanish, Galician
Type: Ordinary Degree Subject RD 1393/2007 - 822/2021
Center Higher Polytechnic Engineering School
Call: Second Semester
Teaching: Sin docencia (Extinguida)
Enrolment: No Matriculable
Abordar el análisis y diseño de aplicaciones distribuidas, integradas tanto en los distintos subsistemas de un robot como en un sistema multirobot, y en los que necesariamente habrá programas dialogando entre sí para obtener un resultado dado.
Conocer los diferentes paradigmas de computación distribuida así como las soluciones middleware más usadas en la actualidad para el desarrollo de este tipo de aplicaciones: distintas soluciones de comunicación entre procesos (IPC) los paradigmas cliente-servidor, las llamadas a procedimientos remotos, el paradigma de objetos distribuidos en sus distintas implementaciones, las arquitecturas orientadas a mensajes, y las arquitecturas basadas en pares (P2P) y en agentes, haciendo especial énfasis, en este último caso, en el lenguaje de comunicación y los protocolos de interacción entre los mismos.
Capacidad para diseñar desde el punto de vista software sistemas multirobot. Conocer y saber aplicar control centralizado y distribuido en sistemas robóticos.
Saber especificar y analizar la planificación y coordinación de sistemas multirobot.
Los contenidos generales indicados en la memoria del grado son: Paradigmas de la computación distribuida. Comunicación entre procesos (IPC). El modelo de paso de mensajes. Modelo cliente/servidor. Aplicaciones colaborativas. Objetos distribuidos. Arquitecturas basadas en pares. Arquitecturas orientadas a mensajes. Robótica de enjambre y sistemas multiagente. Control centralizado y distribuido.
Estos contenidos se estructurarán en el siguiente programa de la materia:
Contenido Teórico
1. Introducción a la computación distribuida y los sistemas multirrobot.
2. Introducción a la programación concurrente y distribuida
3. Programación multiproceso y multi-hilo
4. Comunicación entre procesos (IPC) y comunicación por red a través de sockets
5. Modelo de paso de mensajes, arquitecturas orientadas a mensajes y MPI
7. Modelo cliente-servidor
8. Problemas y Paradigmas de la computación distribuida.
9. Aplicaciones colaborativas.
10. Objetos distribuidos.
11. Arquitecturas basadas en pares.
12. Introducción a la robótica de enjambre y sistemas multi-agente.
13. Métodos de diseño en robótica de enjambre
14. Comportamientos en robótica de enjambre
15. Control centralizado y distribuido.
En relación a la temporización, los contenidos teóricos de estos temas se desarrollarán durante las clases expositivas (18 horas presenciales y 27 horas no presenciales). También se desarrollarán varias prácticas durante las clases interactivas:
1- Comunicación entre procesos en Linux
2- Programación multi-proceso
3- Programación multi-hilo
4- Resolución de problemas en programación concurrente
5- Programación distribuida en red
6- Programación distribuida con paso de mensajes
7- Sincronización y causalidad en sistemas distribuidos
8- Paradigma de programación cliente/servidor
9- Comportamientos simples en robótica de enjambre
10- Comportamientos avanzados en robótica de enjambre
Bibliografía básica:
- G. Coulouris, J. Dollimore, T. Kindberg, G. Blair, Distributed Systems: Concepts and Design, 5th edition, Addison-Wesley, 2012.
Bibliografía complementaria:
- F. Buschmann, K. Henney, D. C. Schmidt, Pattern-Oriented Software Architecture: A Pattern Language for Distributed Computing, Volume 4, John Wiley & Sons, 2007.
- M. Mesbahi, M. Egerstedt, Graph Theoretic Methods in Multiagent Networks, Princeton University Press, 2010.
Básicas:
- CB2: Que los estudiantes sepan aplicar sus conocimientos a su trabajo o vocación de una forma profesional y posean las competencias que suelen demostrarse por medio de la elaboración y defensa de argumentos y la resolución de problemas dentro de su área de estudio.
- CB3: Que los estudiantes tengan la capacidad de reunirse e interpretar datos relevantes (normalmente dentro de su área de estudio) para emitir juicios que incluyan una reflexión sobre temas relevantes de índole social, científica o ética.
- CB5: Que los estudiantes hayan desarrollado aquellas habilidades de aprendizaje necesarias para emprender estudios posteriores con un alto grado de autonomía.
Generales:
- CG01: 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.
- CG02: Capacidad de resolución de problemas en el campo de la ingeniería robótica con creatividad, iniciativa, metodología y razonamiento crítico.
- CG04: Saber las necesidades tecnológicas de la sociedad y la industria, y ser capaz de mejorar servicios y procesos de producción aplicando tecnología actual de robótica, mediante la elección, adquisición y puesta en marcha de sistemas robóticos en diferentes aplicaciones, tanto industriales como de servicios.
- CG06: Concebir, calcular, diseñar y poner en marcha algoritmos, equipos o instalaciones en el ámbito de la robótica, para aplicaciones industriales o de servicios, teniendo en cuenta aspectos de calidad, seguridad, criterios medioambientales, uso racional y eficiente de recursos.
- CG07: Capacidad de trabajar en un grupo multidisciplinar y de comunicar, tanto por escrito como de forma oral, conocimientos, procedimientos, resultados e ideas relacionadas con la robótica y la electrónica.
Específicas:
- CE04: Conocer, saber utilizar e integrar los sistemas operativos y sistemas empotrados, así como sus características de multitarea o comunicación entre aplicaciones.
- CE17: Conocimiento de las características, funcionalidades y estructura de los Sistemas Operativos.
- CE20: Ser capaz de establecer sistemas robóticos cooperativos y multirobot aplicando las técnicas adecuadas.
- CE22: Capacidad de diseñar, construir robots y programar robots móviles.
Transversales:
- CT1: Capacidad de análisis y síntesis.
- CT2: Capacidad para el razonamiento y la argumentación.
- CT3: Capacidad de trabajo individual, con actitud autocrítica.
- CT4: Capacidad para trabajar en grupo y abarcar situaciones problemáticas de forma colectiva.
- CT5: Capacidad para obtener información adecuada, diversa y actualizada.
- CT6: Capacidad para elaborar y presentar un texto organizado y comprensible.
- CT8: Compromiso de veracidad de la información que ofrece a los demás.
- CT9: Habilidad en el manejo de tecnologías de la información y de la comunicación (TIC).
- CT10: Utilización de información bibliográfica y de Internet.
- CT11: Utilización de información en lengua extranjera.
- CT12: Capacidad para resolver problemas mediante la aplicación integrada de sus conocimientos.
Los contenidos de la materia se impartirán tanto en clases expositivas de teoría como en clases interactivas de prácticas. Ambos tipos de clases se irán alternando a lo largo del semestre, de tal modo que las prácticas afianzarán los conceptos mostrados en teoría.
Las clases de teoría expositivas se desarrollarán en el aula por parte del profesorado, apoyado por medios electrónicos (presentaciones electrónicas, vídeos, documentos técnicos complementarios...) disponibles en el Campus Virtual de la USC. Dichas clases seguirán los contenidos pormenorizados de la asignatura que aparezcan reflejados en la programación docente anual. Las presentaciones magistrales del profesor se combinarán con la propuesta de ejercicios específicos para afianzar los conceptos presentados. Estos ejercicios serán resueltos por los alumnos (en clase o en casa) para después ser corregidos en clase de una manera participativa.
La docencia de las prácticas, realizadas en grupos reducidos de 20 alumnos y de carácter interactivo, serán actividades complementarias a las clases teóricas expositivas. Serán desarrolladas en laboratorios de robótica con robots reales y en clases de informática bajo la supervisión del profesorado. Los alumnos seguirán de manera autónoma los guiones de las prácticas específicas disponibles en el Campus Virtual de la USC. Estas actividades no sólo permitirán al alumnado la comprensión de los conceptos teóricos mediante su puesta en práctica sino que también les permitirán la adquisición de habilidades necesarias para aplicar algoritmos de aprendizaje automático en su futuro profesional.
Asimismo, en las tutorías se atenderá al alumnado para discutir, comentar, aclarar o resolver cuestiones concretas en relación con sus tareas dentro de la asignatura (recopilación de información, preparación de pruebas de evaluación, prácticas, trabajos...). Estas tutorías serán tanto presenciales como virtuales a través de correo electrónico, campus virtual o la plataforma Microsoft Teams.
La evaluación se llevará a cabo de dos formas: (1) Evaluación continua a través de la posible valoración de prácticas en el laboratorio. Se podrá proponer la posible realización de trabajos voluntarios que fomenten la creatividad del alumno, motivación, etc., y que permitan que profundicen en algunos de los contenidos de la materia, o exploren alternativas no cubiertas directamente en los contenidos impartidos por el profesor. (2) Por otra parte, habrá un trabajo final que representará el 60% del total de la asignatura, mientras que el 40% restante lo representan las pruebas (las prácticas entregables mencionadas en el punto 1, trabajos, cuestionarios, etc.) que se propongan en el aula.
Debido a este tipo de evaluación continua, la asistencia a prácticas será obligatoria salvo causa justificada.
El alumno recibirá la calificación de "non presentado" cuando no complete el 80% de los trabajos prácticos o si no entrega el informe del trabajo final.
Para los casos de realización fraudulenta de ejercicios o pruebas será de aplicación lo establecido en la “Normativa de avaliación do rendemento académico dos estudantes e de revisión das cualificacións”.
La asistencia tanto a las clases teóricas como prácticas será obligatoria. Para aquellos alumnos que tengan dispensa, el sistema de evaluación será el mismo no tendrán obligación de asistir a las clases teóricas, pero se mantiene la obligación de asistencia a las prácticas de laboratorio.
Evaluación de segunda oportunidad: Los alumnos podrán entregar aquellas actividades que le plantee el profesor, correspondientes a aquellas que no hubiesen superado en la convocatoria anterior. Podrá haber una defensa de trabajos con el profesor. Por otra parte, habrá un trabajo de segunda oportunidad, en consonancia con lo que sucede en la primera oportunidad y cuyo peso en la calificación final es el mismo que en la primera oportunidad.
Las competencias propias de la asignatura así como las competencias generales tienen contenidos específicos en la materia que se introducen, como se ha indicado, tanto en las clases expositivas como en las interactivas. Posteriormente el alumnado desarrollará estas competencias en el trabajo final y con la realización de los trabajos prácticos en los que también trabajará las competencias básicas y transversales en especial en lo que se refiere a la elaboración y defensa de argumentos y la resolución de problemas (CB2), la emisión de juicios razonados (CB3), el desarrollo de habilidades de aprendizaje (CB5), la capacidad de análisis y síntesis (CT1), Capacidad para el razonamiento y la argumentación (CT2), capacidad de trabajo individual, con actitud autocrítica (CT3), capacidad para trabajar en grupo y abarcar situaciones problemáticas de forma colectiva (CT4) y capacidad para resolver problemas mediante la aplicación integrada de sus conocimientos (CT12).
Las competencias específicas serán objeto de evaluación tanto en los trabajos prácticos que el alumno desarrolle durante la materia como en el trabajo final.
No se considerarán ni conservarán ninguna de las notas obtenidas por alumnos repetidores en el año anterior, es decir, los alumnos que repitan la asignatura deberán superarla bajo las condiciones mencionadas en el apartado de primera oportunidad.
La materia tiene una carga de trabajo de 6 ECTS dividida de la siguiente forma:
- 1. Trabajo en el aula (60 horas presenciales)
- 1.1. Clases expositivas teóricas (en grupo grande): 18 horas
- 1.2. Prácticas (con pequeños grupos): 30 horas
- 1.3. Tutorías de grupo: 3 horas
- 1.4. Tutorías individualizadas: 4 horas
- 1.5. Actividades de evaluación: 5 horas
- 2. Trabajo personal del alumnado (90 horas no presenciales)
- 2.1. Lectura, revisión de temas y ejercicios de teoría: 20 horas
- 2.2. Preparación de ejercicios e informes de prácticas: 52 horas
- 2.3. Preparación de tutorías de grupo: 3 horas
- 2.4. Preparación de tutorías individualizadas: 8 horas
- 2.5. Preparación de pruebas de evaluación: 7 horas
Debido a la alta correlación existente entre los conceptos desarrollados en las clases de teoría y los contenidos de las prácticas, se recomienda a los alumnos constancia en el estudio de la materia, acudiendo a las sesiones de prácticas con los conceptos teóricos revisados y los ejercicios resueltos. La realización de las prácticas ayudará al afianzamiento de los conceptos teóricos y a su utilización en situaciones reales.