Source: https://www.slideshare.net/mortegacantero/conferencia-armenia-manuel-ortega
Timestamp: 2017-11-20 07:03:28+00:00

Document:
Usos educativos de internet by Gissela Andrade 499 views
สาระสำคัญ จุดประสงค์ เรื่องที่ 6 by วารุณี บำรุงสวัสดิ์ 1004 views
Seegood by suryacad 287 views
How To Become the MacGyver of Onlin... by Vantage Path 211 views
Cyclomundo Ny Times by Cyclomundo 515 views
Callejeros en el tiempo. Mi proyect... by Jose Luis Redondo 307 views
Conferencia presentada el día 11 de Octubre de 2012 en Armenia (Colombia)
Pregunta: Educational Tools o EducationalToolIntegration? Tools, aunque sea posicion adjetiva. Cámbialo tú en el título patrón de las demás diapositivas, que no me acuerdo en esta versión (bueno es que me sale en español, no sé) Nota: Se ve poco tu nombre y filiación. Yo lo pondría debajo, aunque se repita luego en blanco. He cambiado sobre todo las tres diapositivas de AWLA y AIOLE las he dejado en dos, y les he puesto texto en español debajo. Miralas a ver qué tal.
He añadido Learning Design based on Frameworks and ePortfolios ya que luego incluyes AWLA y AIOLE
Fuentes: Paco Jesús William
Hecho en URJC para Pasacal, C, Haskell y otros
Abstract —Programming is an important competence for the students of Computer Science. These students must acquire knowledge and abilities for solving problems and it is widely accepted that the best way is learning by doing. On the other hand, computer programming is a good research field where students should be assisted by an Intelligent Tutoring System (ITS) that guides them in their learning process. In this paper we will present how we have provided guidance in COALA, our ITS for programming learning, merging Fuzzy Logic and IMS Learning Design.
In our system the teacher writes an implementation for the ideal algorithm that solves a problem. Next, several software metrics will be calculated for this proposal. With this we obtain an instance of the ideal approximated algorithm metrics. But to take into account the vagueness of the response, the fuzzy set for each metric will be established in order to compare this fuzzy representation with the student ’ s algorithm. Algorithms that students have written (on the right of the figure) will be correct according with the fuzzy representation of the metrics because these metrics, will give us an idea of the quality of the algorithm that students have developed. The fuzzy approach of this Artefact model face the static part of the algorithm. This part is complemented with the dynamic test based on running test cases for the algorithm. With this method, we have an artefact model that manages imprecision and vagueness; furthermore, it is based on solid software engineering practice.
The fuzzy representation of an algorithm is presented here. This is the classical manner of representation of fuzzy sets that we are using because of his powerful We have two regions in which the metric don ’ t fit the requirements of the solution with values represented by LOW and HIGH Labels. A region of Total acceptance (The NORMAL one) and two penalty Areas between the other regions. With this representation for each metric we can correct the students ’ algorithm presenting to them advices over the code.
In this slide we can see some of the metrics used in our system to measure the correctness of the students ’ solutions. For example: The McCabe or the operational and control complexity. And also you know that we are extensively using the Test Cases approach to complement the fuzzy measurement of the algorithms.
We are using two technologies broadly used to developed our system: The Eclipse environment in which we have added plugins for the evaluation of the algorithms and for the test cases. We also have a Learning Design (LD) engine to present the student the related materials and the algorithms to design. We used as a middleware the SQLSpace, a Tuple Space implementation made at the Essen –Duisburg University in the COLLIDE research group. With this group we are doing some common research in the last years.
In the next slides we are showing several screenshots of the eclipse environment with our plugins. In this slide on the left we can see the activity tree according to the Learning Design made by the teacher with some programming tasks to download and in the case presented here with a simple reading activity previous to solve the programming tasks. In the web of the COALA project you can see another application developed by our group CHICO specifically made for this kind of reading tasks named EDUNET.
If the connection to the system is in teacher mode, there are another kind of actions to be performed, for example for changing the values in the fuzzy representation of the values or for making rules with a visual editor developed with the Graphical Eclipse Framework (GEF). In this case we are formulating a rule with the result “ You have developed a good solution ” with the premises in 4 variable in the range “ NORMAL ”
In the system we added a Graphical Editor capable of making handwriting annotations over the code of the students. This feature is very useful to correct the code of the students or for reinforce the basic ideas studied in the assessments. This handwriting notes are uploaded to the student and can be easily selected by the teacher to present conclusions about the code generation.
This is a screenshot of the student environment with the handwriting note of the teacher and the annotations automatically made by the system
This is a Photo of one of the sessions realized for testing the tool in the classroom. In this case the teacher is the main developer of COALA. He is a Ph D student, Francisco Jurado, the first researcher in the signature of this paper.
In this photo we are seeing the correction with a pen –based interaction, more natural and useful than other approaches.
And in these slides we are presenting some preliminary results over the use of the COALA system in a classroom in Spain. We are doing the same tests in the Duisburg – Essen University in a research stay of Francisco Jurado previous to the defense of his doctoral thesis. The results of the use of our tool are very positive in the scoring assigned by the student. This is one of the questions about how stimulating is the use of our tool…
And the results over the integration of our tools in the Eclipse environment are also “ prometedores o algo así ”
Similar results for the covering of necessities to develop the tasks.
And finally a global satisfaction
En las diferentes asignaturas relacionadas con esta competencia, el método de enseñanza más empleado suele basarse en actividades que impliquen resolución de problemas [16] [26]. El escenario típico consiste en complementar las clases teóricas con laboratorios de Programación [25] [30], tratando de fomentar un aprendizaje activo [27]. Además, dado que los estudiantes deben aprender a diseñar, desarrollar, verificar y depurar programas con determinadas herramientas que están diseñadas para ser empleadas por programadores profesionales tal y como apunta Satratzemi [32], en los laboratorios de Programación se suelen emplear entornos de desarrollo integrado de uso profesional, como Eclipse, JDeveloper, NetBeans, IntelliJ, etc. De este modo, introducir mejoras sobre estos entornos a modo de herramientas que den soporte al proceso de aprendizaje/enseñanza en la competencia de Programación, puede resultar una aproximación interesante.
La implantación de los principios propuestos por parte del Espacio Europeo de Educación Superior (EEES) incluye el trabajo en grupo como una de las técnicas a potenciar en las aulas. En este sentido, el paradigma educativo del Aprendizaje Colaborativo Soportado por Computador (CSCL, Computer Supported Collaborative Learning ) [24], pretende aprovecharse del efecto sinérgico que supone el hecho de que varios estudiantes colaboren para resolver un determinado problema, proporcionando el soporte computacional que les permita comunicarse y coordinarse en la realización de sus actividades de aprendizaje. Así, aplicar el paradigma colaborativo en el proceso de enseñanza/aprendizaje de la Programación mediante la resolución de problemas o proyectos en grupo (aprendizaje colaborativo), permitiría introducir los principios del EEES en la adquisición de esta competencia. No en vano, ha sido aplicado al ámbito del aprendizaje de la Programación, existiendo varias propuestas en este sentido [33] [29] [28] [12]. La aplicación de CSCL para el aprendizaje de la Programación proporciona un medio en el que los estudiantes pueden interactuar y comunicarse entre sí, en un entorno computacional típicamente distribuido, que permite a los estudiantes beneficiarse del conocimiento y habilidades del resto de integrantes del grupo, mejorando así sus propias destrezas. Dentro del ámbito del aprendizaje colaborativo aplicado a la Programación, habitualmente se emplea la técnica de la Programación por Pares (del inglés Pair-Programming ). En ella, dos programadores trabajan de forma conjunta en un mismo diseño, algoritmo, código o prueba [34], de modo que, mientras que uno de ellos ejecuta acciones sobre el entorno, el otro analiza los pasos de su compañero para tratar de detectar errores e informarle de ellos. Aunque se trata de una técnica típicamente empleada en el campo de la Ingeniería del Software, su aplicación en contextos educativos proporciona interesantes beneficios que mejoran el proceso de aprendizaje [31].
Actualmente, el soporte computacional en la mayoría de centros educativos se limita a la implantación de plataformas de gestión de cursos, más conocidas por su término en inglés Learning Management Systems (LMS). Éstos proporcionan repositorios de material didáctico, test de auto-evaluación a disposición de los estudiantes, aplicaciones a emplear por el profesor, para el seguimiento y monitorización del uso que los estudiantes hacen de estos entornos, así como herramientas de colaboración síncronas y asíncronas (chats, foros o herramientas de votación) que añaden una componente más colaborativa a este soporte computacional. Este último tipo de herramientas pueden emplearse para cubrir ciertas necesidades de coordinación y comunicación entre los profesores y los estudiantes y entre estudiantes. Nuestro objetivo en este trabajo, es dar soporte computacional a contextos educativos que apliquen la técnica de la Programación por Pares. Para soportarlo se pueden optar por dos aproximaciones: el manejo de herramientas y servicios colaborativos de uso extendido y generalizado, como aquellos que proporcionan los LMS (implantados en muchas instituciones educativas); el empleo de herramientas y servicios colaborativos más adaptados a la tarea concreta a realizar (en nuestro caso la resolución de problemas de Programación) e integrados dentro del entorno de aprendizaje que habitualmente se emplee para la enseñanza de esta disciplina. En particular, en el presente trabajo se pretende evolucionar un sistema para el aprendizaje de la Programación ya existente y sin soporte para la realización de tareas colaborativas, el cuál está basado en un entorno de desarrollo integrado ampliamente extendido como es Eclipse, dotándole de herramientas colaborativas que quedarán integradas en dicho entorno.
Con el fin de identificar las necesidades en cuanto a IDEs de Programación (y de Eclipse en particular), conocer a qué herramientas de comunicación/coordinación suelen recurrir a la hora de realizar tareas colaborativas de Programación, qué tipo de información intercambia a través de las mismas, etc., se elaboró un cuestionario que fue cumplimentado por un grupo de dieciséis estudiantes de la asignatura Sistemas para la Colaboración de quinto Curso de la Ingeniería Superior en Informática de la Universidad de Castilla-La Mancha (UCLM). Se seleccionó este perfil de estudiante dado que tenían los conocimientos necesarios tanto en el ámbito de la Programación (para valorar las herramientas de soporte a la Programación), como en el ámbito de los sistemas colaborativos (que les permite proporcionar una visión más objetiva y crítica en los temas relacionados con el soporte colaborativo implementado).
En la figura se muestran los porcentajes en cuanto a la tendencia de uso que los estudiantes tienen respecto a las herramientas colaborativas a emplear y al tipo de información que intercambian a la hora de realizar una tarea colaborativa de Programación. Los estudiantes elaboraron una ordenación en una escala Likert de 1 a 5 (siendo 1 la opción menos deseada y 5 la opción más deseada). Como datos relevantes, cabe destacar que: - los estudiantes optan por el correo electrónico (un 35% y un 41% lo señalaron como la primera y segunda opción respectivamente), - seguido del chat (un 44% lo identificaron como primera opción) y - el foro (un 22% lo identificaron como segunda opción) como las herramientas colaborativas a usar a la hora de resolver actividades de Programación en grupo, independientemente de que estas sean externas o se encuentren integradas en el entorno. Por otro lado, el análisis de los datos obtenidos permitió determinar cuál es el tipo de información (además de los mensajes de texto) que habitualmente intercambian los estudiantes en estas sesiones de Programación colaborativa, destacando: - los mensajes de error y warning (un 38% de los estudiante lo marcaron como primera opción y un 25% como segunda) y - copias literales de fragmentos de código (un 31% lo identificó como primera opción y un 19% como segunda).
Como se ha mencionado con anterioridad, el punto de partida para nuestro trabajo es COALA [21] [22]. La figura muestra el diagrama de bloques de la arquitectura de COALA una vez añadidos el plug-in COLE-Programming. COALA fue desarrollado como plug-in s para Eclipse, con el fin de permitir el empleo de un entorno de Programación real en un ámbito académico. El plug-in para Eclipse de COALA permite la comunicación a través de un servidor de espacios de tuplas [17] [18]. Este servidor se comporta como una memoria central compartida en un entorno de red, donde los diferentes clientes y servicios pueden almacenar y leer información en forma de tuplas [23]. Dado que la opción de los espacios de tuplas parece apropiada para implementar sistemas colaborativos eLearning [6] [15], parecía factible emplear la arquitectura de COALA para implementar los nuevos servicios. Como puede apreciarse, la implantación de las herramientas colaborativas sobre la arquitectura inicial de COALA resulta sencilla. Tan sólo hubo que implementar los correspondientes proxies, proveedores de contenido y vistas/editores para hacerlos disponibles en los diferentes clientes. Los mensajes y la información que los usuarios intercambiarán en ellas quedarán representados por tuplas accesibles por el grupo de trabajo en el servidor del espacio de tuplas. En la siguiente sección se describirán las funcionalidades implementadas en las herramientas colaborativas. Como puede apreciarse en dicha figura, todos los clientes y servicios están conectados mediante una red TCP. El servidor de espacios de tuplas seleccionado (SQLSpaces Server a la derecha) se ejecuta sobre una máquina virtual de Java (JVM) que implementa la correspondiente lógica de transformación entre tuplas y base de datos relacional. En el caso concreto de COALA se eligió una base de datos MySQL sobre la que realizar la persistencia. Para que los diferentes clientes y servicios puedan interactuar, éstos precisan de las correspondientes librerías que dan soporte al middleware ( SQLSpaces client stubs ), tanto si se ejecutan sobre una máquina virtual de Java, como si son empleadas desde cualquier otro lenguaje de programación de entre los soportados por SQLSpace. Este es el caso de las herramientas de las que dispone COALA (zona sombreada en el centro de la figura) y de los servicios de los que dispone (a la izquierda) para permitir la especificación de actividades de Programación por parte del profesor, los casos de prueba que deben cumplirse, la distribución de las tareas a los estudiantes, la entrega de las soluciones elaboradas por éstos y la evaluación automática de dichas soluciones, etc. En el lado del cliente (zona central de la figura), puede verse Eclipse como la plataforma a emplear por los usuarios. Tanto la plataforma de Eclipse como las librerías del lado del cliente de SQLSpaces se ejecutan sobra una máquina virtual de Java. Con el fin de facilitar la implementación de las capas superiores, se implementan diferentes proxies que proporcionan la transparencia suficiente respecto del middleware . Sobre esta capa de proxies se encuentran las capas del modelo-vista-controlador que propone Eclipse. Dicho modelo consta de proveedores de contenido ( SWT Content Providers ) y de las correspondientes vistas y editores ( SWT Viewers and Editors ) para cada una de las herramientas a implementar, ya sean de las ya implementadas en COALA (zona central sombreada a la derecha) o de las nuevas herramientas implementadas (el chat, el foro y el pool de votaciones). (click) Se ha implementado el plug-in que hemos convenido llamar COLE-Programming ( Collaborative Learning Programming ) que implementa las herramientas de chat, foro y pool de votaciones.
La figura muestra cómo COLE-Programming implementa las diferentes vistas para las herramientas de chat (arriba a la izquierda) y foro (arriba a la derecha) con las funcionalidades que los estudiantes apuntaron y que describiremos más adelante. Además añade un pool de votaciones (abajo). Para facilitar el intercambio de la información que los estudiantes apuntaron como necesaria en una comunicación durante una sesión colaborativa de Programación (sección 3), se añadió lo necesario para que pudieran compartir código, mensajes de error del compilador, mensajes de alerta ( warnings ), etc. Cuando un alumno desea compartir uno de estos elementos a través de un chat o un foro, se abre una ventana de diálogo como la que se muestra en la figura 5. Ésta le permite introducir un mensaje de descripción, el tipo de información que está introduciendo (fragmento de código fuente, mensaje de error o alerta, etc.) y la información a compartir. En el chat o el foro amarecerá un mensaje del tipo “&lt;usuario&gt; publicó el &lt;tipo de mensaje&gt;: &lt;id&gt;” , indicando que la información ha sido publicada para aquellas personas que están conectadas al chat. Los alumnos podrán seleccionar en un combo desplegable dentro del mismo chat el id de la información a visualizar, abriéndose un editor que mostrará tanto el código como la descripción.
Para facilitar el intercambio de la información que los estudiantes apuntaron como necesaria en una comunicación durante una sesión colaborativa de Programación, se añadió lo necesario para que pudieran compartir código, mensajes de error del compilador, mensajes de alerta ( warnings ), etc. Cuando un alumno desea compartir uno de estos elementos a través de un chat o un foro, se abre una ventana de diálogo como la que se muestra en la figura. Ésta le permite introducir un mensaje de descripción, el tipo de información que está introduciendo (fragmento de código fuente, mensaje de error o alerta, etc.) y la información a compartir. En el chat o el foro amarecerá un mensaje del tipo “&lt;usuario&gt; publicó el &lt;tipo de mensaje&gt;: &lt;id&gt;” , indicando que la información ha sido publicada para aquellas personas que están conectadas al chat. Los alumnos podrán seleccionar en un combo desplegable dentro del mismo chat el id de la información a visualizar, abriéndose un editor que mostrará tanto el código como la descripción.
Además, en el foro se ha añadido un mecanismo de filtrado de mensajes en las conversaciones atendiendo al tipo de mensaje (planteamiento de un problema, propuesta al mismo, crítica de un comentario, etc.) tal y como se muestra en la figura. Un desplegable les permite filtrar el tipo de mensajes a mostrar, permitiéndoles por ejemplo, visualizar sólo las propuestas de soluciones a un problema, sólo las dudas, etc. Además, una gama de colores identifica al tipo de comentario, de modo que los estudiantes pueden identificar rápidamente el tipo de mensaje de que se trata.
Con el fin de ayudar al profesor en las tareas de análisis y seguimiento de las tareas colaborativas de aprendizaje, COLE-Programming implementa un monitor de colaboración (figura) que permite observar determinadas características de la colaboración, como el número de aportaciones de un determinado usuario por cada herramienta, porcentajes de participación, usuarios con los que ha colaborado o compartido información, etc.
Se planteó una experiencia que permitiera analizar la viabilidad de la propuesta. Así, se trató de comprobar si los estudiantes prefieren emplear herramientas colaborativas específicas para la Programación, incluidas dentro del Entorno de Desarrollo Integrado que empleen para realizar las tareas, frente a las proporcionadas por otras alternativas genéricas basadas en LMS no integradas. Para ello, se tomó la evolución llevada a cabo a COALA mediante el plug-in COLE-Programming con las herramientas específicamente diseñadas para el aprendizaje de la Programación. Posteriormente fue empleado por estudiantes, quienes contrastaron dichas herramientas con las proporcionadas por un LMS de uso extendido como es Moodle para la realización de tareas de Programación. En la experiencia llevada a cabo participaron los 16 estudiantes de la asignatura Sistemas para la Colaboración de 5º Curso de la Ingeniería Superior en Informática de la Universidad de Castilla-La Mancha (UCLM) a los que anteriormente se les pasó el cuestionario para identificar las necesidades en herramientas colaborativas específicas para la Programación. Para la realización de la experiencia los estudiantes fueron agrupados aleatoriamente en parejas.
La experiencia tuvo una duración de dos horas, en las que los estudiantes debían resolver dos ejercicios de Programación y cumplimentar los correspondientes cuestionarios. Cada test incluía un ID de estudiante, que sirvió para identificar a los participantes en el resto de actividades de la experiencia, preservando así el anonimato. La experiencia constó de las siguientes fases: 1.- Primera sesión práctica (Eclipse+Herramientas externas Moodle): Todos los estudiantes formaron parejas (creados por los experimentadores de forma aleatoria) de dos participantes. En esta primera sesión práctica se les proporcionó el enunciado de un ejercicio de Programación, que debían resolver haciendo uso de la herramienta Eclipse, así como las herramientas externas de comunicación y coordinación incluidas en Moodle. El tiempo aproximado de realización de este primer ejercicio de Programación fue de 40 minutos. 2.- Test de valoración (Eclipse+Herramientas externas Moodle): Los estudiantes cumplimentaron un test para evaluar su impresión sobre dichas herramientas de colaboración durante la sesión de Programación en grupo. El tiempo para cumplimentarlo fue de 10 minutos. 3.- Segunda sesión práctica (Eclipse+COLE-Programming): Los mismos parejas de trabajo que participaron en la primera sesión de trabajo realizaron una segunda actividad de Programación (con un nivel de complejidad similar al de la primera sesión) haciendo uso de las herramientas integradas en Eclipse (COLE-Programming). El tiempo aproximado de realización de este segundo ejercicio de Programación fue de 40 minutos. 4.- Test de valoración (Eclipse+COLE-Programming): Los estudiantes cumplimentaron un test para evaluar su impresión sobre dichas herramientas de colaboración durante la sesión de Programación en grupo. El tiempo para cumplimentar fue de 10 minutos. Los test constaron tanto de una serie de preguntas que los estudiantes deberían contestar siguiendo una escala tipo Likert con puntuaciones del 1 al 5 (1: nada, 2: poco, 3: ocasionalmente, 4: a menudo, 5: mucho), así como preguntas de respuesta abierta en las que podían emitir su opinión o dar explicación y justificación sobre determinadas cuestiones.
En la figura se ven las gráficas que muestran la valoración proporcionada por los estudiantes a las herramientas colaborativas genéricas y las integradas en COLE-Programming. Analizando dichas gráficas se puede ver cómo el uso de foros y las herramientas de votación parece menos extendido (la mayoría de los estudiantes otorgan un no sabe/no contesta a la hora de puntuar estas herramientas). En las preguntas de respuesta abierta, los estudiantes explicaron el porqué de su inclinación por el uso del chat. Lo consideran la herramienta colaborativa que les permite comunicarse con el compañero de forma más inmediata, permitiendo un diálogo más ágil y menos estructurado. Además, en la figura se puede ver cómo la los estudiantes dan mayor puntuación a las herramientas de COLE-Programming. Así, en el caso de las herramientas genéricas los estudiantes consideran el empleo del chat y el foro resulta nada, poco u ocasionalmente interesante, pasando a considerar ocasionalmente, bastante o muy valiosos sus equivalentes en COLE-Programming, sobre todo el chat. Los valores tan altos en la opción de no sabe o no contesta (ns/nc) en los casos del foro y la herramienta de votación se debieron a aquellos estudiantes que optaron por no emplearlas, volviéndose así a confirmar la predilección de los estudiantes por la herramienta de chat. El principal problema que destacaron en las herramientas colaborativas genéricas fue que éstas no estaban pensadas para compartir código, por lo que carecían de características como una correcta tabulación o el coloreado de sintaxis. Además, indicaron que, al encontrarse en ventanas externas al entorno de trabajo (Eclipse), debían cambiar su foco de atención constantemente haciendo que no pudieran centrarse en la tarea que estaban realizando.
Igualmente, los estudiantes analizaron las características introducidas en las herramientas de COLE-Programming específicas para la Programación, como aquellas que permiten compartir código, mensajes de error y warnings , etc. Los resultados pueden apreciarse en la figura. En ella se ve cómo las características de compartir código con una correcta identación y formateo, así como el permitir el intercambio de los mensajes de error, mensajes de warning , etc. proporcionados por la salida del compilador, son los rasgos mejor valorados por los estudiantes. Es decir, aquellas funcionalidades añadidas específicamente para las tareas de Programación, resultaron ser las más útiles para los estudiantes. Además, resultan también de interesantes a los estudiantes algunas mejoras en el awareness , tales como la personalización de colores para identificar a los usuarios que intervienen en la colaboración y la información relativa al instante de envío del último mensaje. Así, tras evolucionar COALA mediante la implementación del plug-in COLE-Programming, con herramientas colaborativas especialmente diseñadas para realizar tareas de Programación, contrastando su uso frente a las herramientas colaborativas genéricas proporcionadas por un LMS para la realización de tareas colaborativas de Programación, ha podido apreciarse cómo los estudiantes encuentran especialmente atractivas aquellas integradas dentro del entorno de Programación.
Una de las técnicas empleadas en el proceso de enseñanza/aprendizaje de la competencia de Programación implica la resolución de problemas de Programación de forma colaborativa, aplicando técnicas como la Programación por Pares. Así, tras analizar los antecedentes sobre los sistemas que permiten dar soporte a los laboratorios de Programación, se ha mostrado cómo se han identificado las necesidades apuntadas por los estudiantes para la realización de tareas colaborativas de Programación, extrayendo así los requisitos funcionales para las herramientas de un sistema colaborativo para el aprendizaje de la Programación. Con ello, se ha mostrado cómo se ha tomando como punto de partida COALA (un sistema existente para el aprendizaje de la Programación sin soporte para la colaboración basado en Eclipse), y se ha detallado cómo se han encajado en su arquitectura los requisitos necesarios para proporcionar soporte a la colaboración, pasando posteriormente a mostrar cómo ha quedado implementada la funcionalidad identificada por los estudiantes en el plug-in para Eclipse que se ha convenido llamar COLE-Programming. Posteriormente, se han analizado las primeras impresiones de los estudiantes respecto de las herramientas integradas en el entorno. Dichas impresiones apuntan que los estudiantes encuentran interesantes las características introducidas en las herramientas por COLE-Programming específicas para la Programación e integradas dentro del Entorno de Desarrollo Integrado que suelen emplear para realizar sus tareas de Programación.
1. Segundo Congreso Internacional de Ingeniería del Software Enseñanza de la Programación por pares mediante el entorno Eclipse
2. Manuel OrtegaEscuela Superior de Informática Mianuel.Ortega@uclm.es Enseñanza de la Programación por pares mediante el entorno Eclipse
3. Líneas de Investigación de CHICO Manuel Ortega CanteroDr. Manuel Ortega CanteroCatedrático de UniversidadEscuela Superior de InformáticaEdificio Fermín Caballero, Desp A-1Paseo de la Universidad, 413071 – Ciudad Real (España) Armenia (Colombia)e-mail: Manuel.Ortega@uclm.es 11 de Octubre de 2012Telf.: 926295481Fax.: 926295354
4. Basic Research• Informática Educativa y sistemas de E-Learning – Diseño de modelos computacionales de e-learning – Integración de ontologías, estándares y objetos de aprendizaje en e-learning• Interacción Persona – Computador – Diseño y especificación de interfaces de usuario colaborativas/cooperativas – Diseño de interacción con dispositivos para computación ubicua y móvil y Realidad Aumentada
5. El grupo CHICO 9. Dr. Francisco Jurado (Univ.1. Dr. Manuel Ortega Lleida)2. Dr. Miguel A. Redondo 10. Dr. Rafael Duque (Univ.3. Dr. Crescencio Bravo Cantabria)4. Dr. Miguel Lacruz 11. Dr. Jesús Gallardo (Univ. Zaragoza)5. Dr. Maximiliano Paredes (URJC) 12. Dr. William J. Giraldo (Univ.6. Dra. Ana Isabel Molina Quindío)7. Dr. Pedro P. Sánchez 13. Dr. Emiliano Almansa8. Dra. Asunción Sánchez 14. Don Alfonso Aranda 15. Don Fernando Gallego 16. Don José R. Sánchez
6. Applied Research• Aplicaciones industriales – E-Learning • Learning to write by writing on the web (EOI-JCCM) • Learning Management Systems (LMS-MEC-JCCM) • CIVI-ERASMUS (UCLM) – Human – Computer Interaction • Visualización instrumental y móvil (Repsol) • Aplicaciones de diagnosis de automóviles (COJALI) • Herramientas móviles de desarrollo (COFARCIR) • Reuniones móviles (Grupo DINFOR) • Herramientas CASE Tools para desarrollo de interfaces colaborativas
7. Basic Infrastructures
8. Current Research Projects with Public Fundings (I)• AULA-T – Desarrollo de métodos y sistemas de aprendizaje basados en estándares para la enseñanza de la programación – Grupo de Excelencia de la JCCM
9. Current Research Projects with Public Fundings (II)• mGUIDE – Framework metodológico para el desarrollo de para computación móvil. – Dos universidades – COFARCIR – Patrocinio de la JCCM
10. Current Research Projects with Public Fundings (III)• mGUIDE
11. Current Research Projects with Public Fundings (IV)• FAPPEC Framework metodológico y tecnológico para la construcción de sistemas de análisis de la colaboración en sistemas de soporte al trabajo en grupo – Participación de grupos de 2 universidades españolas – Financiado por la JCCM
12. Current Research Projects with Public Fundings (& V)• FAPPEC
13. Nuevo Proyecto: EDUCA-PROG• Sistemas de software avanzados para el aprendizaje activo y colaborativo de la programación. – IPs de los Subproyectos: • VELÁZQUEZ ITURBIDE; J. ÁNGEL • REDONDO DUQUE; MIGUEL ANGEL
14. AgendaIntroducciónEclipse en eLearningDesarrollo MDE para EclipseCOALACole-ProgrammingConclusiones
15. IntroducciónConsideramos el desarrollo de un sistema de eLearning como el desarrollo de un sistema softwareDesarrollo de software Tarea costosa y compleja Lenguajes orientados a objetos Reutilización de componentesSe requiere explorar nuevos paradigmas
16. AgendaIntroducciónEclipse en eLearningDesarrollo MDE para EclipseCOALACole-ProgrammingConclusiones
17. Eclipse en eLearningEclipse IDE de uso profesional y docente Soporte para integración en CASEs Por ejemplo, Visual Paradigm No tiene soporte específico para enseñanza Incorpora posibilidades de personalización y expansión Eclipse Communications Framework (ECF) Web Tools Project (WTP) Eclipse Modelling Framework (EMF) Graphical Editing Framework (GEF) Test and Performance Tooling Project (TPTP) Business Intelligence and Reporting Tools (BIRT)
18. Eclipse en eLearningEclipse Entorno personalizable (extensible) mediante agregación de plug-ins Persigue lograr una plataforma universal de desarrollo
19. Eclipse en eLearningVersión de Eclipse para educación Pretende crear un entorno que permita a los estudiantes centrarse en la tarea de aprender Soporte para los lenguajes de programación y herramientas de uso común en estas titulaciones Ej. Java, Scheme, Prolog, etc. Se encuentra en “incubation” http://wiki.eclipse.org/Eclipse_IDE_for_Education
20. Eclipse en eLearningEjemplos Kenya Eclipse
21. Eclipse en eLearningEjemplos Jazz Sangam
22. Ejemplos Eclipse en eLearning Saros
23. 504 Recursos docentes temporal de los cambios producidos en el soporte de todos estos lenguajes incluye editores código. con resaltado de sintaxis y marcación de errores XV Jornadas dede compilación en el propiode la Informática Enseñanza Universitaria código, depuración, 5 Eclipse en eLearning Con estas características en mente se ha ayuda integrada, entre otras características.desarrollado EclipseGavab, una herramienta Todos estos lenguajes se utilizan en diversascolaborativa para la docencia online de la asignaturas para enseñar diferentes paradigmas oprogramación. En la siguiente sección se metodologías de la programación.Ejemplosdescriben las características de esta herramienta. Desde el punto de vista colaborativo, EclipseGavab incorpora un conjunto de herramientas que dotan al entorno de desarrollo3. Descripción de EclipseGavab EclipseGavabEclipseGavab es una distribución de Eclipse de capacidades colaborativas como clientes de chat, edición compartida del código y un clienteorientada a la docencia presencial y online de la del sistema de control de versiones Subversioninformática. Esta distribución incluye soporte [18] que permite utilizar repositorios de códigopara varios lenguaje de programación, lo que para compartir programas. El control delpermite su utilización en diferentes asignaturas, repositorio subversión se ofrece eny un entorno colaborativo en el cual los alumnos EclipseGavab a través del plugin Subversive. Elpueden llevar a cabo su aprendizaje. Con chat y la edición compartida se implementanEclipseGavab es posible aplicar el Aprendizaje con el plugin Eclipse CommunicationBasado en Proyectos en la enseñanza online. En Framework. Este plugin presenta característicasla Figura 1 se muestra el logotipo de esta similares al módulo Collab de Netbeans.herramienta. 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 elFigura 1. Logotipo de EclipseGavab desarrollo en diversos lenguajes de Como se ha comentado anteriormente, para programación. Están disponibles componentesque una herramienta pueda utilizarse en el para muchos lenguajes de programación, pero al
24. AgendaIntroducciónEclipse en eLearningDesarrollo MDE para EclipseCOALACole-ProgrammingConclusiones
25. U N M É T O D O P A R A E L D E S A R R O L L O D E S IS T E M A S C O L A B O R A T IV O S D E M O D E L A D O Desarrollo MDE para EclipseFramework metodológico
26. Desarrollo MDE para EclipseFramework conceptual Metamodelos que se usan en el proceso Metamodelo del dominio Metamodelo del espacio de trabajo Metamodelos de la sesión de trabajo Metamodelo del protocolo de colaboración
27. Desarrollo MDE para EclipseFramework Tecnológico Ejemplo de creación de un editor gráfico Selección de objetos gráficos (o diccionario gráfico) con gmfgraph Modelo de dominio con ecore Construcción de herramientas con gmftool Correspondencia/mape o dominio-gráficos con gmfmap
28. Desarrollo MDE para Eclipse
29. Desarrollo MDE para EclipseEjemplo: Circuitos Digitales
30. Desarrollo MDE para EclipseEjemplo: Diagramas CTT
31. Desarrollo MDE para EclipseEjemplo: Mapas Conceptuales
32. AgendaIntroducciónEclipse en eLearningDesarrollo MDE para EclipseCOALACole-ProgrammingConclusiones
33. Introducción a COALA• Ayudar a adquirir la competencia de la Programación – Diseño de ITS (Intelligent Tutoring System) para aprender a programar  COALA • eLearning standards • Interoperable • Agregación Ad-hoc de componentes • Interacción natural – COALA: Computer Assisted Environment for Learning Algorithms
34. http://chico.inf-cr.uclm.es/coala
35. Fuzzy representation Fuzzy representation of the ideal algorithm of the ideal algorithm Degree of membership with the fuzzy set Metrics Metrics Metrics Metrics Calculation Calculation Calculation Calculation Algorithm that Algorithm that Algorithm for Algorithm for Writes Writes solves solves trying to solve trying to solve the problem the problem The Problem The ProblemTeacher Student Test Test Runs test cases Sets Cases Cases
36. Penalty Penalty Not acceptance region Total acceptance region Not acceptance region region region1 Low High Normal0 a b c d Measured Value
37. McCabe n1,201,00 Assessment OWA( pi ) = ∑ a µ(x ) i =1 i i0,800,600,40 Explanation  Fuzzy Rules + Test Cases0,200,00 0 2 4 6 8 10 12 Control Complexity 1,20 Normal Low High 1,00 0,80 Operational Complexity 0,601,20 0,401,00 0,200,80 0,000,60 0 2 4 6 8 10 120,40 Normal Low High0,200,00 0 2 4 6 8 10 12 Normal Low High
38. Implementación• Entorno Eclipse• Middleware de comunicación  SQLSpace
39. 1: Send task 3: Download LD 6: Notify solution TupleSpace 4: Download task 5: Send solution 8: View evaluation ServerCOALA’s instance 8: View evaluation for the teacher 2: Se 8: 9: Ch nd ion n Se an LD COALA’s instance t io nd ge fo solu lu at up pr r for the students tify va da o p eac e h No d te er ty us 6: S en d LD er 7: WS Proxy LD Service EJB/WS Evaluator Service LDs use from Tuple Space Server: -Tasks -Evaluations Runs use from LD enginee: -Users
40. Reading activityActivity tree Download programming tasks
41. Workspace Source code Connection properties Explanation Test CasesEvaluation Fuzzy Representation
42. Complementos de COALA• Edunet (Education on Internet): – IMS-LD player  GUI con Adobe Flash CS4• Tuple-LD (Tuple Learning Design) – Motor deLearning Design basado en TupleSpaces • Usa SQLSpaces• COLE-Programming (Collaborative Learning Programming) – Eclipse plug-in para colaboración • Usa SQLSpaces• Más información en: – http://chico.esi.uclm.es/coala
43. Edunet
44. Resumen de COALA• COALA  ITS – Modelos: • Cognitive Student Model  Conjunto de evaluaciones • Instructional Model  Especificaciones del learning design Artefact Model  Lógica difusa – Características: • Entorno sobre Eclipse • Sistema heterogéneo distribuido  SQLSpaces Extensible • Escritura a mano• Mejoras para el estudiante – Mejota de la Interfaz de usuario  Edunet – Motor para TupleSpace Tuple-LD – Herramientas colaborativas  COLE-Programming
45. AgendaIntroducciónEclipse en eLearningDesarrollo MDE para EclipseCOALACole-ProgrammingConclusiones
46. Introducción• Contexto: Aprendizaje de la programación – Escenario tipico: Clases teóricas + lab. de programación – Actividades que implican resolución de problemas • Fomentar un aprendizaje activo – Los estudiantes • deben aprender a diseñar, desarrollar, verificar y depurar • empleando herramientas profesionales (IDEs) que están diseñadas para programadores profesionales (p. ej. Eclipse, JDeveloper, NetBeans, IntelliJ, etc.)• Propósito: • Introducir mejoras en entornos profesionales mediante herramientas que soporten al proceso de aprendizaje/enseñanza.
47. Introducción• La implantación de los principios propuestos por el EEES incluye el trabajo en grupo como técnica a potenciar en las aulas.• Computer Supported Collaborative Learning – Aprovecha el efecto sinérgico de que varios estudiantes colaboren para resolver un problema – Proporciona el soporte computacional que les permita comunicarse y coordinarse en la realización de sus actividades de aprendizaje• Aplicado al aprendizaje de la Programación – Programación por pares
48. Objetivo• Dar soporte computacional a contextos educativos CSCL para aprendizaje de la programación.• Dos aproximaciones: – herramientas y servicios colaborativos de uso extendido y generalizado (como aquellos que proporcionan los LMS) – herramientas y servicios colaborativos más adaptados a la tarea concreta a realizar e integrados dentro del entorno de aprendizaje que habitualmente se emplee para la enseñanza de esta disciplina.• Se pretende: evolucionar COALA  sistema existente para el aprendizaje de la Programación sin soporte para la realización de tareas colaborativas, dotándole de herramientas colaborativas integradas en dicho entorno
49. Identificando necesidades• Identificar las necesidades en cuanto a IDEs de Programación (y de Eclipse en particular)• Objetivo: – Conocer a qué herramientas de comunicación/coordinación suelen recurrir a la hora de realizar tareas colaborativas de Programación, qué tipo de información intercambia a través de las mismas, etc.• Método: – Cuestionario cumplimentado por estudiantes de la asignatura Sistemas para la Colaboración de 5º Curso de la Ingeniería Superior en Informática de la UCLM.
50. ¿ A q u é h e r r a m i e n t a s d e c o m u n i c a c ió n / c o o r d i n a c i ó n s u e l e r e c u r r ir ? E -m a il Chat 1 Fo ro A u d i o / v i d e o c o n f e r e n c ia R e d e s s o c ia l e s 1 0% 0% 4 3 6% 1 4 5 5 2 5 1 2 6% 6% 1 11% 22% 14% 5 18% 35% 4 29% 2 30% 20% 44% 3 22% 14% 3 31% 2 3 0% 4 3 2 4 41% 45% 20% 30% 13% 43% ¿ Q u é t i p o d e i n f o r m a c i ó n in t e r c a m b i a ?M e n sa je s d e e r r o r C o p i a l i t e r a l d e c ó d ig o Fich e r o s f u e n t e P a n t a lla z o s d e c ó d igo P a n t a lla d e a p ln e n m o m en to d e erro r 4 4 1 5 1 5 1 6% 1 19% 1 16% 17% 16% 10% 2 5 20% 3 38% 31% 10% 42% 231% 4 17% 3 25% 4 3 2 2 2 31% 3 30% 30% 19% 42% 25% 25%
51. Soporte a la Colaboración en la Arquitectura de COALA COLE-ProgrammingOtros servicios Lado del cliente Lado del servidor Eclipse SWT Resto Chat Foro Pool Viewers Viewers/Editors Viewer Viewer Viewer COALA Resto Eclipse SWT Chat Foro Pool Controllers ContentProviders Controller Controller Controller COALA Servicios Chat Foro Pool Resto Proxies Lógica conversión COALA Eclipse Proxy Proxy Proxy COALA Tuplas - SQL SQLSpaces Platform SQLSpaces SQLSpaces Client Stubs MySQL Client Stubs Server JVM JVM JVM Conexión TCP
52. COLE-Programming: Vista de chat
53. COLE-Programming: Vista de foro
54. COLE-Programming: Vista votaciones
55. Mensaje de descripción Tipo de mensaje (código, error, warning, etc.)Código fuente, mensaje de error, etc. Identificador del mensaje compartido
56. Filtrado de mensajes Selección del filtro Colores para identificar elEspecificación del tipo de mensaje tipo de mensaje
57. Monitorización Qué usuario se monitoriza Actividad Participación Para cada Colaboraciónherramienta
58. Experiencia• Objetivo: – Analizar la viabilidad de la propuesta• Cómo: – Comprobar qué alternativa prefieren los estudiantes sobre herramientas colaborativas: • específicas para la Programación e incluidas dentro del IDE • genéricas basadas en LMS no integradas• Participantes: – 16 estudiantes de la asignatura Sistemas para la Colaboración de 5º Curso de la Ingeniería Superior en Informática de la UCLM • Los mismos a los que anteriormente se les pasó el cuestionario para identificar las necesidades en herramientas colaborativas específicas para la Programación. • Para la experiencia los estudiantes fueron agrupados aleatoriamente en parejas.
59. Experiencia• Procedimiento: – 1ª sesión práctica (Eclipse+Herram. extern. Moodle): 40 min. • Ejercicio de Programación haciendo uso de Eclipse, así como las herramientas externas de comunicación y coordinación incluidas en Moodle. – Cuestionario (Eclipse+Herram. externas Moodle): 10 min • Evaluar su impresión sobre dichas herramientas. – 2ª sesión práctica (Eclipse+COLE-Programming): 40 min. • Ejercicio de Programación (nivel de complejidad similar), usando las herramientas integradas en Eclipse (COLE-Programming). – Cuestionario (Eclipse+COLE-Programming): 10 min • Evaluar su impresión sobre dichas herramienta• Cuestionarios: – Preguntas de respuesta acotada  escala tipo Likert del 1 al 5 – Preguntas de respuesta abierta para emitir opinión o dar explicación/justificación
60. Resultados P u n t u a ció n a la s h e r r a m ie n t a s P u n t u a ció n a la s h e r r a m ie n t a s co la b o r a t iv a s g e n é rica s in t e g r a d a s e n CO LE-P r o g ra m m in g80% 80%70% 70%60% 60%50% 50% C hat 40% C h at40%30% 30%20% Foro 20% Fo ro10% 10% 0% 0% H e r r a m ie n ta s d e H e r r a m ie n ta s d e v o t a c ió n v o ta c ió n
61. Resultados U t ilid a d d e c a ra ct e r íst ica s e sp e cíf ic a s p a r a la p r o g r a m a c ió n e n C O LE -P r o g ra m m in g60%50% P e r s o n a liz a c ió n d e c o lo r e s40%30% In fo r m a c ió n d e l in s t a n t e d e e n v ío d e l ú lt im o m e n s a je20% H e rra m ie n ta d e10% c o m p a r t ic ió n d e c ó d ig o 0% H e rr a m ie n t a p a r a c o m p a r t ir e r r o r e s , w a r n in g s , e t c
62. Conclusiones (I)• Marco de trabajo y aplicación: – Resolución de problemas de Programación de forma colaborativa • Técnicas como la Programación por Pares • Dentro del EEES• Identificación de necesidades apuntadas por los estudiantes para la realización de tareas colaborativas de Programación – Requisitos funcionales para construir un sistema colaborativo para el aprendizaje de la Programación
63. Conclusiones (II)• Construcción del sistemaEvolución de COALA + COLE- Programming – Partiendo de COALA: sistema sin soporte para la colaboración basado en Eclipse – Integración de los requisitos necesarios en su arquitectura para proporcionar soporte a la colaboración – Se ha mostrado cómo ha quedado implementada la funcionalidad identificada por los estudiantes en el plug-in para Eclipse  COLE- Programming.• Primeras impresiones de los estudiantes: – Resultan interesantes las características introducidas en las herramientas por COLE-Programming específicas para la Programación e integradas dentro del IDE que suelen emplear para realizar sus tareas de Programación.
64. MUCHAS GRACIASEspecialmente a:William J. Giraldo M. Lili VillegasFáber D. Giraldo
65. ¿Preguntas? Enseñanza de la Programación por pares mediante el entorno Eclipse

References: resolución 
 resolución 
 resolución 
 resolución 
 resolución 
 Resolución