Oferta proyectos fin de grado del Departamento
Sistemas de Comunicación y Control
Oferta de proyectos de fin de grado del Departamento
Descripción:
En este proyecto se propone el desarrollo de diversas aplicaciones pertenecientes a diferentes ámbitos de la Informática (tales como Sistemas operativos, Bases de datos, Redes de computadores, Desarrollo de aplicaciones en entornos Web, etc.).
El objetivo general se centra en que el alumno, a partir de conocimientos adquiridos a lo largo de la titulación que ha cursado, sea capaz de desarrollar un producto específico de interés práctico. Teniendo en cuenta el número de créditos asignado a este proyecto, las aplicaciones se desarrollarán teniendo como objetivo el ámbito académico o docente, ya que aplicaciones industriales quedan fuera del alcance, salvo interés e iniciativa personal del alumno.
Ente otros, se propone la realización de aplicaciones, simuladores, etc. con los cuales el usuario pueda crear e interactuar con las estructuras y protocolos utilizados en los ámbitos arriba mencionados, de manera que le permitan una clara visión de las relaciones existentes entre ellos y su funcionamiento.
Observaciones:
Proyecto general del Departamento
Profesor de contacto:
Profesores del Departamento de Sistemas de Comunicación y Control
Descripción:
En el presente proyecto se trata de diseñar un sistema domótico dentro de la corriente tecnológica IoT, que monitorice, automatice y controle una serie de dispositivos para el hogar atendiendo a usa serie de características y restricciones (confort, consumo, seguridad…) las cuales han de manejarse en tiempo real.
Para el desarrollo del proyecto el estudiante deberá utilizar tecnologías como Node-Red, protocolo y dispositivos domóticos compatibles con MQTT. Posible integración con Home Assistant. Python y biblioteca API-REST flask , …
Material:
El estudiante tiene que disponer de ordenador personal para la realización del proyecto, además de una SBC Raspberry Pi. También sería valorable que pudiera adquirir sensores domóticos que necesite para el proyecto. Una vez acordada la dirección, se estudiaría las posibilidades de adquisición de material.
Observaciones:
El estudiante debe tener un buen nivel de inglés para la lectura y comprensión de textos técnicos en esa lengua. Valorable experiencia trabajando con Raspberry Pi y/o en entornos domóticos.
Cupo de estudiantes: 1
Profesores de contacto:
Descripción:
En este proyecto proponemos el desarrollo de un sistema distribuido con arquitectura cliente-servidor que se ejecutará en una plataforma x86-AMD64 en la parte servidor y en Android en la parte cliente.
Para la parte servidor se utilizará lenguaje Python (https://www.python.org/) y la biblioteca de API REST para Python Flask (https://flask-restful.readthedocs.io/en/latest/). Para la parte cliente, se desarrollarán las aplicaciones utilizando Kotlin (https://kotlinlang.org/). Aunque dependiendo del caso, también se podría utilizar este lenguaje para la parte servidor.
El aplicativo concreto a desarrollar y su funcionalidad se determinará con el director/tutor del trabajo. (P. ej. puede ser un juego distribuido como el ahorcado o algún desarrollo que sea de interés del estudiante.)
Material:
El estudiante debe disponer de un ordenador personal para la realización del proyecto y la ejecución de la parte servidor. Además, debe disponer para la parte cliente de uno o más dispositivos Android: Teléfono móvil, tableta, Raspberry PI (con Android como sistema operativo), etc.
Observaciones:
El estudiante debe tener un buen nivel de inglés para la lectura y compresión de textos técnicos en esa lengua.
Cupo de estudiantes: 1
Profesores de contacto:
Descripción:
En este Proyecto se va a desarrollar un entorno de prácticas de SQL que pueda ser utilizado por los alumnos de la asignatura de Bases de Datos del segundo curso de esta titulación.
En el proyecto habrá que proponer un esquema de una base de datos relacional con varias tablas sobre la que se le van a proponer a los alumnos una seríe de ejercicios a realizar como actualizaciones, consultas, etc. empleando comandos SQL. El entorno de prácticas tendrá ejecutar los comandos SQL escritos por el alumno y valorar si el resultado obtenido es el esperado en el ejercicio propuesto.
Como referencia de proyecto que se desea realizar se pueden consultar los siguientes enlaces:
- La sección «Tutorial Activities» en Database eLearning donde se le proponen al usuario ejercicios sobre una base de datos relacional y se le valoran los resultados obtenidos.
- Los ejercicios propuestos en SQL Tutorial de W3schools.com. En este tutorial hay ejemplos («Try it Yourself») que el usuario puede probar y hacer modificaciones, comprobando el resultado de sus cambios de forma inmediata.
Metodología:
- Recopilación de información de estado del arte
- Desarrollo de una aplicación web
- Evaluación de prestaciones y realización de mejoras
- Implementación de una máquina virtual en un servidor del Dpto y hacer la aplicación totalmente operativa
Observaciones:
- El alumno deberá tener competencias de lectura de documentación en inglés
- El alumno deberá tener fundamentos de programación de aplicaciones web o alto interés en tenerlas
Cupo de estudiantes: 2
Profesor de contacto:
Descripción:
Los interfaces humano – computador (HCI) consisten en sistemas con capacidad para transmitir información entre un humano hacia un computador. Entre ellos, los interfaces cerebro – computador (BCI) son una de las más conocidas, en la que un dispositivo mide alguna señal física en la cabeza, que después se envía a un ordenador para ser traducida. En concreto, los BCIs basados en electroencefalografía (EEG) se han ido desarrollando cada vez más, ya que son seguros y relativamente más baratos que los BCI basados en otras tecnologías De esta manera, podemos encontrar algunos cascos o kits de bajo costo y disponibles comercialmente desarrollados por compañías como Emotiv, NeuroSky, Muse, y Backyard Brains, entre otras.
Las señales cerebrales adquiridas por estos dispositivos (los datos del EEG) suelen procesarse mediante los siguientes pasos generales: preprocesamiento, extracción de características, selección de características y clasificación. Estos procesos tratan de identificar la intención del usuario para generar los comandos correspondientes, lo que obviamente dependerá de la aplicación final. Estas aplicaciones, se desarrollan generalmente con el objetivo de ayudar a personas discapacitadas en múltiples áreas: comunicación (deletreadores de caracteres, navegadores de Internet…), control del entorno (control de dispositivos domésticos como la televisión, las luces o la temperatura ambiente), locomoción (control de sillas de ruedas, neuroprótesis o robots móviles…), juegos y entretenimiento, etc.
Por otra parte, en la actualidad se está investigando en el reconocimiento automático de emociones y su clasificación. Las emociones expresadas mediante el dialogo o la expresión facial son métodos comunes para clasificar las emociones humanas pero pueden conducir a errores. Por ello, técnicas como EEG constituyen un método bueno y fiable para detectar estados emocionales.
Este proyecto contempla el uso de BCI para el desarrollo de una aplicación concreta a determinar (mando a distancia de un televisor, mando de la puerta de un garaje, …) o bien para ahondar en el estudio de la clasificación de estados emocionales.
Material:
Para llevar a cabo este proyecto el Departamento prestará al estudiante el dispositivo BCI. Es posible que el estudiante deba de disponer de una placa Raspberry Pi modelo 3B o superior.
Requisitos:
El estudiante interesado en la realización de este trabajo deberá tener:
- Alta motivación y disponibilidad para realizar el trabajo.
- Buenos conocimientos de inglés leído.
- Buenos conocimientos de programación, preferiblemente en C/C++ y/o Python.
Se valorará positivamente la posibilidad de desplazarse al laboratorio del Departamento al menos una o dos veces al mes.
Profesores de contacto:
Descripción:
Los datos masivos, también conocidos como Big Data, son datos que cumplen entre otras las siguientes condiciones (conocidas como las 3 Vs): volumen, velocidad, y variedad. Los datos masivos se generan por una gran variedad de fuentes, tales como logs de servidores de internet, publicaciones en redes sociales, … Este proyecto trata sobre el análisis, diseño, implementación, y despliegue de estrategias de programación en el marco del Big Data. Entre las tecnologías que se van a utilizar en este proyecto se pueden encontrar entre otros Hadoop, Spark, Mesos, o Drill.
Para más detalles sobre el trabajo concreto, pónganse en contacto con los profesores responsables de contacto.
Observaciones:
El alumno deberá tener altos conocimientos de inglés leído, así como de programación (ej. Python, Java…).
Cupo de estudiantes: 3
Profesores de contacto:
Descripción:
Las analíticas de aprendizaje (Learning Analytics, LA) consisten en la mejora del desempeño de los estudiantes por medio del estudio de diferentes parámetros y métricas. Este proyecto trata sobre el análisis, diseño, implementación, y despliegue de técnicas de LA en el contexto de la enseñanza a distancia.
Para más detalles sobre el trabajo concreto, pónganse en contacto con los profesores responsables de contacto.
Observaciones:
El alumno deberá tener altos conocimientos de inglés leído, así como de programación (ej. Python, Java…), así como de gestión de información (bases datos relacionales/no relacionales, datos semiestructurados, etc.) y conocimientos básicos de modelos de servicio en el cloud.
Cupo de estudiantes: 2
Profesores de contacto:
Descripción:
El proyecto consiste en el desarrollo de una aplicación web destinada a gestionar un comercio. Dicha aplicación permitirá controlar el stock de productos, clientes, pedidos así como diversos aspectos propios de la actividad comercial. Se valorará una buena motivación, buenos conocimientos de programación en PHP y servicios Web o en su defecto disponibilidad para aprenderlos así como el expediente académico del solicitante.
Material:
Se desarrollará sobre plataforma Linux o Windows.
Observaciones:
- Se requieren conocimientos sobre PHP, Apache, MySQL, XHTML y CSS.
- El número de personas asignadas al proyecto depende de los módulos a desarrollar.
Profesor de contacto:
Descripción:
El proyecto consiste en el desarrollo de un portal web orientado al comercio electrónico. Dicha aplicación permitirá al comprador seleccionar artículos, realizar pedidos y pagos a través de una pasarela. El sistema también ofrecerá al comerciante gestionar los artículos expuestos en el portal. Se valorará una buena motivación, buenos conocimientos de programación en PHP y servicios Web o en su defecto disponibilidad para aprenderlos así como el expediente académico del solicitante.
Conocimientos previos:
Se requieren conocimientos sobre PHP, Apache, MySQL, XHTML y CSS.
Material:
Se desarrollará sobre plataforma Linux o Windows.
Observaciones:
Número máximo de personas: 1
Profesor de contacto:
Descripción:
Uno de los usos más extendidos de las tecnologías de comunicación inalámbrica se encuentra en las distintas modalidades de abonos de transporte y la identificación de ciudadanos en varias ciudades españolas. Sin embargo el nivel de seguridad implementado en cada caso concreto es dispar.
El objetivo de este proyecto consiste en realizar un estudio y clasificación de estas tarjetas en distintas ciudades del Estado en base a sus características de seguridad.
Profesor de contacto:
Descripción:
El principal objetivo de este trabajo el análisis de diversas aproximaciones para el aprendizaje de la ciberseguridad en diversas áreas con el objetivo de mejorar las asignaturas de Seguridad. Para ello se estudiarían herramientas de aprendizaje como son los laboratorios remotos, la gamificación del aprendizaje a través de competiciones de atrapa la bandera (CTF) y juegos serios, así como el aprendizaje basados en casos prácticos o proyectos para desarrollar simuladores, juegos o bien escenarios virtuales que faciliten el aprendizaje de la ciberseguridad.
Metodología:
- Estudio de estrategias de aprendizaje y gamificación orientadas a la ciberseguridad
- Análisis de simuladores, laboratorios virtuales y remotos, así como juegos serios orientados a la ciberseguridad existentes en el mercado
- Desarrollo de la propuesta de experimentos para la ciberseguridad
- Evaluación del resultado
Observaciones:
Aunque no tiene por qué ser obligatorio si se recomienda ciertos conocimientos de lenguajes de programación, así como fundamentos básicos de ciberseguridad
Cupo de estudiantes: 4
Profesores de contacto:
Descripción:
El principal objetivo de este trabajo será la implementación de mecanismos de análisis de malware para llevar a cabo un seguimiento de las infraestructuras físicas de una organización. Para ello, será necesario el análisis de los requerimientos de las infraestructuras de servicios que los alojen.
Metodología:
- Estudio del estado del arte del contexto de trabajo
- Análisis de simuladores y tecnologías más punteras para el acceso a servicios.
- Análisis de los algoritmos de establecimiento de conexiones remotas.
- Evaluación de la eficiencia de los algoritmos de análisis de malware.
- Visualización de la información.
Observaciones:
Cupo de estudiantes: 1
Profesor de contacto:
Descripción:
Las redes LoRaWAN destacan por su bajo consumo de energía y largo alcance de comunicación (del orden de kilómetros en campo abierto). Con una baja tasa de datos, permiten interconectar dispositivos a la Internet de las Cosas sin necesidad de instalaciones complejas; además, el coste de uno de los nodos es simplemente de unos pocos euros.
En este proyecto se desarrollará y evaluará el desempeño de una aplicación concreta que utilice esta tecnología, bien propuesta por el equipo docente o por el propio estudiante.
Material:
Para llevar a cabo este proyecto el Departamento prestará al estudiante los principales componentes necesarios, aunque es posible que éste deba adquirir una placa Raspberry Pi modelo 3B o superior o algún otro componente adicional de bajo costo.
Requisitos:
- El estudiante interesado en la realización de este trabajo deberá tener:
- Alta motivación y disponibilidad para realizar el trabajo.
- Buenos conocimientos de inglés leído.
- Buenos conocimientos de programación, preferiblemente en Python y/o C/C++.
- Deseables algunos conocimientos prácticos de electrónica (montaje de circuitos sencillos en placas de prototipos…), o interés de aprenderlos.
Profesores de contacto:
Descripción:
La virtualización ligera sopone una evolución sobre la virtualización tradicional ya que permite la creación de entidades débilmente acopladas (contenedores) que se ejecutan sobre las mismas infraestructuras físicas con una menor sobrecarga de ejecución. Por esta razón, una gran cantidad de aplicaciones y servicios se encuentran desplegados utilizando contenedores, tanto en entornos educativos como corporativos.
Los datos masivos o Big Data han supuesto un cambio radical en el desarrollo de infraestructuras para su almacenamiento y procesamiento. Estas tecnologías cuentan en este momento con un mercado laboral muy amplio pero que a la vez cuenta con un escaso número de profesionales. Entre las tecnologías Big Data de interés podemos encontrar herramientas de programación paralela distribuida como MapReduce, herramientas para la inyección de datos como Flume o Sqoop, herramientas de programación de alto nivel como Hive o Pig, bases de datos nosql como neo4j, … entre otros.
La formación en tales tecnologías se convierte en una necesidad que las Universidades deben cubrir. Para ello, se propone el diseño de infraestructuras Big Data basadas en contenedores ligeros desplegadas localmente y sobre la nube, que se utilizarán para la enseñanza online de tales tecnologías.
Este trabajo se encuadra dentro del proyecto del FILE (efFIcient scheduLing of containErs), financiado por UNED dentro del programa Independent Thinking-Jóvenes Investigadores 2019.
Resumen de objetivos:
- Análisis de tecnologías Big Data para la docencia online de ingeniería.
- Diseño de infraestructuras Big Data sobre contenedores ligeros para enseñanza online.
- Despliegue de dichas infraestructuras en modo local y en la nube.
- Generación de documentación sobre instalación y utilización de dichas infraestructuras.
- Evaluación de las infraestructuras.
Tecnologías potencialmente utilizables:
- Tecnologías Big Data: MapReduce, Hive, Pig, Avro, Parquet, Flume, Sqoop, Neo4j, Mongodb, Cassandra, Redis, …
- Virtualización ligera: Dockers.
- Orquestación de microservicios: Kubernetes.
- Infraestructuras: Cloud computing.
- Lenguaje de programación: Python.
Carácter:
Práctico
Bibliografía:
- Learn Docker – Fundamentals of Docker 18.x (2018).Accesible a través del siguiente enlace (una vez logado en Campus UNED).
- Mastering Kubernetes (2018). Accesible a través del siguiente enlace (una vez logado en Campus UNED).
Profesor de contacto:
Descripción:
Los servicios de streaming de vídeo han alcanzado gran popularidad en los últimos años. En estos servicios, los clientes reciben una secuencia de vídeo que se transfiere por la red desde el servidor hasta ellos para su visionado. Existen una variedad de tecnologías para el despliegue de servidores de streaming de vídeo, como por ejemplo Open Broadcast Studio (OBS) o VideoLAN Server (VLS).
Debido a esta popularidad, las Universidades deben proporcionar a sus estudiantes conocimientos prácticos sobre este tipo de servidores, de forma que adquieran las capacidades necesarias para cubrir dicha demanda de profesionales.
Para el despliegue de tales servicios, se propone la utilización de contenedores ligeros sobre infraestructuras tanto locales como en la nube. La virtualización ligera sopone una evolución sobre la virtualización tradicional ya que permite la creación de entidades débilmente acopladas (contenedores) que se ejecutan sobre las mismas infraestructuras físicas con una menor sobrecarga de ejecución. Por esta razón, una gran cantidad de aplicaciones y servicios se encuentran desplegados utilizando contenedores, tanto en entornos educativos como corporativos.
En este proyecto se propone el despliegue de diversas tecnologías de servidores de streaming de vídeo sobre contenedores ligeros, y la realización de pruebas de rendimiento para demostrar su correcto funcionamiento.
Este trabajo se encuadra dentro del proyecto del FILE (efFIcient scheduLing of containErs), financiado por UNED dentro del programa Independent Thinking-Jóvenes Investigadores 2019.
Resumen de objetivos:
- Realización de un estado del arte de tecnologías para el streaming de video.
- Despliegue de servidores de streaming de vídeo sobre contenedores ligeros en entornos locales y en la nube.
- Generación de documentación sobre protocolos de streaming, y de despliegue y utilización de los servidores desplegados.
- Análisis de las prestaciones que ofrecen los servidores desplegados.
Tecnologías potencialmente utilizables:
- Servidores de streaming de vídeo: Open Broadcast Studio (OBS), VideoLAN Server (VLS), …
- Virtualización ligera: Dockers.
- Orquestación de microservicios: Kubernetes.
- Infraestructuras: Cloud computing.
- Lenguaje de programación: Python.
Carácter:
Práctico.
Bibliografía:
- Learn Docker – Fundamentals of Docker 18.x (2018).Accesible a través del siguiente enlace (una vez logado en Campus UNED).
- Mastering Kubernetes (2018). Accesible a través del siguiente enlace (una vez logado en Campus UNED).
Profesor de contacto:
Descripción:
La virtualización ligera sopone una evolución sobre la virtualización tradicional ya que permite la creación de entidades débilmente acopladas (contenedores) que se ejecutan sobre las mismas infraestructuras físicas con una menor sobrecarga de ejecución. Por esta razón, una gran cantidad de aplicaciones y servicios se encuentran desplegados utilizando contenedores, tanto en entornos educativos como corporativos. El standar de facto de tales tecnologías de virtualización son los contenedores Docker, que se pueden desplegar sobre un clúster de ordenadores gestionados por el software Kubernetes, tanto de forma local como sobre proveedores cloud.
En este proyecto se plantea el estudio de técnicas para la gestión de infraestructuras virtuales basadas en Kubernetes para el despliegue de aplicaciones basadas en contenedores ligeros Docker, de forma que dichas aplicaciones disfruten de calidad de servicio (Quality of Service, QoS). Esta provisión de QoS se realizará mediante la planificación eficiente de los contenedores sobre las máquinas de las infraestructuras disponibles.
Este trabajo se encuadra dentro del proyecto del FILE (efFIcient scheduLing of containErs), financiado por UNED dentro del programa Independent Thinking-Jóvenes Investigadores 2019.
Resumen de objetivos:
- Recopilación y clasificación de propuestas existentes en relación con la planificación eficiente de contenedores ligeros sobre infraestructuras paralelas distribuidas
- Despliegue de infraestructuras paralelas distribuidas para la ejecución de contenedores Docker
- Implementación y evaluación de prestaciones de las propuestas seleccionadas.
Tecnologías potencialmente utilizables:
- Virtualización ligera: Dockers.
- Orquestación de microservicios: Kubernetes.
- Infraestructuras: Cloud computing.
- Lenguaje de programación: Python.
Carácter:
Práctico.
Bibliografía:
- Learn Docker – Fundamentals of Docker 18.x (2018).Accesible a través del siguiente enlace (una vez logado en Campus UNED).
- Mastering Kubernetes (2018). Accesible a través del siguiente enlace (una vez logado en Campus UNED).