Roberto Pérez Rodríguez Manuel Caeiro Rodríguez Luis Anido Rifón Universidad de Vigo
Moodle Es el LMS más utilizado Licencia GPL Gran estabilidad Comunidad muy activa de desarrolladores Enfoque constructivista Los participantes también producen contenidos To moodle: aprender desordenadamente Proporciona herramientas colaborativas Foro, chat “Free collaboration does not necessary produce learning” Nuestro enfoque: dotar a Moodle de un motor de learnflow
Moodle desde el punto de vista técnico Escrito en PHP Lenguaje poco apropiado para el soporte de procesos Estructura de contenidos muy rígida Course, section, topic No es viable cambiar la manera en la que Moodle estructura los contenidos Dos maneras de tener un nuevo curso Utilizar la herramienta de creación de curso Restaurar archivo XML en Moodle Backup Format
Moodle desde el punto de vista pedagógico Self-pacing Todo el contenido del curso está siempre disponible para el alumno (no activity locking) No hay indicación de progreso (stateless) No es posible definir itinerarios ordenados por los contenidos y actividades No muy distinto de un servicio de reprografía tradicional, salvo en que todos los participantes y no sólo el profesor son creadores de contenidos (constructivismo) En los institutos y universidades se controlan los itinerarios por medio de exámenes Planificación basada en objetivos (stateful)
Mecanismos para extender Moodle Crear un nuevo tipo de actividad Con esta opción no podremos hacer learnflows utilizando las actividades propias de Moodle Crear un nuevo tipo de curso El nuevo tipo de curso permitirá hacer learnflows de actividades propias de Moodle
Alternativas para soportar learnflows Ad-hoc learnflows CSCL scripts Estas propuestas suelen traducirse a IMS-LD para ser ejecutables con CopperCore EMLs IMS-LD ha sido criticado por su poca versatilidad a la hora de definir procesos colaborativos PoEML (Perspective-oriented EML) Inspirado en el ámbito del workflow Orientado a perspectivas (separation of concerns) Hasta la fecha no tiene desarrollado un motor de ejecución Motores de workflow de propósito general
Propuesta Utilizar PoEML como lenguaje de autoría de learnflows Utilizar un motor de workflow de propósito general para la ejecución de learnflows
PoEML EML orientado a Perspectivas (separación de asuntos) Perspectivas consideradas: Data Sólo documentos en los entornos Structural Jerarquía de Escenarios Educativos Estructura en árbol ES compuesto de sub-Ess Order Reglas sobre el orden de realización de sub-Ess Secuencia (ordenada y desordenada) Paralelo Bucles (evaluación de condiciones)
Motores de workflow de propósito general Galaxia Workflow Engine Escrito en PHP Integración sencilla con Moodle El código de las tareas es PHP Inconvenientes: El proyecto no está lo suficientemente maduro No contempla jerarquías de unidades de estructuración
Motores de workflow de propósito general Jbpm Soporta la mayor parte de los patrones de secuenciación definidos en PoEML Soporta una jerarquía de procesos y subprocesos Soporta la definición de procesos multirol Soporta las restricciones temporales en los procesos Provee mecanismos de monitorización de procesos
Mapeo de entidades PoEML, Moodle y Jbpm PoEMLMoodleJbpm Composed Educational Scenario Course sectionProcess Atomic Educational Scenario Course sectionTask ES-rootCourseProcess definition ToolResource/activity(Not mapped) Order Specification: transition (Not mapped)Workflow construct: transition Role(Not mapped)Swimlane
Arquitectura del sistema
El sistema en tiempo de ejecución
Importación de un curso
En resumen El motor de workflow Jbpm se ofrece como una API de Web Services Moodle se trata como un sistema heredado. Se utilizan técnicas de Desarrollo Software Orientado a Aspectos Técnicas: Ingeniería inversa (identificar pointcuts) Introducción de Aspectos (introducción de advices) Se identifican las funcionalidades nuevas como Aspectos a introducir en el código Estos aspectos se corresponden con las Perspectivas de PoEML Data, Order, Structural, Participants, Awareness, etc. AOP y PoEML tecnologías basadas en separation of concerns Los Aspectos se introducen en el código heredado como llamadas a Web Services
¡Muchas gracias por su atención!