Miguel Á. Redondo Profesor Asociado Paseo de la Universidad,4 13071 Ciudad Real 34 926295300 ext. 3717



Documentos relacionados
Capítulo 9. Archivos de sintaxis

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA

Software de Simulación aplicado a entornos de e-learning

Guía de los cursos. Equipo docente:

Arquitectura de Aplicaciones

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente

Elementos requeridos para crearlos (ejemplo: el compilador)

Este proyecto propone la investigación referente al modelado y desarrollo de agentes para

Educación virtual INFROMATICA ADRIAN GOMEZ ROMAN 2014/12/30

TECNÓLOGO EN INFORMÁTICA PLAN DE ESTUDIOS

<Generador de exámenes> Visión preliminar

Seminario Electrónico de Soluciones Tecnológicas sobre VPNs de Extranets

CURSO COORDINADOR INNOVADOR

PLATAFORMA VIRTUAL BASADA EN MOODLE

La netbook puede ser administrada durante su uso en el aula mediante el Software de Gestión del Aula.

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

FUNCIONALIDADES DE LA PLATAFORMA

Creación y administración de grupos de dominio

Sistema Operativo Windows

WINDOWS : TERMINAL SERVER

Informe final Proyecto de Innovación Docente ID11/129. Uso de FPGAs y medios audiovisuales en la docencia de la Electrónica Digital

Capítulo 11. Conclusiones y trabajo futuro

Código del programa: PEMDE. Programa Experto en MANEJO DE DATOS CON EXCEL. Modalidad: Virtual. Descripción del programa

M.T.I. Arturo López Saldiña

Webs de asignaturas y centros de recursos telemáticos on-line

Manual de uso de la plataforma para monitores. CENTRO DE APOYO TECNOLÓGICO A EMPRENDEDORES -bilib

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

Plataformas virtuales

Capítulo 5. Cliente-Servidor.

1 El trabajo expuesto está subvencionado por el proyecto de la URJC PGRAL-2001/14

Tareas básicas en OneNote 2010 Corresponde a: Microsoft Office OneNote 2010

UNIVERSIDAD DE SALAMANCA

MANUAL DE USUARIO DE LA APLICACIÓN DE ACREDITACION DE ACTIVIDADES DE FORMACION CONTINUADA. Perfil Entidad Proveedora

Este documento se distribuye bajo los términos de la licencia Creative Commons by sa. sa/2.

ETAPA: ESO NIVEL: 4º ESO MATERIA: INTRODUCCION A LA GESTION COMERCIAL OBJETIVOS

Vicerrectorado de Planificación, Calidad, Responsabilidad Social y Comunicación

Contenido Derechos Reservados DIAN - Proyecto MUISCA

Programa Maestro. E-Learning Class v 6.0

DISTRIBUCIÓN DEL PLAN DE ESTUDIOS EN CRÉDITOS ECTS Obligatorias: 30 Optativas: Prácticas Externas: 15 Trabajo Fin de Máster: 15 TOTAL: 60

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Metodología básica de gestión de proyectos. Octubre de 2003

CASO PRÁCTICO. CASOS PRÁCTICOS Internet (CP15 y CP16)

Instalar protocolo, cliente o servicio nuevo. Seleccionar ubicación de red. Práctica - Compartir y conectar una carpeta

10. El entorno de publicación web (Publiweb)

MANUAL DE USUARIOS DEL SISTEMA MESA DE SOPORTE PARA SOLICITAR SERVICIOS A GERENCIA DE INFORMATICA

Person IP CRM Manual MOBILE

Gestión de la Configuración

E-learning: E-learning:

Conferencia con MSN Messenger

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

FORMACIÓN ONLINE TÍTULOS PROPIOS Y FORMACIÓN ESPECÍFICA FORMACIÓN ONLINE, TIC S Y METODOLOGIAS. Tecnologías UPV

comunidades de práctica

TEMA 4: EMPEZANDO A NAVEGAR ESCUELA UNIVERSITARIA DE INFORMÁTICA. Raúl Martín Martín

SUMA (Campus Virtual de la Universidad de Murcia)

SCRAE Web: Sistema de Corrección y Revisión Automática de Exámenes a través de la WEB

PROCEDIMIENTO ESPECÍFICO. Código G Edición 0

DOCUMENTOS COMPARTIDOS CON GOOGLE DOCS

2 EL DOCUMENTO DE ESPECIFICACIONES

Administración del conocimiento y aprendizaje organizacional.

Windows Server 2012: Identidad y Acceso. Módulo 2: Descripción General de Windows Server 2012 Remote Desktop Services.

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl

GUÍA BÁSICA USUARIO MOODLE 2.6

SIMULACIÓN DE SISTEMAS (I. ELÉCTRICA/I. ELECTRÓNICA)

DISEÑO CURRICULAR EN COLOMBIA. EL CASO DE LAS MATEMÁTICAS

Studium, Campus Virtual de la Universidad de Salamanca.

Presentaciones. Con el estudio de esta Unidad pretendemos alcanzar los siguientes objetivos:

Diseño de páginas web 2011

ESCUELA SUPERIOR DE INFORMATICA Prácticas de Estadística UNA SESIÓN EN SPSS

La Tecnología Informatica aplicada a los centros escolares. LEPRE. Herramienta digital Jclic. Lic. Cruz Jorge Fernández Aramburo.

GUÍA TÉCNICA PARA LA DEFINICIÓN DE COMPROMISOS DE CALIDAD Y SUS INDICADORES

LiLa Portal Guía para profesores

Prácticas ITIL para un mejor flujo de trabajo en el helpdesk

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

Qué necesito saber para tener mi sitio web en Internet?

Las metodologías «on line» se han convertido en la segunda opción para la formación en las empresas españolas.

SISTEMA AUTOMATIZADO PARA ACTIVIDADES DE AUTOEVALUACIÓN DESARROLLADO COMO SERVICIO WEB: SISTEMA e-val

Proporciona motivación a los alumnos para aprender de manera atractiva e interactiva.

FACULTAD DE CONTADURIA Y CIENCIAS ADMINISTRATIVAS FINANZAS I NORMAS DE INFORMACION FINANCIERA

Introducción a las redes de computadores

Departamento CERES Área de Tarjetas Inteligentes Manual de Usuario

Educación y capacitación virtual, algo más que una moda

Oficina Online. Manual del administrador

Roles y Características

Guía rápida de la Oficina Virtual Área Web y Administración Electrónica

Usos de los Mapas Conceptuales en Educación

CONSEJERIA DE EDUCACIÓN, FORMACIÓN Y EMPLEO

Un modelo de tutorización telemática para la UNED

La evaluación en los cursos online

INFORMÁTICA IE. Términos a conocer y conceptos básicos. World Wide Web (WWW):

Guía curso Integrando las TICS en Segundo Ciclo Básico Guía de uso para crear videos en Windows Movie Maker

Curso Online de Microsoft Project

Introducción a los sitios de SharePoint en Office 365

MANUAL DE AYUDA. MODULO SAT (Anexo Integración AGIL SAT)

Sistemas de Gestión de Calidad. Control documental

Guía de Apoyo Project Web Access. (Jefe de Proyectos)

Microsoft Excel 2013 nivel experto

Capítulo IV. Manejo de Problemas

GUÍAS FÁCILES DE LAS TIC

PLAN DE COORDINACIÓN DOCENTE INFORME DE ACCIONES ACADÉMICAS Y DE

Transcripción:

Aprendizaje en grupo de la programación mediante técnicas de colaboración distribuida en tiempo real Crescencio Bravo Profesor Asociado Paseo de la Universidad, 4 13071 Ciudad Real 34 926295300 ext. 3717 Crescencio.Bravo@uclm.es Miguel Á. Redondo Profesor Asociado Paseo de la Universidad,4 13071 Ciudad Real 34 926295300 ext. 3717 Miguel.Redondo@uclm.es Manuel Ortega Catedrático de Universidad Paseo de la Universidad,4 13071 Ciudad Real 34 926295481 Manuel.Ortega@uclm.es ABSTRACT En la realización de ejercicios prácticos de programación en los primeros cursos de enseñanza universitaria de informática suele producirse una situación de trabajo en parejas frente a un ordenador: un estudiante maneja el teclado y el otro revisa su trabajo. En esta configuración cabe plantearse el empleo de estrategias y soporte colaborativos para mejorar el proceso de enseñanza-aprendizaje, posibilitando un trabajo en grupo y a distancia. En este trabajo modelamos una propuesta de sistema colaborativo síncrono para el aprendizaje de la programación que pueda ser utilizado tanto en los laboratorios de prácticas como desde otros espacios (en casa, bibliotecas...). De acuerdo con este modelo hemos construido un sistema que soporta la edición, compilación y ejecución de programas en grupo por parte de los alumnos, y la revisión del trabajo efectuado por los estudiantes por parte del profesor para extraer conclusiones sobre el proceso de programación en grupo. Keywords CSCW/CSCL, Programación en Parejas, Programación Colaborativa, Aprendizaje a Distancia 1. INTRODUCCIÓN El área de los Sistemas Colaborativos se ha desarrollado rápidamente en los 90 y está alcanzando plena madurez. Estos sistemas se vienen aplicando con éxito tanto en diferentes situaciones de trabajo (CSCW, Computer-Supported Cooperative Work) como para el aprendizaje (CSCL, Computer-Supported Collaborative Work). Uno de los dominios en los que tiene aplicación el paradigma de colaboración es la construcción de programas de ordenador o programación. En las asignaturas de Introducción a la Programación de las diferentes enseñanzas universitarias españolas se imparten clases prácticas en las que se emplean lenguajes como Java, Pascal o C. Inicialmente se plantean unos problemas que los alumnos tienen que resolver en grupos de dos. Estos ejercicios suelen ser de mediana dificultad y permiten practicar los diferentes aspectos de la programación. En Se concede el permiso para la reproducción digital o impreso total o parcial de este trabajo sin contraprestación económica únicamente para la utilización personal o en clase. En ningún caso se podrán hacer o distribuir copias de para su explotación comercial. Todas las copias deben de llevar esta nota y la información completa de la primera página. Para cualquier otro uso, publicación, publicación en servidores, o listas de distribución de esta información necesitara de un permiso específico y/o el pago correspondiente. Interacción '04 3-7 Mayo, 2004, Lleida, España. cada grupo los alumnos colaboran entre sí cara a cara al modelar el problema mediante diferentes representaciones, al editar el código fuente, al compilar, al depurar errores y al ejecutar el programa. Esta organización en parejas viene principalmente motivada por las limitaciones que existen en el número de ordenadores en los laboratorios de prácticas o para dar oportunidades a los alumnos de trabajar en equipo de cara a facilitar en el futuro su integración en los equipos de desarrolladores de las empresas. Este enfoque de Programación en Parejas (Pair Programming) es popular en el ámbito empresarial, principalmente en las organizaciones que utilizan la Programación Extrema (extreme Programming, XP). En este tipo de tarea dos programadores diseñan software juntos en un mismo ordenador, trabajando colaborativamente en el mismo algoritmo, diseño o tarea de programación. La situación es idéntica al caso de enseñanza práctica anterior. El modelo de Programación en Parejas se ha mostrado beneficioso en estudiantes de programación. Estudios cuantitativos y cualitativos demuestran que el uso de esta aproximación en las clases de introducción a la programación mejora el aprendizaje del alumno, aumenta su satisfacción, reduce la frustración compartida de los estudiantes y disminuye el número de defectos de los programas [10]. Pero cuando no es posible que los dos alumnos estén presentes, puede utilizarse la tecnología informática para soportar colaboración a distancia. Surge, por tanto, el concepto de Programación Colaborativa por ordenador como la aplicación de estrategias colaborativas y soporte informático a la Programación en Parejas. Esto permitiría no sólo a dos alumnos, sino a tres o cuatro, trabajar en grupo. Estudios previos [7, 11] indican que la Programación Colaborativa no sólo acelera los procesos de resolución de problemas, sino que mejora la calidad de los productos software. Según Johnson [5], el proceso de analizar y criticar artefactos de software producidos por otras personas es un potente método para aprender lenguajes de programación, técnicas de diseño y dominios de aplicación. Un sistema que permite a programadores distribuidos geográficamente participar concurrentemente en el diseño, codificación, prueba, depuración y documentación de un mismo programa es RECIPE (REal-time Collaborative Interactive Programming Environment) [8]. Esta herramienta permite que los compiladores y depuradores monousuario pueden convertirse fácilmente en aplicaciones colaborativas sin modificar los ejecutables (transparencia) y que los editores colaborativos existentes puedan integrarse en el sistema. Sin embargo, no registra el trabajo de los programadores 351

para obtener conclusiones sobre su trabajo, ni ofrece herramientas especializadas de comunicación y awareness. Aunque el laboratorio es el espacio natural para la realización de estos trabajos, los alumnos no siempre los concluyen en el tiempo previsto, teniendo que terminarlos en horario extraescolar, en sus casas o en aulas de libre uso. Además, en muchas ocasiones se proponen tareas de autoestudio que también pueden ser abordadas en grupo. Con nuestra propuesta se permite y favorece el trabajo a distancia, optimizando el tiempo de dedicación de los alumnos a la asignatura que, a veces, tienen que desplazarse a casa del compañero o al centro de estudios para terminar los ejercicios. Un factor a tener en cuenta como beneficio adicional es el aspecto motivante de la colaboración a distancia, que ofrece herramientas cercanas a los jóvenes como el chat y el correo electrónico. Con este nuevo enfoque el escenario que se produce consiste en que los alumnos (dos o tres), desde casa o desde su centro educativo, editen conjuntamente un programa que supone una solución a un problema previamente planteado, que lo compilen simultáneamente, que lo depuren y que finalmente lo ejecuten. Para que esto sea factible se requieren conexiones de alta velocidad que posibiliten la interacción síncrona, pero no debemos olvidar que actualmente hay una alta disponibilidad de conexiones ADSL en los hogares y que los centros universitarios cuentan con redes de alta velocidad. En este trabajo nos planteamos la exploración de estas posibilidades y el modelado de este tipo de sistemas para la realización de ejercicios prácticos de programación, en Java o en cualquier otro lenguaje. De esta manera se tendría un sistema de Programación Colaborativa que podría utilizarse tanto como sistema de CSCW/Groupware en las empresas, como sistema de CSCL para el aprendizaje en centros de enseñanza. El artículo se organiza de la siguiente manera: en el siguiente apartado se presenta brevemente DomoSim-TPC, un entorno de CSCL que servirá para aplicar sus planteamientos y parte de su infraestructura al tipo de sistemas que abordamos; en el apartado 3 se modela el proceso de programación colaborativa y se describen los componentes que formarían este tipo de sistemas; en el apartado 4 se tratan aspectos del soporte pedagógico; el siguiente apartado muestra un primer prototipo de sistema; y, finalmente, en el apartado 6 se muestran las conclusiones del trabajo y las líneas de trabajo futuro. 2. DOMOSIM-TPC: UN SISTEMA COLABORATIVO DE DISEÑO DomoSim-TPC 1 [1] es un entorno de aprendizaje colaborativo del diseño domótico mediante la resolución de problemas complejos, con el que los alumnos discuten, diseñan y simulan en superficies de trabajo compartidas. El sistema soporta todo el proceso de enseñanza-aprendizaje, incluyendo herramientas para la organización y análisis de actividades por parte del profesor. Este sistema propone un modelo semiestructurado de interacción para la resolución colaborativa síncrona de problemas de diseño, que se basa en técnicas como los Protocolos de Colaboración [9] para estructurar el proceso de aprendizaje, el Lenguaje/Acción [12] para instrumentar la ejecución de ciertas tareas y la Estructuración Flexible [6] para construir herramientas efectivas de comunicación y coordinación. Un protocolo de colaboración describe los espacios de trabajo compartidos disponibles y cómo el grupo de estudiantes puede navegar a lo largo de estos espacios. Un espacio de trabajo es una zona de elaboración e intercambio de información, independiente pero interrelacionada con las otras del sistema. Los espacios propuestos por este sistema son cinco: 1. Diseño: Donde se construye el modelo que supone una solución al problema. 2. Organización del Trabajo: Donde los alumnos distribuyen su trabajo definiendo un reparto de acciones. 3. Definición de Parámetros: Donde se definen las variables generales del problema. 4. Casos e Hipótesis: Donde los alumnos definen casos e hipótesis de simulación. 5. Simulación: Donde se simula el modelo y se experimenta con él. Estos espacios de trabajo integran diferentes mecanismos que soportan el proceso de diseño y simulación en grupo [2]: Mecanismos de manipulación directa: Los alumnos diseñan y simulan los modelos mediante acciones elementales de manipulación directa, siguiendo la metáfora de la pizarra electrónica colaborativa basada en el modelo objeto-acción. Soporte para la comunicación y la coordinación: Al ir diseñando y simulando la solución a un problema los alumnos pueden hacer uso de un Chat Estructurado y de una Herramienta de Toma de Decisiones. Esta última se invoca mediante un botón disponible en el Chat Estructurado. Técnicas de awareness: Para facilitar la colaboración en tiempo real se ha dado una gran importancia al awareness [4], entendido como la percepción y conocimiento de la interacción que efectúan otras personas dentro de un espacio de trabajo compartido. Para ello se utilizan telepunteros, listas de participantes y listas que recogen las interacciones efectuadas. En la figura 1 se muestra la principal herramienta de DomoSim- TPC: la herramienta que soporta el Diseño Colaborativo. A la izquierda se muestran las barras de herramientas de operadores (1) y de enlaces (2), y a la derecha las barras de herramientas de dibujo (3). Los operadores y los enlaces, que los relacionan, son los componentes de los modelos. Pueden verse también el Panel de Sesión (4) y el Chat Estructurado (5), y a la izquierda de éste la zona de mensajes de interacción y de error (6). La superficie de trabajo (7) contiene el plano de la vivienda sobre el que se construye el modelo. El modelo de datos que constituye la solución y el proceso de construcción que da lugar a él son persistentes, quedando almacenados y estando disponibles tanto para la consulta del profesor como para la continuación del trabajo en otra sesión. Esta característica diferencia a los sistemas de CSCL de los sistemas de CSCW; para los primeros es tan interesante el producto como el propio proceso que permite construirlo. 1 http://chico.inf-cr.uclm.es/domosim 352

Figura 2. Protocolo de Colaboración para Programación. Figura 1. Espacio de Trabajo de Diseño. 3. MODELADO DEL PROCESO DE PROGRAMACIÓN COLABORATIVA Vamos a aplicar el modelo de estructuración y los mecanismos de soporte a la colaboración del sistema DomoSim-TPC a los sistemas de Programación Colaborativa. En el proceso de programación distinguimos varias etapas (edición del código fuente, compilación y ejecución de los programas objeto) que se describirán con un protocolo de colaboración. Al utilizar el sistema los estudiantes realizan tareas del dominio y tareas de comunicación y coordinación. Las tareas del dominio son las relacionadas con la programación. Las tareas de comunicación y coordinación permiten intercambiar información relativa al dominio, coordinar acciones y alcanzar acuerdos. 3.1 Protocolo de Colaboración Identificamos un protocolo de colaboración de tres etapas que se describe con el grafo de la figura 2. Cada etapa o nodo se corresponde con un espacio de trabajo donde realizar cada una de las tres tareas específicas del dominio. El espacio principal es el de Edición/Revisión, en el que un único usuario edita el código fuente. Este espacio también puede utilizarse para revisar el código sin realizar cambios en él. Desde este espacio puede realizarse la compilación o directamente pasar a la ejecución, en este último caso cuando ya se dispone del programa objeto. El espacio de Compilación es de corta permanencia para el grupo: el sistema invocará al compilador correspondiente y mostrará su salida en el espacio de trabajo. Los alumnos pueden entonces observar los resultados de la compilación (mensajes de error, números de línea...), discutirlos y realizar la depuración en el caso de que hubiese errores, trasladándose para ello al espacio de Edición/Revisión. Si no hay errores pueden acceder al espacio de Ejecución. La ejecución del programa se realiza en una consola específica. Al finalizar la ejecución el grupo siempre se situará en el espacio de Edición/Revisión, para comenzar el proceso nuevamente, rectificando el programa si no se obtienen los resultados esperados. En la Programación en Parejas se identifican usuarios con dos tipos de roles diferentes [10]: realizador y observador. Durante la edición, el realizador tiene el control de la interacción (teclado/ratón) y realiza el diseño o codificación, y el observador revisa el trabajo del compañero buscando defectos, considerando alternativas y planteando preguntas. Mientras el realizador reflexiona sobre su trabajo el observador solicita aclaraciones y explicaciones según evoluciona la solución. Para los sistemas de Programación Colaborativa modelamos también una tarea de edición monousuario tal y como propone este método, soslayando así las dificultades de implementación de un editor colaborativo síncrono y dando más importancia al cambio en el turno de edición que tendrán que gestionar los alumnos. La navegación entre espacios de trabajo se instrumenta mediante mecanismos de proposición (figura 3). Un primer alumno hace una propuesta de desplazamiento y los compañeros (o el compañero) le contestarán con un acuerdo o desacuerdo. Las propuestas y reacciones a éstas se expresan mediante botones. Cuando todos los alumnos están de acuerdo o se abstienen se produce el desplazamiento al nuevo espacio. La abstención se produce automáticamente por el sistema cuando no se ha respondido durante un tiempo de 10 segundos, aunque este tiempo es configurable. Si no se produce ningún acuerdo o no hay propuestas, el grupo no puede trabajar, de manera que la responsabilidad de avanzar en el trabajo recae en el grupo y en sus participantes. Este mismo mecanismo será el utilizado para dar el turno de edición, para realizar la compilación y para comenzar la ejecución del programa. Figura 3. Grafo conversacional para una propuesta. 353

3.2 Soporte para las Tareas del Dominio Las tareas del dominio se materializan siguiendo el paradigma de manipulación directa basado en el modelo objeto-acción. En la edición, los objetos son las partículas del lenguaje (variables, métodos, clases...) o, a un nivel de granularidad menor, los caracteres que se insertan o eliminan en el código fuente. Las acciones son las de insertar, eliminar, seleccionar, guardar, cortar, pegar, etc. En los espacios de compilación y ejecución no hay objetos ni acciones destacados. La manipulación directa también se emplea para las tareas de coordinación. Los objetos son las abstracciones que modelan los procesos de proposición y comunicación: turno de edición, propuesta de compilación y propuesta de ejecución; y las acciones son las de proponer, estar de acuerdo, estar en desacuerdo y abstenerse, que se disparará en ausencia de las otras. 3.3 Soporte para la Comunicación y la Coordinación Los instrumentos de comunicación y coordinación son utilizados desde todos los espacios. La comunicación queda materializada mediante un Chat Estructurado, basado en la Estructuración Flexible para la comunicación propuesta por Lund et al [6], que permite la comunicación textual entre los aprendices. Este chat es estructurado porque ofrece un conjunto preestablecido de actos de comunicación. Los mensajes que pueden enviarse se clasifican de acuerdo a tres criterios: Tipo de mensaje: Según el tipo los mensajes pueden ser aserciones, preguntas y respuestas. Lugar en el diálogo: De acuerdo al lugar que ocupa el texto del mensaje en el diálogo se tienen mensajes iniciales y reactivos. Tipo de adaptación: En función del tipo de adaptación del mensaje al contexto se tendrían mensajes no adaptables y mensajes adaptables. Los mensajes adaptables recogen información de las tareas del dominio y generan mensajes particulares para estas situaciones. Por ejemplo, en función de las clases, métodos y variables existentes en el código fuente se pueden enviar mensajes que incluyan a estos elementos. Proponemos los siguientes mensajes específicos para los sistemas de Programación Colaborativa: Mensajes de discusión/argumentación: - Pienso que... : aserción, inicial y no adaptable. - Pienso lo mismo : aserción, reactivo y no adaptable. - No pienso así : aserción, reactivo y no adaptable. - Por qué...? : pregunta, inicial y no adaptable. - No sé : respuesta, reactivo y no adaptable. - Porque... : respuesta, reactivo y no adaptable. Mensajes relativos a objetos del dominio: Tendrán una conexión con los diferentes elementos del dominio, contenidos fundamentalmente en el espacio de Edición, tales como clases, métodos, atributos, etc. Se proponen dos tipos de mensajes: - Falta el/la (clase método atributo palabra reservada variable) <objeto> : aserción, inicial y adaptable. - Veo un fallo en el/la (clase método atributo palabra reservada variable) <objeto> : aserción, inicial y adaptable. Mensajes libres: Para ofrecer una posibilidad adicional de comunicación a los usuarios que aporte más libertad pueden utilizarse mensajes con texto libre, pero siempre instruyendo a los alumnos a la hora de preparar las experiencias en el uso preferente de los mensajes estructurados, que estructuran la comunicación con unas formas semánticamente comprensibles y adecuadas para la tarea del dominio y facilitan el posterior análisis de la comunicación. Por este motivo, el chat registra los cinco últimos mensajes de texto libre introducidos, lo que ahorra tiempo de tecleo y centra la atención de los alumnos en un pequeño conjunto de mensajes. En determinadas experiencias o en diferentes momentos este tipo de mensajes podría no estar disponible para forzar a los alumnos a utilizar los otros dos tipos de mensajes. Aunque existe la posibilidad de utilizar canales de audio y vídeo durante cualquier actividad colaborativa, incluida la programación, la comunicación estructurada textual tiene una ventaja frente al audio y el vídeo: permite registrar los actos de comunicación de manera que puedan analizarse con posterioridad. De un flujo de audio o vídeo es difícil extraer información sobre la comunicación con significado. En cambio, si cada mensaje del chat se almacena, este registro puede analizarse mediante diversas técnicas. Este enfoque ha sido explorado en el Subsistema de Monitorización y Análisis de DomoSim-TPC [1]. El soporte de coordinación queda reflejado por los tres procesos de proposición descritos y específicos a cada una de las tareas o espacios del dominio, que, como la navegación entre espacios de trabajo, siguen el grafo conversacional de la figura 3. La utilización de acciones (botones) para representar actos del habla como proponer, estar de acuerdo, etc. se inspira en la Perspectiva del Lenguaje como Acción [12]. 3.4 Técnicas de Awareness En la realización de las tareas del dominio y las de coordinación y comunicación se dispone de funciones de awareness. Este soporte se ofrece mediante los siguientes elementos: Panel de Sesión: Es el principal elemento de awareness. Muestra una lista de participantes en la sesión. Junto al nombre de cada participante se acompaña la foto para reducir la barrera que supone la colaboración remota. El propio usuario queda resaltado en el panel con un recuadro para que éste conozca su propia identificación. Cada usuario se muestra con un color particular que se utiliza para identificar sus interacciones, que se reflejarán con el mismo color. De manera adicional este panel muestra el estado en que se encuentra cada usuario. Proponemos los siguientes estados: editando, comunicando, observando, compilando y ejecutando. Telepunteros: Aunque no es necesario tener telepunteros de dibujo por cada usuario ya que no existe una pizarra colaborativa, sí es interesante mostrar el puntero de edición del usuario que tiene el turno. Por tanto, sólo hay que mostrar un único telepuntero, que será un cursor de edición textual, que muestre la zona en la que se está editando o el carácter que se está manipulando. 354

Listas de interacción: Existen tres áreas de coordinación: cambio de turno, propuesta de compilación y propuesta de ejecución. Cada una de ellas incorpora una lista de mensajes que muestra tanto las propuestas iniciales como los mensajes de acuerdo/desacuerdo, incluyendo en todos los casos el emisor del mensaje. Awareness en la comunicación: El Chat Estructurado incluye una lista que refleja los mensajes enviados junto con su autor. 4. INTERVENCIONES DEL SISTEMA Y MONITORIZACIÓN DEL PROCESO Para el éxito de la tarea del aprendizaje de la programación mediante la elaboración de programas es necesaria una adecuada gestión del turno de edición. En el sistema modelado, esta gestión es responsabilidad de los alumnos. Uno de los objetivos de la investigación consiste en explorar cuáles de los mecanismos de cambio de turno es más adecuado en estas situaciones. Es cierto que la asignación de turno permite que las carencias de un alumno puedan completarse con los conocimientos del otro. Pero una libertad tan grande abre la puerta a que un alumno nunca participe, asumiendo el otro todo el protagonismo. Una ventaja de la Programación Colaborativa por ordenador frente a la Programación en Parejas es que el cambio de turno puede ser responsabilidad del sistema, de manera que el tiempo se reparta por igual entre los participantes obligando a que participen todos. O pueden establecerse otros mecanismos de negociación que aseguren la participación y maximicen el beneficio pedagógico. Además de la estructuración del cambio de turno existen muchas otras posibilidades pedagógicas de guía al proceso, basadas en las ideas de los Sistemas Tutores Inteligentes, pero esto será un objetivo futuro del sistema. Sí consideramos adecuado incorporar una función que permita consultar la estadística de errores para que los propios alumnos puedan comprobar cuáles suelen cometer, para prestar más atención a los aspectos relacionados con esos errores y poder discutir al respecto. La labor de análisis del trabajo efectuado por los alumnos, durante las experiencias o al concluir éstas, es especialmente interesante en este dominio. Si pensamos en un grupo de alumnos trabajando, en cada una de las tareas los alumnos tienen un comportamiento diferente. En la edición todos contribuyen con ideas o con acciones de edición. Durante la compilación se mantienen a la expectativa para observar el resultado; finalizada la compilación hay una labor de reflexión, sobre todo cuando ha habido errores, que da lugar a la corrección de los mismos. Finalmente, durante la ejecución, hay una labor común de definición de los datos de entrada y de interpretación de los datos de salida, buscando funcionamientos inadecuados o errores de ejecución. Estos comportamientos, que pueden contribuir a diseñar un sistema más efectivo, pueden estudiarse con diferentes técnicas de Inteligencia Artificial, como la Lógica Difusa (Fuzzy Logic), las Redes Neuronales o los Algoritmos Genéticos. Todo el desplazamiento del grupo a través de los espacios, la comunicación escrita y los procesos de proposición quedan convenientemente registrados en el sistema. Pero el registro de las acciones en el editor, sobre todo las relativas a la corrección de un error de programación, no es una cuestión trivial porque hay que relacionar cada acción con el error correspondiente. Surgen dos posibilidades: 1. Que el alumno relacioné qué cambio en la edición se corresponde con qué error de compilación. Esto facilita el registro pero da más trabajo al alumno. Para ello se podría habilitar una lista de mensajes de error; el alumno primero selecciona el error a corregir y modifica el código fuente. 2. Que el sistema relacione cada error con su corrección. Este mecanismo tiene como ventaja que el registro es transparente al usuario, pero es complejo de llevar a la práctica. Una primera aproximación se basaría en los números de línea en los que se ha producido el error y en los números de línea en los que se realizan cambios. Pero hay que tener en cuenta que como consecuencia de corregir un error el número de línea puede cambiar (si se ha eliminado o insertado alguna), que pueden hacerse otras correcciones o mejoras que no procedan de ningún error y que ciertos errores producidos en una línea pueden corregirse en otras diferentes. Para facilitar esta segunda posibilidad y registrar correctamente los errores producidos es preciso definir cómo se muestran las líneas de error y los tipos de error en el compilador concreto que se esté utilizando, ya que, no olvidemos, el sistema es independiente del lenguaje utilizado, simplemente éste debe disponer de un compilador y de un intérprete o máquina virtual, o debe generarse directamente un ejecutable. Esta definición se realizará utilizando una función de configuración. 5. EL SISTEMA COLLEGE COLLEGE (COLLaborative Edition, compiling, and Execution of programs) es un sistema desarrollado para soportar la tarea de la programación en grupo, tal y como se ha descrito anteriormente. En la figura 4 se muestra la interfaz que permite acceder al sistema. Tras una primera conexión al servidor, el usuario dispone de una herramienta para gestionar sesiones. En este caso, a diferencia de DomoSim-TPC, no es el profesor el que se encarga de definir las sesiones de trabajo, sino que se encargan los propios alumnos. Una sesión se define mediante un nombre, un tipo, un fichero y un horario en el que se puede realizar. El fichero contiene un enunciado del problema a resolver que podrá consultarse desde COLLEGE. Dada una sesión, los alumnos podrán consultar los participantes que se encuentran actualmente conectados a ella. Figura 4. Conexión y gestión de sesiones en COLLEGE. La figura 5 muestra una sesión de trabajo con COLLEGE. Pueden verse las áreas para las tareas de Edición/Revisión (1) y 355

Compilación (2), así como las tres áreas para los procesos de proposición (3, 4, 5), el Panel de Sesión (6) y el Chat Estructurado (7). En la figura los alumnos están elaborando un programa que permita resolver ecuaciones de segundo grado. Al compilar el código se producen algunos errores, y los alumnos discuten con el fin de resolverlos. Cuando el programa está finalizado y los alumnos están de acuerdo en su ejecución, se abrirá una consola de ejecución como la que se muestra en la figura 6. Durante la ejecución en esta consola está disponible el Chat Estructurado. Nótese que el lenguaje utilizado en este ejemplo es Java. Figura 5. Un sesión de Programación Colaborativa en COLLEGE. Figura 6. Consola de ejecución de programas (lenguaje Java). El sistema está desarrollado en Java, y opera siguiendo un modelo cliente/servidor sobre redes TCP/IP para facilitar su utilización sobre Internet/intranet. El subsistema de sincronización opera sobre la Infraestructura de Sincronización para Sistemas Colaborativos (ISSC), desarrollada por nuestro grupo a partir del Java Shared Data Toolkit 2 (JSDT), que presenta una arquitectura de comunicaciones centralizada. 6. CONCLUSIONES Y TRABAJO FUTURO El sistema COLLEGE pretende ser un medio para investigar aspectos de comportamiento en el trabajo de edición, compilación y ejecución en grupo de programas, así como un sistema de soporte al aprendizaje de la programación, de manera que se puedan introducir mejoras en la enseñanza/aprendizaje de esta disciplina. En su desarrollo hemos aplicado los modelos y arquitecturas que propone el subsistema de Diseño y Simulación de DomoSim-TPC y aprovechado la infraestructura tecnológica construida en dicho proyecto. COLLEGE estructura la tarea de la programación mediante Protocolos de Colaboración, y combina la realización de tareas del dominio mediante manipulación directa con un soporte colaborativo para la comunicación y la coordinación basado en la Estructuración Flexible y la Perspectiva del Lenguaje como Acción. Este sistema está siendo evaluado actualmente. Antes de ser utilizado para la enseñanza de la programación en Java, va a ser empleado en la construcción de programas para practicar aspectos relacionados con la protección y seguridad de la información, como el cifrado de datos (en lenguaje C) y los protocolos de seguridad (en lenguaje Java). Una vez procesados los primeros resultados, que permitirán mejorar el sistema, el sistema se utilizará en las clases prácticas de la asignatura de Metodología y Tecnología de la Programación. En cuanto al trabajo futuro, estamos colaborando con la Universidad de Coimbra para conectar COLLEGE con el sistema OOP-ANIM [3], que permite visualizar una representación animada de la ejecución de un programa en Java. OOP-ANIM es una herramienta monousuario, y será convertida en herramienta colaborativa de manera sencilla utilizando la ISSC. A un nivel más general, nos planteamos el objetivo de abordar tareas propias de la ingeniería del software, como el modelado estructural o dinámico, aprovechando las ideas y resultados obtenidos de la presente investigación (COLLEGE) y del sistema DomoSim-TPC. Se utilizarán técnicas de especificación que permitan flexibilizar los componentes desarrollados para que permitan abordar diferentes dominios, tareas y situaciones. 7. AGRADECIMIENTOS Este trabajo de investigación ha sido parcialmente financiado por la Red Iberoamericana de Informática Educativa (RIBIE) y la Universidad de Castilla - La Mancha (España). 8. REFERENCIAS [1] Bravo, C. (2002) Un Sistema de Soporte al Aprendizaje Colaborativo del Diseño Domótico Mediante Herramientas de Modelado y Simulación. Tesis Doctoral. Dpto. de Informática, Universidad de Castilla - La Mancha. [2] Bravo, C., Redondo, M.A., Ortega, M. & Verdejo, M.F. (2002) Collaborative Discovery Learning of Model Design. Cerri, S.A., Gourdères, G. & Paraguaçu, F. (Eds.) Intelligent Tutoring Systems, 6ª Conferencia Internacional, ITS 2002, pp. 671-680, LNCS, Springer. 2 http://java.sun.com/products/java-media/jsdt/ 356

[3] Esteves, M. & Mendes, A.J. (2003) OOP-Anim, a system to support learning of basic object oriented programming concepts. Proceedings of CompSysTech' 2003 - International Conference on Computer Systems and Technologies. Sofia, Bulgaria. [4] Gutwin, C. & Greenberg, S. (1997) Workspace Awareness. CHI 97 Workshop on Awareness in Collaborative Systems. Atlanta, Georgia, March 22-27. [5] Johnson, P.M. (1998) Reengineering Inspection: The Future of Formal Technical Review. Communications of the ACM, vol. 41, pp. 49-52. [6] Lund, K., Baker, M.J. & Baron, M. (1996) Modelling dialogue and beliefs as a basis for generating guidance in a CSCL environment. Proceedings of the International Conference on Intelligent Tutoring Systems, pp. 206-214. Montreal. [7] Nosek, J.T. (1998) The Case for Collaborative Programming. Communications of the ACM, Vol. 41, No. 3 (March), pp. 105-108. [8] Shen, H. & Sun, C. (2000) RECIPE: a prototype for Internet-based real-time collaborative programming. Proceedings of the 2nd Annual International Workshop on Collaborative Editing Systems in conjunction with ACM CSCW Conference, December 2-6, Philadelphia, Pennsylvania, USA. [9] Wessner, M., Hans-Rüdiger, P. & Miao, Y. (1999) Using Learning Protocols to Structure Computer- Supported Cooperative Learning. Proceedings of the ED-MEDIA 99. World Conference on Educational Multimedia, Hypermedia & Telecommunications, pp. 471-476, Seattle, Washington, June 19-24. [10] Williams, L. & Upchurch, R.L. (2001) In Support of Student Pair-Programming. ACM SIGCSE Conference for Computer Science Educators, February. [11] Williams, L.A. & Kessler, R.R. (2000) All I really need to know about pair programming learned in kindergarten. Communications of the ACM, Vol. 43, No. 5 (2000). [12] Winograd, T. (1988) A Language/Action Perspective on the Design of Cooperative Work. Greif, E. (Ed.) CSCW: A Book of Readings. Morgan-Kaufmann. 357