Trabajo:Ayuda en la elección de asignaturas optativas

From FdIwiki ELP
Jump to: navigation, search

Como alumnos del último curso del Grado de Ingeniería Informática hemos tenido que sufrir ciertas dificultades a la hora de elegir las optativas que queríamos cursar. Con el fin de evitar los mismo problemas a futuros alumnos, decidimos ponernos en contacto con María Belén Díaz Agudo, Vicedecana de Estudios y Calidad, para averiguar cómo podíamos facilitar esta tarea dada nuestra experiencia. Así decidimos empezar con este trabajo.


Introducción

En los Grados de Ingeniería Informática, Ingeniería del Software e Ingeniería de Computadores ofrecidos en la Facultad de Informática de la Universidad Complutense se deben cursar un total de 30 créditos optativos. Estos créditos pueden obtenerse por actividades formativas (hasta 6 créditos), por prácticas en empresas (hasta 12 créditos) o bien mediante las asignaturas optativas ofertadas, la lista de éstas es extensa y comprende:

  • Análisis de redes sociales
  • Aprendizaje automático y Big Data
  • Arquitectura Interna de Linux y Android
  • Bases de Datos noSQL
  • Calculabilidad y Complejidad
  • Cloud y Big Data
  • Criptografía y teoría de códigos
  • Creación de empresas
  • Desarrollo de videojuegos mediante tecnologías web
  • Diseño Automático de Sistemas
  • Especificación, validación y testing
  • Gestión de la Información en la web
  • Herramientas informáticas para los juegos de azar
  • Informática Gráfica
  • Ingeniería web
  • Interfaces de usuario
  • Inteligencia artificial aplicada al control
  • Investigación operativa
  • Los escenarios científicos y tecnológicos emergentes y la defensa
  • Minería de Datos y el paradigma Big Data
  • Percepción computacional
  • Programación de aplicaciones para dispositivos móviles
  • Programación evolutiva
  • Programación con restricciones
  • Programación de GPUs y aceleradores
  • Programación paralela para móviles y multicores
  • Robótica
  • Sistemas Inteligentes (sólo GII-Tecnología de la Información)
  • Seguridad en Redes (todos los grados menos GII-Tecnología de la Información)

Objetivo

Como hemos visto son necesarias al menos dos y hasta cinco asignaturas optativas elegidas de la lista mencionada anteriormente para poder obtener todos los créditos requeridos y esta elección puede resultar ardua dado el escaso conocimiento que en ocasiones se tiene sobre el programa o contenido de las mismas.

Nuestro objetivo principal es facilitar esta tarea a los alumnos mediante una herramienta con el fin de que la decisión tomada pueda basarse en unos argumentos sólidos y mejorar así su experiencia universitaria.


Planificación

  • 1ª Reunión grupal (20/11/2015):
  • Tras hacer una lluvia de ideas seleccionamos para proponerle al profesor la creación de una herramienta para ayudar en la elección de las asignaturas optativas. Nuestra idea inicial es que se pueda integrar nuestra herramienta en la página web de la facultad con el fin de dar una utilidad real a nuestro trabajo. Paro orientarnos sobre la posible difusión del trabajo decidimos reunirnos con María Belén Díaz Agudo (Vicedecana de Estudios y Calidad).

  • 1ª Reunión con la Vicedecana (03/12/2015):
  • Inicialmente le exponemos a María nuestra idea y le explicamos el tipo de trabajo que queremos hacer y los requisitos que debe cumplir para ser válido como proyecto de la asignatura. En términos generales: Propuestas por parte de la Vicedecana sobre lo que podría ayudar a los alumnos en la elección de las asignaturas. Exposición de lo que puede ser de utilidad para la facultad en aras a una futura utilización del trabajo que realicemos. Finalmente se decide realizar una “nube de palabras” de cada optativa extrayendo dichas palabras de las fichas docentes disponibles en la web de la facultad, con esto se pretende dar mayor visibilidad a la información clave de cada asignatura. Tras esto pasamos a crear la primera versión del software (Nube de palabras v.1)

  • 2ª reunión con la Vicedecana (25/01/2016):
  • Tras entregar el trabajo y recibir feedback por parte del profesor nos reunimos con la Vicedecana de nuevo para determinar la utilidad real de la aplicación y modificar aquello que no se ajuste a lo buscado. En términos generales: Le explicamos a la Vicedecana en qué consiste el software actual, su proceso, forma de uso, utilidad y objetivo y le mostramos ejemplos con asignaturas en la web. Orientación por parte de la Vicedecana sobre ciertos cambios a realizar para una segunda versión que sea más aprovechable para ellos y que tenga una mayor difusión (Cambiar la ubicación de la nube de palabras y el modo en que se muestra). Tras esta reunión decidimos hacer una ampliación del software (Nube de palabras v2)

  • 2ª Reunión grupal (25/01/2016):
  • Una vez recibido el feedback definimos las tareas que quedan por realizar para completar el trabajo y darle la utilidad buscada. Nos repartimos las funciones para cumplir plazos establecidos.

  • 3ª Reunión con la Vicedecana (28/01/2016):
  • Completada la nueva versión del software se muestra el funcionamiento a la Vicedecana y se muestra contenta con nuestro trabajo. También nos ofrece su opinión el profesor Pablo Moreno Ger e igualmente se muestra contento nos comenta que le gusta la idea y estudiará la inclusión de nuestro software para el curso siguiente. Enviamos nuestro trabajo por correo y nos quedamos a la espera de feedback.


    Descripción de las herramientas

    Nube de palabras v1

    Una de las medidas que hemos diseñado para facilitar la elección es el desarrollo de una herramienta que analice la ficha docente de cada asignatura y muestre en una nube de palabras los términos más repetidos, a modo de ejemplo:

    NubeEjemplo.bmp

    Decidimos realizar la nube sólo de 6 optativas, ya que ésta es una primera versión, y la ampliación al resto de optativas en el futuro no tendría un coste muy elevado. Para cada una de ellas hemos obtenido la ficha docente desde la página de la facultad y hemos tratado de captar una ligera idea sobre el temario de las asignaturas para conseguir un resultado más fiel. Las optativas elegidas son:

    • Percepción computacional
    • Análisis de redes sociales
    • Diseño automático de sistemas
    • Sistemas inteligentes
    • Programación de GPUS y aceleradores
    • Arquitectura interna de Linux y Android

    Pasos seguidos hasta conseguir la nube

      1. Conversión del archivo pdf de la ficha de la asignatura a txt. Para analizar las palabras es necesario que el tipo del archivo sea txt, para lo cual utilizaremos un conversor. Nos decidimos por el módulo de Javascript “pdf-text-extraction” disponible en github de “Noah Isaacson”. Este programa tiene dependencias del módulo “yargs” con licencia MIT de “Benjamin E. Coe”. El motivo de nuestra elección es que una vez descargado es muy fácil de usar desde la línea de comandos, proporciona una alta calidad en la conversión y utiliza el lenguaje Javascript, que nos será útil más adelante si queremos insertarlo en la web. Esto nos proporciona el archivo pdf convertido a txt.
      2. Obtención de las palabras más repetidas Una vez que tenemos las fichas docentes en formato txt necesitamos sacar las palabras más repetidas. A pesar de las múltiples herramientas disponibles para filtrar texto ya existentes nos decidimos por crear nosotros mismos el código ya que queríamos un filtro muy especial para conseguir que las palabras obtenidas tengan sentido y sean coherentes con el propósito del trabajo. Realizamos una primera versión en Java para realizar pruebas y depuración con una mayor fluidez. En este punto vamos anotando las palabras más repetidas de cada optativa y comprobando que tienen sentido y que realmente ayudan al usuario. Después se realizó una segunda versión del programa, esta vez en Javascript, para poder integrar el programa anterior de conversión de pdf a txt con el de búsqueda de palabras más repetidas. Se vuelve a comprobar que las palabras resultantes son las mismas que las obtenidas con el programa independiente en Java. De esta manera, una vez introduzcamos el pdf a convertir, nos devuelve un txt directamente ya con las palabras más repetidas automatizando mucho el proceso. El programa final es el siguiente (pdf2text.js[1]).
      3. Modo de empleo desde consola: “node pdf2text.js archivo” El resultado es por lo tanto un txt con las palabras más repetidas del pdf que se le pasa como parámetro. El fichero resultante se guarda en la carpeta palabras_asignaturas.

      4. Realización de nube (palabras aleatorias) Para la realización de la nube usamos las bibliotecas jqcloud de “Damian Sorel” con licencia MIT y jquery con doble licencia MIT y GNU GPL accediendo a esta última desde “googleaplis”. Elegimos estas bibliotecas por la amplia información que hay sobre ellas en Internet (tutoriales), la facilidad de proporcionar mejoras en el futuro (opciones de alerts/link en las palabras), y su facilidad de uso (atributos como color, text, fontSize…). Decidimos crear una copia de la página de la facultad donde creemos que se produciría la integración de la nube para así poder realizar pruebas con una mayor fiabilidad. En un primer momento introducimos las palabras de la nube aleatoriamente para probar el aspecto visual.
      5. Introducción de las palabras en la nube Una vez que tenemos las palabras en un txt solo hace falta escribirlas en el html que se encarga de crear la nube con las palabras que le indiquemos. Este paso se podía haber hecho mucho más automático usando lenguajes como php para cargar los archivos txt e ir leyendo las palabras más repetidas una a una, pero al no disponer del código “real” donde se usaría realmente decidimos hacerlo con html y en mejoras futuras pasarlo a php de un modo mucho más automatizado.

    Nube de palabras v2

    En esta segunda versión lo primero que hicimos fue dar un carácter más general a la aplicación anterior. Para ello decidimos hacer un programa que dado un archivo en formato pdf te devuelva una página html que dibuja una nube de palabras con aquellas que más se repiten en el archivo pdf. Con este propósito, decidimos que al ejecutar la aplicación se generara automaticamente la página html con la nube. El objetivo principal sigue siendo las fichas docentes, por eso los nombres se usan con este sentido, pero puede ser útil para otros casos.

    Los archivos pdf se deben introducir en la carpeta fichas_docentes. Despues ejecutamos uno de los dos posibles programas:

  • pdf2htmlWordCloudAll: Convierte todos los ficheros pdf de la carpeta fichas_docentes a html y los guarda en la carpeta nubes_ficha_docente
  • pdf2htmlWordCloud: Convierte el fichero pdf cuyo nombre se le pasa como parámetro a html y lo guarda en la carpeta nubes_ficha_docente
  • Como ejemplo específico se incluye la página de optativas de la Facultad de Informática de la UCM. Para ver una demostración del funcionamiento de este ejemplo está el archivo complutense.html Es una copia de la página original, añadiendo la funcionalidad de la nube de palabras. Es decir, al pasar el ratón por encima de una asignatura se muestra su nube de palabras correspondiente. En este caso a diferencia de la primera versión, sí que todas las optativas tienen sus respectivas nubes por lo que da un aspecto mucho más realista.

    Vista.gif


    Integrantes del grupo

    • Daniel Ortiz Sánchez
    • Miriam González Rodríguez
    • Alejandro Villarín Prieto
    • Miguel Marzal García


    Blog

    Aquí está el link a nuestro relato

    Se trata de una distopía basada en las consecuencias negativas que tendría nuestro trabajo (de un modo un tanto exagerado) dentro de 30 años. El breve relato gira entorno a un nuevo profesor de la facultad que afronta su primer día de trabajo en ella y tiene que lidiar con las consecuencias. Suponemos que la herramienta que diseñamos (Nube) en vez de ayudar,aconseja de una forma errónea a todos los alumnos, con las consecuencias que eso conlleva.


    Difusión

    Nuestras líneas de difusión del trabajo son 2:

    • Como software independiente en github, cuya función es extraer la nube de palabras en formato html de archivos/archivo pdf usando los programas explicados más arriba.
    • Como funcionalidad concreta para la web de la Facultad de Informática, similar a la mostrada en el ejemplo anterior (complutense.html). Esperamos que tras demostrar que nuestra herramienta es útil y que el coste de adaptación del software existente integrando nuestra herramienta no sería muy elevado, nuestra funcionalidad esté en la web en el curso siguiente. Aún nos falta más feedback con la Vicedecana Belén y más estudio en profundidad de la herramienta por los administradores de la web, aunque visualmente si hemos recibido su aprobado.

    Creemos importante mencionar que nuestro trato con la Vicedecana siempre ha sido muy bueno, se ha mostrado accesible a nosotros en todo momento orientándonos y recibiéndonos siempre en su despacho.

    Recursos