Trabajos de fin de grado (TFG)
URI permanente para esta colección
Examinar
Examinando Trabajos de fin de grado (TFG) por Departamento "Lenguajes y Sistemas Informáticos"
Mostrando 1 - 7 de 7
Resultados por página
Opciones de ordenación
Publicación Aplicación web para aprendizaje de las Matemáticas en Primaria y Secundaria(Universidad de Educación a Distancia (UNED), 2024-07-10) Helguero Valverde, Ana Isabel; López Ostenero, FernandoLas Matemáticas son una disciplina que, lamentablemente, no siempre tiene una buena acogida entre niños y adolescentes. Enfrentarse a un problema matemático requiere pensar cómo resolverlo utilizando distintas estrategias y, a veces, los estudiantes encuentran dificultades en cómo abordarlos. En el presente PFG se propone una página web para el aprendizaje de las Matemáticas, orientada a niños, adolescentes y a todos aquéllos que sientan interés por esta materia. Como paso previo a su elaboración, se realiza un análisis de la situación actual de las Matemáticas en España y de su evolución en los últimos años, en comparación con otros países, a partir de los resultados obtenidos en el Informe PISA y TIMSS y se podría observar que existe un amplio margen de mejora en las puntuaciones. De entre todos los países, destaca uno por sus espectaculares resultados, liderando los rankings internacionales desde hace lustros: Singapur. Se analizará el “método Singapur” en la enseñanza de las Matemáticas y se elaborará a partir de ella una metodología para aplicar en nuestra web. Se hará un estudio detallado de las actuales páginas web abiertas que existen para aprender Matemáticas y se analizará si siguen la metodología propuesta o no. Finalmente, se presentará una página web interactiva para aprender Matemáticas, que siga la metodología construida en el presente PFG.Publicación Aplicación Web para la creación de Landing Pages(Universidad de Educación a Distancia (UNED), 2024-07-10) Doñoro del Río, Francisco; López Ostenero, FernandoPor el hecho de ser informáticos, muchos amigos y conocidos nos solicitan ayuda para poder crear una página para sus negocios o hobbies. Dicha ayuda consiste en servirles de guías en editores de webs complejos, o directamente en crearles una web desde cero. Este proyecto surge de la necesidad de mucha gente con pocos conocimientos tecnológicos, que desean realizar una página web sencilla en pocos y sencillos pasos, con la finalidad de que puedan ser autónomos durante todo el proceso de creación y gestión de sus páginas webs. Estas ‘páginas web sencillas’ se conocen también como Landing Pages. Para conseguir esto, se busca desarrollar un sistema de gestión de contenido en línea, también denominado CMS, que les permita crear, administrar y publicar contenido en Internet de la forma más sencilla posible. Finalmente, para aprovechar esa necesidad, surge Websy. Una oportunidad para poder desarrollar una web app desde el principio, creando una API con una base de datos y un frontal, y conectándolos entre sí. De esta forma, podemos emplear lenguajes de programación para ampliar nuestras posibilidades en el mundo laboral, haciendo uso de las tecnologías más demandadas actualmente.Publicación Criptoanálisis RSA. Estudio teórico-empírico de la complejidad algorítmica de la factorización de enteros y pruebas de primalidad(Universidad de Educación a Distancia (UNED), 2024-06-21) Sabalete Urbano, Juan Manuel; López Ostenero, FernandoLos números primos son de vital importancia en el algoritmo RSA ya que la fortaleza y seguridad del mismo radica en la dificultad de factorizar números arbitrariamente grandes resultado del producto de dos números primos. El presente Proyecto de Fin de Grado se centra en el análisis teórico y experimental de algoritmos de primalidad y factorización de enteros. Se realiza un estudio de los fundamentos teóricos de estos algoritmos, con especial énfasis en el análisis de su tiempo de ejecución o complejidad temporal. Además del análisis teórico, se ha desarrollado una aplicación gráfica para comprobar empíricamente los tiempos de ejecución de algunos de los algoritmos analizados y poder hacer comparaciones entre ellos. Finalmente, se muestran los resultados de distintos análisis y comparativas llevadas a cabo, haciéndose patente que los resultados empíricos se corresponden con los teóricos.Publicación Desarrollo de un portal de wikis(Universidad de Educación a Distancia (UNED), 2024-07-04) Ruiz Montes, Antonio; Enrique Amigó CabreraDesde hace unos 30 años, las wikis se han mostrado como una herramienta versátil y muy accesible a la hora de compartir conocimiento en comunidades. En este PFG (Proyecto Fin de Grado) propongo un diseño de desarrollo para una de ellas y muestro los pasos que envuelven la construcción de software. Usando Java como lenguaje articulador de codificación y basando la solución en una arquitectura de APIs, se ofrecen detalles de las diferentes tecnologías para su construcción así como de la evolución que el propio proyecto va sufriendo en la fase de implementación. Hay dos aspectos en los que he querido poner especial énfasis, en este caso, no tanto sobre los procesos formales a nivel de ingeniería del software, sino sobre aspectos que tienen un impacto directo sobre el producto final y el proceso de implementación y mantenimiento. De una parte, la idea de montar una arquitectura de APIs persigue buscar mucha flexibilidad en la solución final, de modo tal que sea útil cuándo haya que hacer evoluciones, ya que ofrecerá un bajo acoplamiento; pero también de cara a mejorar sus disponibilidad Hoy en día se espera que una aplicación ofrezca un alto % de disponibilidad. Utilizando APIs, desplegadas en servidores específicamente ideados para ello como pudieran ser OpenShift[res.1] y al utilizar APIs diferentes, no será problemático analizar qué aspecto de la aplicación (qué API concretamente), necesitará más recursos, facilitando así que los mismos se puedan distribuir de la forma más óptima posible. El otro aspecto en el que he querido hacer especial hincapié ha sido en la fase de pruebas. Estas, habitualmente, están formadas por test de regresión y test de integración principalmente, sin embargo, yo he querido poner el foco en los test unitarios. Estos están enfocados no al conjunto de la aplicación, sino a cada una de sus partes del modo más individual posible: los métodos y funciones. Una buena construcción de estos test permiten detectar diseños incorrectos en código. Esto es, la función o método puede hacer lo que se espera de ella, pero no cumple correctamente con el principio responsabilidad única[res.2]. Un buen test unitario nos alertará de esto de diversas formas y nos hará plantearnos rediseñar nuestro código. Adicionalmente, según construyamos código nuevo, estos test nos alertaran de cambios o funcionamientos no esperados en otras partes del código, todo en una fase previa a someter el código a otro tipo de pruebas más globales. Esto nos llevará a conseguir un producto con muchas garantías de que haga lo que se espera de él. El resultado final de este trabajo es una wiki en la que se permite registrar libros y capítulos, donde existen roles con diferentes funciones y un lenguaje de marcado básico que permite la conversión de texto plano a Html.Publicación Generación de música en el estilo coral de J.S. Bach con IA(2024-07) Flor García, Sergio; López Ostenero, FernandoEste Trabajo de Fin de Grado explora el uso de la inteligencia artificial para generar música coral en el estilo de J.S. Bach. En relación con el resto de trabajos que abordan la generación de este estilo concreto de composición, introduce la novedad de abordar el problema partiendo desde un punto de vista puramente armónico de la música, en vez de otras aproximaciones basadas en la melodía o en la disposición de las notas. Para ello, se utiliza una colección de corales de Bach analizados y anotados armónicamente para desarrollar un modelo probabilista que genera la estructura armónica de una pieza coral. Formalmente, el modelo se basa en el concepto de cadenas de Markov y de caminos aleatorios, aplicados a la generación de semifrases, esto es, series de acordes que componen una pieza coral. Posteriormente, se ha utilizado esta estructura para armonizar el coral a cuatro voces, utilizando un algoritmo de búsqueda con el esquema de vuelta atrás para obtener disposiciones y enlaces de acordes que cumplan las restricciones y preferencias derivadas de las normas de armonización de corales. El resultado final del sistema se ha integrado en un servicio web, a través de cuya interfaz se solicita la generación de corales en una tonalidad dada, y se obtienen tanto la partitura del coral generado, como un archivo de sonido MIDI que puede ser reproducido o descargado.Publicación Herramienta Visual para el aprendizaje de algoritmos y estructuras de datos(Universidad de Educación a Distancia (UNED), 2024-07) Martín Galán, Alicia; López Ostenero, Fernando; Araujo Serna, Lourdes¿Qué es un algoritmo? En pocas palabras, un algoritmo es un conjunto de pasos que resuelve un problema específico. Se trata de un componente básico de programación informática. Todos los programas y aplicaciones dependen de este concepto para funcionar correctamente. Este proyecto trata del desarrollo de un sitio web para el aprendizaje de los algoritmos. Dada la importancia que tiene para los estudiantes en Informática conocer a fondo el funcionamiento de los algoritmos, se planteó la creación de una herramienta que comenzó a desarrollarse en un PFG anterior. En este trabajo inicial se creó un marco de trabajo para el seguimiento y visualización de los diferentes tipos de algoritmos y las estructuras de datos implicadas. Se creó una API que implementase el funcionamiento y la visualización de las estructuras de datos y controles más importantes, se implementaron tres tipos de algoritmos y se creó una plantilla de trabajo para poder ampliar la herramienta con nuevos algoritmos posteriormente. El presente proyecto se ha centrado crear una nueva herramienta que mejore el trabajo anterior, completando el número de algoritmos implementados de forma que se cubran todas las categorías más importantes: Voraces, Divide y Vencerás, Programación Dinámica, Vuelta Atrás y Ramificación y Poda. Además, se han mejorado los contenidos y visualización de interfaces, y se ha añadido una nueva funcionalidad que permite la carga remota de datos, es decir, que las páginas que contienen nuestros algoritmos puedan ser invocadas desde otras webs a través de un enlace incluyendo los datos de entrada. La aplicación está dirigida principalmente a alumnos de la asignaturas relacionadas con algoritmia y estructuras de datos de los grados de Ingeniería Informática e Ingeniería de Sistemas de Información de la UNED. Sin embargo, podrá ser utilizada por estudiantes de otras asignaturas o cualquier persona con interés en el aprendizaje de los algoritmos.Publicación Implementación de un servidor que permita gestionar partidas multijugador online(Universidad de Educación a Distancia (UNED), 2024-06) Gámiz Cervera, Marcelino; López Ostenero, FernandoEl trabajo desarrollado en este proyecto tiene como finalidad mostrar cómo se puede llevar a cabo la implementación de un servidor que permita a los usuarios poder participar en partidas para varios jugadores a través de internet. Para ello, el servidor deberá proporcionar un alto nivel de seguridad, garantizando la protección de los datos y de la información compartida a través de la red. A su vez, tendrá que asegurar también un nivel de accesibilidad óptimo para los usuarios, ofreciéndoles así un sistema que puedan utilizar desde el primer momento de manera confiable e intuitiva. Además, este trabajo contará con varias aplicaciones, que a su vez implementarán cada una de ellas un videojuego y que actuaran como clientes del sistema, proporcionando con ello al usuario una adecuada diversidad a la hora de poder conectarse al mismo servidor a través de varias aplicaciones diferentes.