ECTS credits ECTS credits: 6
ECTS Hours Rules/Memories Hours of tutorials: 3 Expository Class: 24 Interactive Classroom: 24 Total: 51
Use languages Spanish, Galician
Type: Ordinary Degree Subject RD 1393/2007 - 822/2021
Departments: Electronics and Computing
Areas: Computer Science and Artificial Intelligence
Center Higher Polytechnic Engineering School
Call: Second Semester
Teaching: With teaching
Enrolment: Enrollable
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.
El alumno que supere la materia con éxito será capaz de:
Conocimiento:
- Con55. Saber elegir para el desarrollo de aplicaciones distribuidas la aproximación más adecuada entre los
diferentes paradigmas de computación distribuida y soluciones middleware actuales.
- Con56. Explicar y analizar la planificación y coordinación de sistemas multirrobot.
Destrezas:
- H/D60. Analizar y diseñar aplicaciones distribuidas, tanto en los distintos subsistemas de un robot como en un sistema multirrobot, y en los que habrá programas dialogando entre sí para obtener un resultado dado.
- H/D61. Diseñar desde el punto de vista software sistemas multirrobot.
- H/D62. Aplicar control centralizado y distribuido en sistemas robóticos.
Competencias:
- Comp20. Ser capaz de establecer sistemas robóticos cooperativos y multirrobot aplicando las técnicas adecuadas.
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á competencias básicas y transversales.
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.
Ignacio Raño Noal
Coordinador/a- Department
- Electronics and Computing
- Area
- Computer Science and Artificial Intelligence
- ignacio.rano [at] usc.es
- Category
- Professor: Temporary PhD professor