101 PLAG: Plataforma RIA para la gestión centralizada de prácticas de programación Preciado Rodríguez, J.C.; Linaje Trigueros, M.; Plaza Collado, J.P.; Pérez-Montes Regajo, J.M. Universidad de Extremadura jcpreciado@unex.es Resumen - Este trabajo presenta una plataforma de gestión de prácticas de programación que permite a múltiples usuarios acceder mediante tecnología Web a un espacio virtual en el que puedan realizar tareas de programación, compilación, gestión de archivos y gestionar los proyectos activos de forma centralizada. Esta metodología de trabajo en red permite el máximo aprovechamiento de los recursos hardware y un seguimiento preciso del trabajo de todos los usuarios del sistema, además facilita numerosas vías de comunicación para poner en marcha estrategias de descubrimiento dirigido y fomentar la colaboración entre usuarios. • Proporcionar a los alumnos un espacio virtual en el que puedan gestionar y almacenar de manera ordenada y segura sus prácticas, añadiendo la posibilidad de realizar la compilación de las prácticas directamente en PLAG como ventaja añadida. • Facilitar a los docentes el seguimiento del trabajo de los alumnos, permitiendo las labores de supervisión y evaluación durante cualquier momento del desarrollo y desde cualquier lugar de forma “online”, disponiendo así de un sistema de gestión centralizado que permite realizar estadísticas sobre los datos almacenados. Palabras clave - Aprendizaje y evaluación del alumnado, Entornos RIA, Tecnología educativa. • Permitir más independencia entre los alumnos y sus puestos de trabajo, evitando la necesidad de instalar software específico en la máquina cliente para poder desarrollar las tareas de gestión y programación pertinentes al necesitar solamente una conexión a Internet para acceder al sistema (independiente tanto del Sistema Operativo como del hardware de acceso). • Habilitar un sistema de entrega de prácticas innovador permitiendo al docente hacer una copia automática de todas las prácticas y almacenarlas en su propio espacio virtual. • Como ventaja añadida obtenemos una prolongación en el tiempo de vida útil de los equipos a los que tienen acceso los alumnos para desarrollar sus practicas, reduciendo la necesidad de disponer de equipos de última generación. INTRODUCCIÓN Cuando se crea un entorno de programación, el equipo de desarrollo suele centrar sus esfuerzos en la inclusión del mayor número de facilidades y herramientas para que los usuarios finales puedan realizar su trabajo. En la creación de la Plataforma RIA de Gestión de Prácticas de Programación (PLAG), se ha tratado además de conseguir que los usuarios finales no tengan que instalar ningún software en su equipo de trabajo, ni llevar sus copias de seguridad de un equipo a otro, evitando de esta manera problemas frecuentes como la pérdida de trabajo por deterioro del hardware; copia de trabajos o infección por virus de diferentes equipos debido al incesante trasiego de discos flexibles y unidades extraíbles. Para la implementación del entorno virtual de gestión se ha optado por una tecnología basada en un sistema clienteservidor. La aplicación se ejecuta en un servidor de forma centralizada y los usuarios se conectan a través de la red a dicha aplicación para obtener el servicio. PLAG está desarrollada conjugando las tecnologías JSP sobre Tomcat Server, los compiladores gcc [2] y J2SE para el subsistema servidor y una capa de presentación basada en RIA[7], que puede ser ejecutada en cualquier navegador web. Los objetivos fundamentales que el sistema resultante de este trabajo debe cumplir son: Hoy día asistimos a procesos de enseñanza en los que es factible sustituir el aula física por aulas virtuales auspiciadas por proyectos basados en tecnologías Web[5]. ORGANIZACIÓN DEL DOCUMENTO Este trabajo se estructura como sigue: En la siguiente sección planteamos los antecedentes de este trabajo. Después indicamos las metodologías y tecnologías empleadas en el análisis, diseño y desarrollo. Las últimas secciones tratan el sistema integrado de gestión de prácticas y nuestras experiencias y los resultados obtenidos. Finalmente indicamos nuestras conclusiones y el trabajo futuro en este campo. VII Simpósio Internacional de Informática Educativa – SIIE05 Leiria, Portugal, 16-18 Novembro de 2005 102 ANTECEDENTES Antes de plantearnos el desarrollo del sistema analizamos otras propuestas previas, algunas trataban los aspectos de gestión y centralización de prácticas de forma remota, otras se centraban en las tareas de compilación remota y otras en aspectos de e-learning, cada uno de ellos con alguno de los planteamientos que necesitábamos para PLAG. En la empresa suiza Innovation[11] encontramos un Entorno Web de Compilación Remota sobre Java y desde su página Web se pueden realizar compilaciones de ficheros escritos en JAVA. Para realizar dicha compilación el usuario necesita tener en su disco duro uno o varios ficheros escritos en JAVA e introducir la dirección de la página Web donde se encuentra el Servicio de Compilación desde su navegador. Es un sistema potente de compilación remota pero no soporta aspectos de gestión o historial de desarrollo. En la Universidad Autónoma de Madrid encontramos Laboweb[12], otro entorno de compilación remota basado en Web, LabomatWeb. Esta vez se trata de la compilación de ficheros VHDL, aunque el funcionamiento general de este entorno es parecido al anterior. ELP[4] (A Web Based Environment for learning to Program) permite a los estudiantes programar desde el comienzo del curso sin la necesidad de familiarizarse con una herramienta de compilación. Lo más importante es que elimina todas las dificultades que tiene la instalación y puesta en marcha de un compilador Java pero no contempla las ventajas de gestión centralizada de alumnos y prácticas. Al igual que ELP, PLAG también elimina todas estas dificultades de instalación y puesta en marcha de los compiladores, que en el caso de PLAG son actualmente Java y C++. Los sistemas descritos realizan una compilación remota de archivos que se envían generando un resultado ejecutable, y por tanto nos sirven como punto de partida para el estudio de las soluciones de nuestro subsistema de compilación remoto, aunque la propuesta es integrar a modo de componentes un motor de gestión y un motor de compilación para cada lenguaje. METODOLOGÍAS Y HERRAMIENTAS Llegado el momento de decidir la metodología de desarrollo y el servidor que da soporte a PLAG valoramos diferentes posibilidades [4][5][6][8][9][10] y nos decantamos por la oferta de servicios de WebML y Tomcat. En cuanto al lenguaje de páginas de servidor nos decidimos por JSP, que es soportado por WebRatio, herramienta que implementa el modelo de WebML , que es fácil de utilizar, eficiente y se integra muy bien con la capacidad de las bases de datos SQL Server. En cuanto a los motores de compilación, y para las primeras fases de desarrollo del sistema, hemos utilizado el compilador “gcc”, que viene portado de Linux y es invocado por “make” y que se puede utilizar en línea de comandos para compilar. La integración del sistema se ha realizado mediante desarrollo de componentes, por lo que en cualquier momento se puede elegir el compilador que deseamos utilizar por medio de la interfaz del componente que actúa sobre los motores de compilación, y extender el modelo del sistema añadiendo nuevos componentes o redefiniendo los existentes. Garantizar la utilidad es una de las cuestiones principales en el desarrollo de sistemas de este tipo. Algunas de las características que debería tener un producto formativo, para obtener resultados satisfactorios, deberían ser[6]: • • • • • Tener objetivos específicos. Ser interactivo. Motivar y comunicar una sensación de cambio. Proporcionar herramientas adecuadas. Evitar factores de distracción. Para alcanzar estos parámetros de usabilidad en el lado del cliente hemos empleado Flash[3] y Action Script[3] basándonos en la filosofía RIA[7]. El resultado final es una aplicación que proporciona una experiencia de usuario más intuitiva y efectiva, proporcionando una interfaz interactiva para validar y formatear, tiempos de respuesta rápidos y sin refresco de páginas, soporte para los comportamientos de las interfaces más comunes como ”arrastrar y soltar” y la capacidad de trabajar “online”. Una de las características principales de RIA es que, a diferencia de las aplicaciones Web tradicionales, se otorga más capacidad de proceso al lado del cliente, eliminado del servidor las tareas de generación de las capas de presentación e interacción, minimizando así la transferencia de datos entre cliente y servidor, al enviar una sola vez la interfaz de usuario. Teniendo en cuenta la cantidad de datos que va a soportar la aplicación Web hemos optado por WebML[1] para el desarrollo del modelo de datos y la estructura del sistema. Todos los conceptos del WebML están asociados con una notación gráfica y una sintaxis textual en XML. Las especificaciones de WebML son independientes tanto del lenguaje del lado cliente, para el envío de la aplicación a los usuarios, como de la plataforma del lado servidor, utilizada para asociar la información a las páginas; aunque pueden ser empleados eficientemente para llevar a cabo la implementación de un sitio Web en un escenario tecnológico específico. PLATAFORMA DE GESTIÓN INTEGRADA El sistema pretende crear un vínculo de unión entre alumnos, prácticas y docentes. La idea de unir estas entidades ofreciendo un entorno personalizado de centralización y gestión de prácticas. VII Simpósio Internacional de Informática Educativa – SIIE05 Leiria, Portugal, 16-18 Novembro de 2005 103 La aplicación se divide en varios módulos, cada uno de ellos con un fin específico y una interfaz que establece la comunicación con las capas adyacentes. En la figura 1 se observa gráficamente como se disponen los diferentes elementos funcionales del sistema y como se realiza la comunicación entre los mismos. Una vez que se ha accedido al sistema, el alumno dispone de una sección de bienvenida en la que puede revisar todos los mensajes que los profesores de las asignaturas en las que está dado de alta, leer notas y enunciados de prácticas o leer comentarios individualizados sobre su evolución si han sido enviados previamente por los docentes. El alumnado dispone de una sección de creación de carpetas de prácticas, almacenándose en cada una de ellas los archivos que conformen la propia práctica. Por cada carpeta/práctica un alumno dispone del listado de sus ficheros, el historial de desarrollo, que el alumno a modo de seguimiento de proyecto va creando, y dos líneas de tiempo que el propio alumno controla. FIGURA 1 ESQUEMA DE CONEXIÓN MODULAR Los usuarios del sistema, alumnos y profesoresadministradores, acceden mediante navegadores Web, cada uno de ellos dependiendo del nivel de acceso del que disponga a una u otra sección del sistema. PLAG ofrece funcionalidades de personalización del entorno en base a las asignaturas asociadas a cada usuario. Cuando este tipo de usuario crea una nueva carpeta de prácticas establece qué motor de compilación, asignatura y profesor asocia a dicha práctica de entre los recursos, asignaturas y profesores que existen en el sistema. En esta carpeta dispone de las herramientas de creación, edición y compilación de archivos, así como de un historial de seguimiento de proyecto, que cuando se crea dicha carpeta comienza a funcionar y que el propio alumno utiliza para comentar su evolución, problemas, planteamientos y soluciones respecto a esa práctica. En la figura 3 se ve la pantalla correspondiente a la herramienta de gestión de prácticas de la zona de alumnos. El alumno y el profesor acceden al sistema como usuarios registrados mediante nombres y claves de usuario, encriptadas previamente en el proceso de alta y almacenadas en las bases de datos ya cifradas. De esta manera se consigue aumentar la seguridad del sistema, dificultando significativamente el robo de contraseñas de usuarios registrados. La figura 2 muestra la pantalla de acceso al entorno de compilación remota, en la que los diferentes usuarios se identifican de manera unívoca en el sistema. FIGURA 3 ZONA DE ALUMNOS. GESTIÓN DE PRÁCTICAS Cada carpeta de prácticas se crea con dos líneas temporales, una de seguimiento y otra de entrega. La línea de seguimiento establece una línea porcentual de trabajo terminado, desde el momento de comienzo de la práctica hasta el momento de la entrega de la misma. El propio alumno la pone en marcha cuando inicia la práctica y la incrementa a medida que avanza en dicha práctica, es una medida subjetiva de autocontrol del trabajo terminado. FIGURA 2 ZONA DE ACCESO A PLAG La línea de entrega la incrementa automáticamente el sistema teniendo en cuenta la fecha de inicio del trabajo y la fecha de entrega definitiva de la práctica. La aplicación VII Simpósio Internacional de Informática Educativa – SIIE05 Leiria, Portugal, 16-18 Novembro de 2005 104 automáticamente informa al usuario de los días transcurridos y del tiempo que falta para la entrega de la práctica. La figura 4 corresponde a la pantalla de control de alumnos de la zona privada del profesor. práctica, para evitar la actual acumulación de prácticas en los despachos de los profesores, así como para ofrecer las correcciones y anotaciones o recomendaciones sobre la práctica y documentación directamente al alumno desde el propio sistema. Actualmente disponemos de una versión temprana del entorno, en el que se han tratado de cumplir una serie de objetivos básicos que cubran aspectos básicos para poder comprobar el grado de aceptación de la metodología de trabajo que se propone con el uso de esta plataforma. EXPERIENCIA Y RESULTADOS Los primeros resultados se han obtenido a partir de la evaluación y puesta en marcha de los prototipos con un grupo de 10 alumnos voluntarios de la titulación de Ingeniería Informática en la Escuela Politécnica, Universidad de Extremadura, en la que se han realizado ejercicios de programación y de gestión de prácticas. FIGURA 4 ZONA DE PROFESOR. CONTROL DE ALUMNOS En las primeras versiones del sistema hemos utilizado ficheros que el alumno editaba de forma local y que el motor de compilación del sistema compilaba subiendo dichos archivos al servidor, actualmente estamos trabajando con ficheros de prácticas virtuales, ya que su contenido está almacenado en bases de datos, esta solución proporciona varias ventajas como centralización y facilidad de gestión, copias de seguridad unificadas, posibilidad de cifrado del contenido de los ficheros, etc. Para la compilación de los ficheros de código fuente en el servidor, se ha probado el componente DynuCOM[13], que permite la ejecución de comandos del sistema operativo, sobre el que corre el servidor Web. El proceso de compilación en el servidor consiste en la recepción del fichero, y la ejecución del compilador indicando como argumentos el fichero virtual a compilar, las opciones de compilación y el nombre del fichero ejecutable deseado. Una vez completa la compilación, se devuelve al usuario el fichero ejecutable. En el caso en que no se haya podido completar la compilación porque el fichero de código fuente contenga errores, el motor de compilación genera una serie de mensajes de error, los cuales se capturan y notifican automáticamente al usuario para que pueda corregirlos. Por otro lado, el historial de desarrollo de cada práctica, se alimenta continuamente de manera incremental, permitiendo a los alumnos ir desarrollando la documentación de sus trabajos elaborando un “diario de prácticas” en el que anotar la información más relevante sobre el trabajo que están completando en cada momento o completar las anotaciones hechas anteriormente. Junto a estas características hemos incluido un medio de envío, gestión y revisión de la documentación de cada Establecimos los principales elementos de sondeo que queríamos usar con los alumnos del grupo piloto y les pedimos que valorasen de 0 a 9 la utilidad de cada uno de ellos. Sus respuestas las resumimos en la tabla I. En las columnas incluimos las respuestas de los 10 alumnos, así el alumno 1 se indica como A1, el alumno 2 como A2 y así sucesivamente. En las filas indicamos los elementos sondeados. TABLA I VALORACIÓN DE LOS ALUMNOS SOBRE LA UTILIDAD DE LOS ELEMENTOS PRINCIPALES DEL SISTEMA A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 Líneas de tiempo 9 9 6 8 9 9 7 7 8 9 Interfaz RIA 8 9 8 7 8 7 8 6 5 8 Motores compilación 6 5 3 4 5 6 6 5 3 4 Gestión remota 7 8 5 7 7 6 7 6 5 6 Utilidad del sistema 6 7 5 8 7 8 8 7 6 7 Historial de desarrollo 7 7 6 8 8 9 8 7 6 7 Usable e intuitivo 8 8 7 8 7 7 8 7 6 8 ¿Te parece seguro? 6 8 3 6 6 5 5 5 3 4 De la lluvia de ideas que estos primeros alumnos piloto aportaron, se deduce que agradecen la centralización de las prácticas en un solo sistema y la posibilidad de acceder al mismo “online”, con las ventajas que esto conlleva. Otro aspecto que han agradecido mucho los alumnos ha sido el planteamiento de carpetas para la organización de las prácticas junto con las líneas de tiempo. Por el contrario algunos señalan un cierto recelo por no controlar directamente los medios físicos donde se almacena su trabajo y manifiestan un cierto temor a que otros se apropien de su trabajo o se vean desamparados ante una caída del sistema, pero comprenden que aplicando correctas políticas VII Simpósio Internacional de Informática Educativa – SIIE05 Leiria, Portugal, 16-18 Novembro de 2005 105 de seguridad y mantenimiento estos problemas pueden resolverse. para que el profesor pueda ir revisando el trabajo durante la fase de desarrollo. Desde el punto de vista docente el sistema supone una ventaja en la gestión de alumnos y prácticas, una herramienta muy potente para realizar un seguimiento del trabajo de los alumnos, permitiendo de esta manera analizar si el ritmo de trabajo es el deseado. Es una oportunidad para detectar de una manera más directa errores y dudas comunes entre los alumnos en las primeras fases de la elaboración de un trabajo. Estimamos que sería oportuno incluir un sistema de foros en el que los alumnos encuentren un espacio para poder realizar comentarios sobre los temas que los docentes consideren convenientes, fomentando de esta manera estrategias y herramientas de aprendizaje colaborativo[14] y generando material que sirva de ayuda a cualquier alumno que pueda acceder a dichos foros. CONCLUSIONES Del estudio previo al desarrollo de este sistema y las ideas aportadas durante la experiencia realizada, se destaca el reconocimiento de la idoneidad de un sistema de gestión de documentos basado en tecnología Web, para gestionar el historial de desarrollo de proyectos de programación, el seguimiento y la entrega de las prácticas que elaboran los alumnos. Se destaca el beneficio que aporta la centralización de toda la información relevante y la facilidad para clasificar los trabajos usando diferentes criterios. El nivel de aceptación del sistema por parte de los alumnos del proyecto piloto es muy satisfactorio, valoran la ventaja que aporta no tener que depender de los compiladores de los laboratorios de prácticas, y la comodidad de disponer de un sistema de gestión documental y versionado de ficheros con el que organizar de manera eficaz y automática su trabajo. La aceptación por parte de los docentes también es satisfactoria, sobre todo por la posibilidad de poder realizar un seguimiento del trabajo de los alumnos y una gestión centralizada de prácticas mucho más cómoda que la usada en la actualidad. TRABAJO FUTURO Tenemos previsto incorporar nuevas capacidades de compilación y de gestión, además de nuevas secciones de recursos para el alumno y control de copia de prácticas mediante similitudes basadas en texto simple. En cualquier caso nuestra propuesta pretende evaluar el sistema a fondo mediante la puesta en práctica de PLAG con grupos de alumnos diversos y en base a la recogida de nuevas sensaciones y experiencias, enfocar de nuevo el desarrollo del sistema en uno u otro sentido. Estamos trabajando para que el sistema permita además de un control de versiones, ver de una forma sencilla la evolución temporal del trabajo realizado, controlar los cambios que ha sufrido la práctica en un determinado momento e ir generando una serie de ficheros entregables Otro de los aspectos importantes que queremos reforzar es la generación del historial de desarrollo de cada práctica en formato PDF, que actualmente es completado mediante hitos por el alumno. También está previsto incluir un control de asistencia a clase y la realización de pruebas de uso directamente en los laboratorios de prácticas, además de incluir en la zona de docente-administrador opciones de filtrado de información para generar informes y gráficos de asistencia, así como de evolución del alumnado. REFERENCIAS [1] Ceri, Fraternali & Bongio, A. Web Modeling Language (WebML): a Modeling Language for Designing Web Sites. ACM WWW9 Conference, Amsterdam, May 2000 [2] The GCC home page http://gcc.gnu.org [3] http://www.macromedia.com [4] Nghi Truong, Peter Bancroft, Paul Roe. A Web Based Environment for Learning to Program. ACM. February 2003 Proceedings of the twenty-sixth Australasian computer science conference on Conference in research and practice in information technology - Volume 16 [5] By Dongsong Zhang, J. Leon Zhao, Lina Zhou, & Jay F. Nunamaker, Jr. CAN E-LEARNING REPLACE CLASSROOM LEARNING?. May 2004 Communications of the ACM, Volume 47 Issue 5. [6] Michael Derntl Renate Motschnig-Pitrik. Patterns for Blended, PersonCentered Learning:Strategy, Concepts, Experiences, and Evaluation. March 2004. Proceedings of the 2004 ACM symposium on Applied computing. [7] Duhl, Joshua. IDC white papers: RIA. November 2003. http://www.idc.com [8] M.A. Vega, J.M. Sánchez, M. Rubio, F. Chavez, J.A. Gómez. Utilización de Internet para la enseñanza de sistemas. VIII Jornadas de Enseñanza Universitaria de la Informática 2002. [9] A. Cañas, A. Díaz, A. Prieto. Sistema de servicios web de apoyo a la docencia y gestión de una asignatura. VIII Jornadas de Enseñanza Universitaria de la Informática 2002. [10] J.C. Preciado, J.A. Zarandieta. Aplicación didáctica para la gestión de sistemas telemáticos mediante XML, PHP y Action Script. Simposio Internacional en Informática Educativa 2004. [11] http://innovation.ch/java [12] http://ii.uam.es/~laboweb [13] http://www.cravis.com [14] J.C. Preciado, V. Masero, D. Castañera, C. Gil. Mapas conceptuales para enseñar cooperativamente vía web. First Internacional Conference on Concept Mapping 2004. VII Simpósio Internacional de Informática Educativa – SIIE05 Leiria, Portugal, 16-18 Novembro de 2005