Experiencias con EclipseGavab: Un entorno de programación colaborativo on-line

19
Experiencias con EclipseGavab: Un entorno de programación colaborativo on-line Micael Gallego, Francisco Gortázar {micael.gallego, francisco.gortazar}@urjc.es Departamento de Ciencias de la Computación Universidad Rey Juan Carlos c/ Tulipán s/n, 28933, Madrid Resumen EclipseGavab es un entorno de desarrollo colaborativo orientado a la docencia que permite el desarrollo de aplicaciones en varios lenguajes de programación (C, Java, Pascal, ...). Este entorno incorpora funcionalidades que permiten la colaboración on-line vía Internet, como acceso a repositorios de código, mensajería instantánea y edición compartida de los fuentes del programa. Estas características posibilitan al profesor la tutorización del trabajo de forma telemática y a los alumnos la colaboración vía Internet en la resolución de problemas, permitiendo que EclipseGavab se pueda utilizar en la docencia on-line de la programación. En este trabajo se presentan los resultados de la evaluación de esta herramienta en diferentes asignaturas de las titulaciones de informática de la URJC. 1. Introducción La enseñanza de la informática se está enfrentando a nuevos retos con la irrupción de Internet en la vida cotidiana. Los mecanismos telemáticos son cada vez más utilizados por los estudiantes para comunicarse entre sí, tanto dentro como fuera del ámbito educativo. Aplicaciones de mensajería instantánea como MSN Messenger [16] o Google Talk [14] son uno de los métodos preferidos de comunicación entre los jóvenes. Por otro lado, diversas universidades imparten titulaciones de informática a distancia y utilizan herramientas telemáticas para que los profesores se comuniquen con los alumnos y también para que los alumnos se comuniquen entre sí.

Transcript of Experiencias con EclipseGavab: Un entorno de programación colaborativo on-line

Experiencias con EclipseGavab: Un entorno de programación colaborativo on-line

Micael Gallego, Francisco Gortázar

{micael.gallego, francisco.gortazar}@urjc.es

Departamento de Ciencias de la Computación Universidad Rey Juan Carlos c/ Tulipán s/n, 28933, Madrid

Resumen

EclipseGavab es un entorno de desarrollo colaborativo orientado a la docencia que permite el desarrollo de aplicaciones en varios lenguajes de programación (C, Java, Pascal, ...). Este entorno incorpora funcionalidades que permiten la colaboración on-line vía Internet, como acceso a repositorios de código, mensajería instantánea y edición compartida de los fuentes del programa. Estas características posibilitan al profesor la tutorización del trabajo de forma telemática y a los alumnos la colaboración vía Internet en la resolución de problemas, permitiendo que EclipseGavab se pueda utilizar en la docencia on-line de la programación. En este trabajo se presentan los resultados de la evaluación de esta herramienta en diferentes asignaturas de las titulaciones de informática de la URJC.

1. Introducción

La enseñanza de la informática se está enfrentando a nuevos retos con la irrupción de Internet en la vida cotidiana. Los mecanismos telemáticos son cada vez más utilizados por los estudiantes para comunicarse entre sí, tanto dentro como fuera del ámbito educativo. Aplicaciones de mensajería instantánea como MSN Messenger [16] o Google Talk [14] son uno de los métodos preferidos de comunicación entre los jóvenes. Por otro lado, diversas universidades imparten titulaciones de informática a distancia y utilizan herramientas telemáticas para que los profesores se comuniquen con los alumnos y también para que los alumnos se comuniquen entre sí.

Algunas de ellas son la Universidad Nacional de Educación a Distancia (UNED) [19], la Universitat Oberta de Catalunya (UOC) [20] y la Universidad Rey Juan Carlos [11]. Por lo tanto, es cada vez más necesario el desarrollo de herramientas que soporten la enseñanza online de la informática.

Los investigadores están de acuerdo en que el aprendizaje colaborativo en grupo proporciona beneficios pedagógicos [5, 10, 6]. El Aprendizaje Basado en Proyectos o Project Based Learning (PBL), es una metodología docente en la que los alumnos adquieren los conocimientos mediante la realización de un proyecto o resolución de un problema adecuadamente diseñado y formulado por el profesor. El Aprendizaje Basado en Proyectos se utiliza ampliamente en la enseñanza presencial de la informática cuando se pide a grupos de alumnos el diseño e implementación de una aplicación. Esta metodología se enmarca dentro del Trabajo Cooperativo Soportado por Ordenador (computer-supported cooperative work, CSCW [4, 7]) debido a que el entorno de desarrollo integrado es una aplicación informática que conduce la colaboración en el desarrollo de los proyectos. Debido a que la programación es un proceso complejo, el profesor suele supervisar este proceso de desarrollo. En la enseñanza presencial, esta supervisión habitualmente tiene lugar durante las horas lectivas en aulas con ordenadores, de forma que los alumnos pueden intercambiar opiniones y enfoques acerca del proyecto que tienen que resolver y el profesor puede ayudar con la detección de errores o dando consejos o pistas sobre el desarrollo del mismo.

Actualmente, no existe una implementación satisfactoria del Aprendizaje Basado en Proyectos en la enseñanza online de la informática. Esto se debe fundamentalmente a que los mecanismos de comunicación disponibles en las herramientas colaborativas usadas en este tipo de enseñanza, como Moodle [15] o WebCT [22] no están adaptados para el desarrollo colaborativo de aplicaciones informáticas. Cuando se utilizan este tipo de herramientas de enseñanza online, para compartir pequeños fragmentos de código fuente entre alumnos o entre el alumno y el profesor, se copia el código desde el entorno de desarrollo y se pega en herramientas de

mensajería instantánea o se envía por mail el programa completo. Esto hace que tanto la resolución de dudas por parte de un profesor como la colaboración entre alumnos sean tareas bastante engorrosas y lentas, que se traduce en una merma de calidad comparada con las mismas tareas en la enseñanza presencial.

El uso de Internet como uno de los medios de comunicación preferidos por los estudiantes y la proliferación de las titulaciones online de informática hace que sea de interés disponer de una herramienta de programación colaborativa. Esta herramienta de programación tiene que permitir y facilitar los casos de uso habituales en el contexto de la enseñanza de la programación: colaboración entre alumnos y supervisión del trabajo del alumno por parte del profesor. En este contexto se presenta EclipseGavab, un entorno de desarrollo para la docencia online de la programación.

Este trabajo se estructura de la siguiente forma. En la Sección 2 se realiza una revisión del estado del arte de las herramientas colaborativas para la enseñanza de la programación. En la Sección 3 se describen las características y funcionamiento de EclipseGavab. En la Sección 4 se presentan algunos de los casos de uso colaborativos más habituales en la docencia online de la programación y la forma en la que se llevarían a cabo en EclipseGavab. La validación de la herramienta se detalla en la Sección 5. Por último, la Sección 6 muestra las conclusiones y trabajos futuros.

2. Estado del arte

En la literatura científica se pueden encontrar diversos entornos de programación colaborativos. A continuación se describen brevemente algunos de los más relevantes:

• DPE [3]: Esta herramienta toma su nombre de Distributed Programming Environment (Entorno de Programación Distribuida). Está formado por un cliente que permite a un usuario, entre otras cosas, la edición compartida de código, la compilación local y remota y la comunicación a través de chat con soporte de audio y vídeo. Por otro lado, dispone de un

servidor que permite la administración del sistema, control de versiones de los ficheros fuente, etc. Esta herramienta dispone de mecanismos muy avanzados y completos para el desarrollo colaborativo. No obstante, bajo nuestro punto de vista adolece de un problema importante que reducirá en gran medida su aplicación en un contexto educativo. Esta herramienta no dispone de las funcionalidades de asistencia a la programación presentes en los entornos de desarrollo profesionales como el resaltado de sintaxis, ayuda integrada, compilación incremental, asistentes para la corrección de errores, etc. La falta de estas características hace que los alumnos puedan considerar el uso de otras herramientas más completas aunque dispongan de menos características colaborativas.

• Ripple [1]: Es una herramienta que se integra dentro del entorno de desarrollo profesional Eclipse [13] y permite que ciertas acciones que desarrolla un usuario puedan ser observadas por otro usuario. Las acciones que se propagan de un usuario a otro son el borrado y la creación de ficheros, la edición de código fuente y la ejecución de programas. Además, dispone de una ventana de chat que permite la comunicación entre usuarios. Esta herramienta puede utilizarse en diversos casos de uso habituales en la docencia de la programación. Por ejemplo, un alumno puede estar editando un programa y un tutor puede supervisar en tiempo real el proceso. Una de las desventajas de esta herramienta es que está restringida únicamente al lenguaje de programación Java lo que impide su uso en asignaturas que usen otro lenguaje. Otra de las desventajas de esta herramienta es que no permite que el usuario que está observando el desarrollo pueda editar el código fuente. Esto se traduce en que los consejos y propuestas de implementación del observador sólo se pueden llevar a cabo desde la ventana de chat, lo que limita su efectividad.

• RECIPE [9]: Es una herramienta formada por un cliente y un servidor que permite el desarrollo colaborativo con las siguientes funcionalidades: Sesión de shell colaborativa, compilación colaborativa, depuración colaborativa y edición colaborativa del mismo fichero de código fuente. Pese a que las características colaborativas son muy completas, bajo

nuestro punto de vista adolece del mismo problema que DPE, es decir, no dispone de las facilidades en el desarrollo de código que incorporan los entornos de programación profesionales como Eclipse, lo que hace que lo usuarios utilicen otras herramientas.

• SICAS+PlanEdit+COLLEGE+OOP-Anim [2]: En este trabajo se propone una integración de diversas herramientas educativas colaborativas. Nuestra propuesta no se centra de forma tan específica en la enseñanza de la programación sino más bien en proporcionar mecanismos colaborativos en un entorno de desarrollo de forma que los alumnos puedan colaborar en el desarrollo de aplicaciones. En este sentido, podemos decir que las herramientas educativas colaborativas no entran dentro de nuestro objetivo.

Con este análisis del estado del arte podemos observar que la principal desventaja de las herramientas colaborativas existentes consiste en que no proporcionan las funcionalidades de las que disponen los entornos de programación profesionales como Eclipse [13], Netbeans [17] o Visual Studio [21]. Entre estas características se encuentran el resaltado de sintaxis, la depuración con entorno gráfico o el marcado de errores de compilación en el código fuente. Por otro lado, algunas de las propuestas anteriores como Ripple [1] sólo permiten la colaboración cuando los programas se desarrollan en el lenguaje de programación Java. Esto limita mucho la utilización de esta herramienta, sobre todo en los primeros cursos de las titulaciones de informática en los que se sigue utilizando mayoritariamente Pascal como primer lenguaje de programación.

Bajo nuestro punto de vista, un entorno de desarrollo colaborativo debe tener, al menos, las siguientes características:

• Funcionalidades básicas: resaltado de sintaxis, errores de compilación marcados en el código, ayuda integrada y depuración con entorno gráfico.

• Edición colaborativa: Esta característica permite a un grupo de programadores ver y editar el mismo fichero de código fuente simultáneamente. Cuando varios programadores trabajan sobre el mismo

fichero de código, la edición colaborativa facilita el cambio de rol, pasando fácilmente de ser la persona que edita a la persona que supervisa. Cuando una herramienta colaborativa se utiliza para la supervisión de los alumnos por parte del profesor, la edición colaborativa permite que el profesor añada partes o modifique algunas de las que los alumnos han escrito, mejorando la comunicación.

• Varios lenguajes de programación: La herramienta colaborativa no debe imponer un lenguaje de programación concreto ya que esto limitaría su utilización. Las características colaborativas deben proporcionarse de forma independiente de un lenguaje concreto y la herramienta colaborativa debe estar diseñada de forma que se puedan incorporar nuevos lenguajes de programación cuando sea necesario.

• Mecanismo de comunicación integrado: Se debe incorporar en la herramienta algún mecanismo de comunicación de forma que los usuarios no tengan que utilizar otras aplicaciones o servicios independientes de la misma. Al menos la comunicación debería realizarse mediante chat, aunque la comunicación por voz o mediante videoconferencia es deseable.

• Envío, recepción y almacenamiento remoto de programas: Para soportar una efectiva colaboración entre diferentes desarrolladores es necesario que todos puedan gestionar adecuadamente el código desarrollado. Los sistemas de control de versiones como CVS [12] o SVN [18] permiten que el código esté almacenado en un servidor y queden registradas las modificaciones que los desarrolladores realizan sobre el código. Además, este servidor ofrece la oportunidad a un revisor de supervisar la evolución temporal de los cambios producidos en el código.

Con estas características en mente se ha desarrollado EclipseGavab, una herramienta colaborativa para la docencia online de la programación. En la siguiente sección se describen las características de esta herramienta.

3. Descripción de EclipseGavab

EclipseGavab es una distribución de Eclipse orientada a la docencia presencial y online de la informática. Esta distribución incluye soporte para varios lenguaje de programación, lo que permite su utilización en diferentes asignaturas, y un entorno colaborativo en el cual los alumnos pueden llevar a cabo su aprendizaje. Con EclipseGavab es posible aplicar el Aprendizaje Basado en Proyectos en la enseñanza online. En la Figura 1 se muestra el logotipo de esta herramienta.

Figura 1. Logotipo de EclipseGavab

Como se ha comentado anteriormente, para que una herramienta pueda utilizarse en el contexto de una metodología concreta, es necesario que sea suficientemente flexible. En el caso de la docencia de la programación, en diferentes asignaturas el alumno debe utilizar diferentes lenguajes de programación, y el soporte de éstos debe ser completo. La herramienta EclipseGavab permite el desarrollo de aplicaciones en los lenguajes más habituales en nuestra universidad y en otras universidades. En concreto, los lenguajes de programación soportados son Pascal, Pascal-FC (un dialecto de Pascal para el aprendizaje de la programación concurrente), Java, C y C++, Ruby y Haskell. El soporte de todos estos lenguajes incluye editores con resaltado de sintaxis y marcación de errores de compilación en el propio código, depuración, ayuda integrada, entre otras características. Todos estos lenguajes se utilizan en diversas asignaturas para enseñar diferentes paradigmas o metodologías de la programación.

Desde el punto de vista colaborativo, EclipseGavab incorpora un conjunto de herramientas que dotan al entorno de desarrollo de capacidades colaborativas como clientes de chat, edición compartida del código y un cliente del sistema de control de versiones Subversion [18] que permite utilizar repositorios de código para compartir programas. El control del repositorio subversión se ofrece en EclipseGavab a través del plugin Subversive. El chat y la edición compartida se implementan con el plugin Eclipse Communication Framework. Este plugin presenta características similares al módulo Collab de Netbeans.

Las Figura 2 y 3 muestran una sesión de edición compartida de código. La Figura 2 muestra el entorno EclipseGavab que está siendo utilizado por el profesor. La Figura 3 muestra el entorno que está siendo utilizado por el alumno. El profesor incluye un comentario en el código del alumno indicándole que la implementación que ha realizado de una determinada funcionalidad que se le requería en la práctica no considera un caso básico. En su editor, el alumno observa inmediatamente lo que el profesor escribe.

Eclipse es un sistema modular que permite la inclusión de funcionalidades para el desarrollo en diversos lenguajes de programación. Están disponibles componentes para muchos lenguajes de programación, pero al comenzar el trabajo con EclipseGavab no estaba disponible el soporte para Pascal, un lenguaje muy utilizado en los primeros cursos de enseñanza universitaria de la informática. Por este motivo, los autores han desarrollado los módulos necesarios para la incorporación de Pascal como lenguaje de programación de primera clase en Eclipse. Se han desarrollado herramientas de soporte que incluyen edición con resaltado de sintaxis, marcación de los errores de compilación en el propio código, depuración y ayuda integrada.

Figura 2. Sesión de EclipseGavab usada por un profesor

EclipseGavab es una herramienta multiplataforma de forma que pueda utilizarse tanto en Windows como Linux. Esto permite que los alumnos no estén obligados a utilizar un sistema operativo concreto para utilizar la herramienta. Además, se ha hecho un esfuerzo para que esta herramienta pueda instalarse con un único instalador, sin necesidad de instalar o configurar ninguna otra aplicación o compilador adicional. Incluye los compiladores y máquinas virtuales necesarios para los lenguajes soportados.

Con la adaptación metodológica necesaria y con la incorporación en un entorno de desarrollo las herramientas colaborativas necesarias pretendemos que el Aprendizaje Basado en Proyectos de la enseñanza online de la informática tenga una calidad similar a la modalidad presencial, mejorando enormemente la experiencia actual. Además, consideramos que la

adaptación metodológica y las conclusiones obtenidas podrán reutilizarse en otras asignaturas que utilizan el Aprendizaje Basado en Proyectos, permitiendo, por ejemplo, la tutorización de prácticas a distancia y el desarrollo colaborativo entre alumnos.

4. Casos de uso colaborativos

En el contexto del aprendizaje basado en proyectos se han identificado diversos casos de uso que requieren de herramientas colaborativas. A continuación se describen algunos de los más habituales y que están soportados por EclipseGavab debido a las diferentes funcionalidades que soporta.

Figura 3. Sesión de EclipseGavab usada por un alumno

4.1. Desarrollo de prácticas en grupo

En este contexto, los alumnos deben realizar una práctica en grupos de dos o más personas. El objetivo de este tipo de prácticas es que desarrollen la capacidad de trabajar en grupo, dividiéndose el trabajo a realizar y después integrándolo. Para ello es necesaria la comunicación entre los miembros del grupo. En este caso, el chat es una herramienta fundamental. Si los alumnos disponen de un chat integrado en el entorno de desarrollo, pueden tomar decisiones conjuntamente sin que tengan que estar físicamente juntos. Esto permite realizar prácticas en grupos incluso en asignaturas online. Compartir el código usando un repositorio de código remoto elimina la necesidad de enviar el código usando el correo electrónico, facilitando enormemente el proceso. Además, los cambios producidos por cada integrante del grupo son registrados en el servidor. Por último, el repositorio puede ser accesible para el profesor, quien se lo proporciona a los alumnos, y lo puede utilizar para tutorizar el desarrollo de las prácticas. Por ejemplo, el profesor podría pasar detectores de errores y de malas prácticas de manera automática (todas las semanas) revisando en mayor detalle aquellos proyectos que presenten mayores deficiencias en este sentido, dado que son los que corren mayor riesgo de sufrir retrasos y problemas en el momento de la entrega.

4.2. Clases prácticas

En este contexto el profesor puede realizar un seguimiento de los progresos de un alumno, e incluso utilizando la edición compartida, ayudarle a superar alguno de los obstáculos iniciales. El profesor puede publicar una primera versión (un bosquejo, por ejemplo) de la solución a un determinado problema en un repositorio de código remoto y los alumnos se lo pueden descargar desde el mismo entorno. Los alumnos pueden entregar sus prácticas utilizando el propio repositorio, y el profesor gestiona la fecha límite de entrega suspendiendo el acceso al repositorio de todas las cuentas en el momento en que dicha fecha vence.

4.3. Tutorización de alumnos

Determinadas herramientas colaborativas pueden mejorar la experiencia docente. En este caso de uso, un alumno con una duda relativa a una práctica o un ejercicio que está implementando, necesita ayuda del tutor. Lo habitual en este tipo de casos es que si la asignatura es presencial, el alumno vaya a ver físicamente al tutor con el programa en algún dispositivo electrónico para consultarlo; si la asignatura es online, el alumno y el tutor se pueden intercambiar el programa por correo electrónico. Ahora bien, si alumno y profesor cuentan con un entorno de desarrollo colaborativo que permita edición compartida del código, entonces ambos pueden ver de manera simultánea el código del alumno. El tutor puede hacer sugerencias a través del chat, e incluso modificar de manera remota el código del alumno. Las modificaciones pueden incluir la inserción de comentarios sobre cosas que deberían cambiarse o problemas que pueden presentarse debidos a ciertas decisiones tomadas en el código.

5. Validación de la herramienta

La herramienta propuesta ha sido utilizada los dos últimos años en la enseñanza de las estructuras de datos, la programación funcional, la programación orientada a objetos, la programación concurrente y en una asignatura de aprendizaje de los lenguajes C y C++. En total, más de 300 alumnos la han utilizado cada año. La herramienta ha sido muy bien acogida por los alumnos, principalmente por aquellos que deben programar en el lenguaje Pascal y que han estado utilizando el clásico Turbo Pascal.

No obstante, la versión utilizada por los alumnos no incorporaba las características colaborativas que se presentan en este trabajo. Estas características se han incorporado en la última versión de la herramienta (2.0) que se ha usado en el curso académico 2008/2009. Para comprobar la utilidad de las funcionalidades colaborativas de EclipseGavab se ha llevado a cabo una experiencia en varias asignaturas de la titulación de Ingeniería en Informática. Se les pasó un cuestionario antes de presentarles la herramienta y un cuestionar después de haberla usado. Tanto los cuestionarios como los

resultados obtenidos se pueden descargar de la página web https://www.gavab.es/eclipsegavab/innovacion.

Las asignaturas en las que se llevó a cabo la experiencia fueron las siguientes:

• Lenguajes Informáticos: Asignatura obligatoria de 2º curso de la titulación de Ingeniería en Informática. 70 alumnos.

• Seguridad Informática: Asignatura optativa de 5º curso de la titulación de Ingeniería en Informática. 25 alumnos.

• Documentación Electrónica: Asignatura optativa de 5º curso de la titulación de Ingeniería en Informática. 25 alumnos.

Con la encuesta previa a la presentación y uso de la herramienta se pretendía evaluar los procedimientos que los alumnos utilizan en el desarrollo de sus prácticas, en la entrega de las mismas y en su corrección. La encuesta también incluía preguntas sobre las herramientas online que se utilizan en la realización de las prácticas en grupo y en su tutorización. Conociendo sus hábitos y formas de proceder tendremos más posibilidades de ofrecerles las herramientas adecuadas para su trabajo. Por otro lado, conociendo la forma de trabajar de los alumnos de enseñanzas presenciales nos permite determinar qué actividades tendrían que realizar los alumnos de titulaciones online.

Una vez realizada la encuesta se presentó a los alumnos las características colaborativas de EclipseGavab en una sesión de prácticas. En esta sesión, el profesor guía a los alumnos paso a paso en la utilización del repositorio de código, el chat integrado y la edición compartida. De esta forma se pretende reducir al máximo posible la curva de aprendizaje que podría limitar el uso de las herramientas. Una vez que los alumnos conocen la herramienta, su uso es totalmente voluntario. Entendemos que si no imponemos su uso, podrán valorar de forma más adecuada su utilidad. No obstante, pese a que el uso de las herramientas colaborativas es opcional, la práctica debía entregarse usando el repositorio de código.

Cuando los alumnos entregaron la práctica se les pidió que completaran otro cuestionario sobre el uso de la herramienta. Con este cuestionario se pretendía conocer la opinión de los alumnos sobre la herramienta y que valoraran su utilidad en la realización de las prácticas en grupo.

No se presentan aquí las encuestas de forma completa y detallada por falta de espacio, en cambio, se mencionan los resultados más relevantes.

Resultados de la encuesta previa

• Para la realización de las prácticas un 95% de los alumnos utilizan mayoritariamente las reuniones presenciales, un 82% el correo electrónico para intercambiar opiniones de la práctica y un 87% para el envío del código y un 80% el chat. En cambio un 82% indica que utiliza poco o nada la videoconferencia o el audio y un 79% indica que tampoco utiliza un repositorio de código.

• Pese a que muchos alumnos utilizan las reuniones presenciales, un 50% de ellos considera que reunirse resulta difícil o bastante difícil.

• Pese a utilizar de forma cotidiana el chat con los compañeros de prácticas, no es un método usado para la comunicación con el profesor. Un 80% de los alumnos usan en muchas ocasiones las tutorías o clases prácticas y un 67% el correo electrónico. En cambio, prácticamente nadie ha usado el chat, videoconferencia o repositorio de código para la comunicación con el profesor en la supervisión de prácticas. Es una dato curioso y seguramente esté motivado por que el profesor no utiliza este tipo de mecanismos de comunicación, porque los alumnos sí lo usan entre sí.

• Un 65% de los alumnos ha entregado habitualmente o muy habitualmente las prácticas de forma presencial al profesor y un 86% mediante correo electrónico. No obstante, un 46% de los alumnos manifiesta que ha tenido diversos problemas relacionados con la entrega presencial (impresión, grabación CD, etc…) y un 57% indica que cuando envía por mail la práctica, no tiene notificación de que ha sido recibida o aceptada. Estos resultados indican que los

mecanismos de entrega de prácticas tienen algunos problemas que sería conveniente abordar.

• Un 76% de los alumnos no desean que los profesores les evalúen las prácticas sólo con la nota y sin ninguna explicación adicional. En cambio, un 60% prefieren una reunión presencial, un 48% la devolución de un documento en papel con anotaciones y un 50% un documento electrónico con anotaciones. Curiosamente la publicación de la nota exclusivamente suele ser el método más empleado por los profesores, principalmente debido a que no tienen mecanismo efectivos y sencillos de devolución de las correcciones a los alumnos.

Resultados de la encuesta posterior

• Un 79% de los alumnos realiza las prácticas en grupo, mientras que el 21% restante las realiza individualmente. El motivo principal para la realización de las prácticas en grupo se debe a que algunos alumnos trabajan y les resulta difícil coordinarse.

• Un 42% de los alumnos ha usado el repositorio de código para compartir código, un 35% para hacer copias de seguridad y un 31% para tener el código en diferentes máquinas. No obstante, un 62% de los alumnos sólo ha usado el repositorio de código para la entrega de las prácticas. Algunos alumnos indican que no lo han usado por el coste que supone aprender a usar la herramienta y usaban otros mecanismos clásicos como el mail. Otros no lo han usado porque desarrollaban la práctica de forma presencial. En una titulación online, las reuniones presenciales no son posibles, por tanto no se podrá usar ese mecanismo de comunicación. Respecto a la dificultad de aprendizaje, si este tipo de herramienta colaborativa se utiliza en más de una asignatura, el coste/beneficio aumenta considerablemente.

• Un 54% de los alumnos consideran que la herramienta es útil o muy útil para el desarrollo de las prácticas. Y un 79% de ellos consideran útil o muy útil conocer esta herramienta desde el punto de vista profesional.

• En una pregunta abierta se les ha preguntado a los alumnos qué aspectos negativos destacarían del repositorio en EclipseGavab, indicando que es complejo de utilizar y en algunas ocasiones aparecen problemas en su funcionamiento. Por ello, los alumnos demandan más documentación de uso.

• Un 40% de los alumnos prefiere la entrega de la práctica por repositorio frente a la entrega por mail, un 39% lo prefiere frente a la entrega física. No obstante, un 29% indica que es difícil conocer si la práctica se ha entregado correctamente. Estos resultados indican que los alumnos valoran este sistema pero necesitan validar la entrega de la práctica con algún mecanismo.

• Un 85% de los alumnos no ha usado el chat integrado en EclipseGavab. Esto se debe fundamentalmente a que utilizan otros mecanismos de chat profesionales como GTalk, Messenger, Skype, etc… Otros alumnos no lo usan porque tienen reuniones presenciales. Estos resultados muestran que si el chat de EclipseGavab no ofrece una ventaja sobre otros sistemas de chat, no lo usarán.

• Un 13% de los alumnos ha usado la edición compartida de código como mecanismo de autorización y un 19% para discutir aspectos de implementación con los compañeros (lo que hacen un total de 32%). No obstante, el 68% restante no lo ha usado porque hacían la práctica de forma individual, tenían reuniones presenciales o no lo han considerado necesario. Pese a ello, un 30% lo considera útil o muy útil para la realización de las prácticas y un 37% lo considera útil o muy útil desde el punto de vista profesional.

• Un 73% de los alumnos consideran que el uso de repositorio de código con EclipseGavab mejora bastante o mucho la realización de las prácticas. Un 45% de los alumnos consideran que la edición compartida mejora bastante o mucho la realización de las prácticas y un 31% consideran que el chat integrado mejora mucho o bastante la realización de las prácticas.

Al la vista de los resultados de la encuesta podemos sacar las siguientes conclusiones:

• Los alumnos valoran mucho más el repositorio de código que el resto de herramientas colaborativas. Valoran esta herramienta los que tienen reuniones presenciales y los que realizan la práctica de forma individual como mecanismo de copias de seguridad y disponibilidad.

• Los alumnos no valoran el chat integrado porque se reúnen presencialmente y utilizan otros sistemas de chat disponibles en Internet.

• La edición compartida de código es valorada sobre todo por los alumnos que no tienen reuniones presenciales.

6. Conclusiones y trabajos futuros

En este trabajo se presenta EclipseGavab, una herramienta colaborativa para la enseñanza online de la programación. Se han revisado otras herramientas colaborativas del estado del arte y se han identificado las funcionalidades esenciales en este tipo de herramientas. Se han descrito diversos casos de uso colaborativos en la enseñanza online que se pueden llevar a cabo con EclipseGavab. Por último se han mostrado los resultados más relevantes de encuestas realizadas a los alumnos antes y después del uso de la herramienta. Dado que los alumnos que han usado la herramienta eran alumnos de titulaciones presenciales, no han considerado útiles ciertas herramientas colaborativas porque podían tener reuniones presenciales. No obstante, los alumnos consideran que las herramientas colaborativas presentes en EclipseGavab mejoran la realización de las prácticas, en especial el repositorio de código.

EclipseGavab está compuesto por varias herramientas y plugins con las licencias libres GPL y EPL entre otras. Se puede descargar de la web http://www.gavab.es/eclipsegavab. Es importante mencionar que EclipseGavab es una distribución de Eclipse completa, que incluye todo lo necesario (plugins de Eclipse y compiladores) para el desarrollo de

aplicaciones. No obstante, todos los plugins de los que se compone se pueden descargar por separado para ser instalados en una distribución estándar de Eclipse. De esta forma se podría instalar únicamente el plugin de desarrollo de Pascal en una instalación de Eclipse.

Como trabajos futuros se plantea incorporar capacidades multimedia de comunicación, como audio y vídeo, para facilitar la colaboración. También se pretende incluir más servicios compartidos como son: pizarra virtual, presentaciones, depuración compartida, etc.

Por último, se espera llevar a cabo una experiencia en el curso académico 2009/2010 con alumnos de titulaciones online para comprobar el uso de la herramienta en un contexto en el que la reunión presencial no es posible.

Agradecimientos

Durante el desarrollo EclipseGavab muchos profesores y alumnos han participado evaluando y probando la herramienta y aportando ideas sobre nuevas funcionalidades. Parte del desarrollo de EclipseGavab se ha llevado a cabo en el marco de un Proyecto de Innovación Educativa dentro de la IV Convocatoria de Ayudas a la Innovación Educativa para el curso 2008/2009 de la Universidad Rey Juan Carlos.

Referencias

[1] Boyer, K. E., August A. Dwight, R. Taylor Fondren, Mladen A. Vouk, and James C. Lester. "A Development Environment for Distributed Synchronous Collaborative Programming". In Proceedings of the 13th Annual Conference on Innovation and Technology in Computer Science Education (ITiCSE '08), Madrid, Spain, 2008, 158-162.

[2] Bravo, C., Marcelino, M.J., Gomes, A., Esteves, M., Mendes, A.J. "Integrating educational tools for collaborative Computer Programming learning", Journal of Universal Computer Science, Volumen 11(9), 1505-1517, 2005.

[3] Chang-Hyun, J. and Allen J. Arnold, “A Portable and Collaborative Distributed Programming Environment”, The 2003 International Multi-Conference in Computer Science and Computer Engineering – The

International Conference on Software Engineering, (IMCCSCE – SERP’03), 198-203, Las Vegas, Nevada, June 23-26, 2003.

[4] Kouzes, R. T., J. D. Myers, and W. A. Wulf, "Doing Science on the Internet", IEEE Computer, Volumen 29(8), 40-46, 1996.

[5] Livingstone, D. and Lynch, K. "Group Project Work and Student-centred Active Learning: two different experiences". Studies in Higher Education Volumen 25(3), 325-345, 2000.

[6] Morrison, J. "Facilitating Collaborative Learning Within Programming Projects". Issues in Information Systems. Volumen 5(1), 2004.

[7] Palmer, J. D. and N. A. Fields, "Computer- Supported Cooperative Work: Guest Editors’ Introduction", IEEE Computer, 15-16. 1994.

[8] Shen, H. "Internet-Based Collaborative Programming Techniques and Environments". Tesis Doctoral. Griffith University. 2003.

[9] Shen, H. and C. Sun. "RECIPE: A Web-based Environment for Supporting Real-time Collaborative Programming". In Proceedings of International Conference on Networks, Parallel and Distributed Processing, pages 283–288, Tsukuba, Japan, ACTA Press, 2002.

[10] Slavin, R.E. Cooperative Learning: Theory, Research and Practice. NJ: Prentice Hall, 1990.

[11] Campus Virtual de la Universidad Rey Juan Carlos (URJC): https://www.campusvirtual.urjc.es/

[12] CVS: http://ximbiot.com/cvs/wiki/ [13] Eclipse: http://www.eclipse.org [14] Google Talk: http://www.google.com/talk/ [15] Moodle: http://www.moodle.org/ [16] MSN Messenger: http://messenger.live.com/ [17] NetBeans: http://www.netbeans.org/ [18] Subversion (SVN): http://subversion.tigris.org/ [19] Universidad Nacional de Educación a Distancia (UNED):

http://www.uned.es [20] Universitat Oberta de Catalunya (UOC): http://www.uoc.edu/ [21] Visual Studio: http://microsoft.com/VisualStudio/ [22] WebCT: http://www.webct.com/