Open edX, plataforma para MOOC Javier Ortega Conde

Anuncio
Open edX, plataforma para MOOC
Javier Ortega Conde, Metauniversidad
Notas del autor:
Webs: http://metauniversidad.com y http://metamooc.com
IKASNABAR 2014 - OPEN EDUCATION AND TECHNOLOGY
455
Resumen
Los MOOC están en auge, y si bien en Estados Unidos se han asentando ya, en Europa
todavía hay mucho camino por recorrer. Tras una introducción sobre el concepto de MOOCs y
un breve análisis sobre la elección de Open edX, este documento pretende acercar y facilitar la
instalación de la plataforma de MOOC Open edX, tras la experiencia en nuestra empresa, para
que otros puedan instalarla y probarla.
Palabras clave: MOOC, Open edX, software libre
Abstract
MOOCs are booming, and while in the United States are already settled, in Europe there
is still a long way to go. After an introduction to the concept of MOOCs and a brief discussion
about choosing of Open edX, this paper aims to approach and facilitate installation of Open edX
MOOC platform, after the experience in our company, so that others can install and try it.
Keywords: MOOC, Open edX, free software, libre software
IKASNABAR 2014 - OPEN EDUCATION AND TECHNOLOGY
456
Open edX, plataforma para MOOC
Introducción: ¿qué es un MOOC?
Las siglas MOOC responden a “Massive Open Online Course”, que significa Curso
Online Masivo y Abierto. Analicemos brevemente qué significado tienen estas palabras:
- Curso: Debe estar orientado al aprendizaje y tener un sistema de evaluación del
aprendizaje para acreditar el conocimiento adquirido.
- Online: El curso se impartirá a distancia por internet, sin requerir asistencia presencial.
Normalmente (aunque no es obligatorio) no se hacen sesiones en directo, dada la dificultad que
supone la posible masividad.
- Masivo: Se admiten matriculaciones en el curso sin restricciones, de forma ilimitada
(mientras los recursos lo permitan) o al menos en cantidades mucho más altas a las de un curso
tradicional.
- Abierto: Se puede acceder a los materiales de forma gratuita en Internet. No obstante,
tendrán sus licencias, que podrían restringirlos al uso del curso y no permitir el uso en otros
sitios.
Si bien en lo básico son similares a los cursos online tradicionales, sus características los
hacen ligeramente diferentes y son actualmente otra vía de distribución de cursos, en auge dado
su éxito. Es remarcable que en otoño del 2011, más de 160.000 personas se matricularon en un
curso sobre Inteligencia artificial ofrecido por la Universidad de Standford. Eso supuso la
explosión de los MOOC y despertó el interés por ellos de toda la comunidad educativa. La
fórmula habitual es cobrar sólo por el certificado que acredita (previa prueba) el
aprovechamiento del curso. Estadísticamente el porcentaje de inscritos que completan el curso
suele ser menor al 13%, pero aún así dadas las cifras de inscripciones manejadas, la cantidad neta
IKASNABAR 2014 - OPEN EDUCATION AND TECHNOLOGY
457
suele superar a la de superación en cursos tradicionales equivalentes.
¿Qué plataformas de MOOC basadas en software libre existen?
Entre las plataformas a usar decidimos escoger sólo aquellas que son software libre, por
convicción propia de sus ventajas. Desestimamos Moodle y Chamilo, porque aunque podrían ser
válidas para la impartición de MOOC, añaden complicación innecesaria, y por tanto no deseable,
a los profesoras/es y alumnas/os.
Google creó en 2012 su propia plataforma CourseBuilder, pero más adelante la abandonó
para sumar sus esfuerzos a la plataforma Open edX.
La UNED creó en 2012 la plataforma OpenMooc para su uso propio pensando en la
incorporación de vídeos y la escabilidad.
Peer to Peer University (P2PU) creó Lernanta en 2010, y la liberó siguiendo su filosofía
de apertura y carencia de ánimo de lucro.
La última a destacar es Open edX que si bien fue creada en 2011 en el MIT, fue liberada
en 2013 bajo el apoyo añadido de la Universidad de Harvard.
Todas ellas están desarrolladas en Python con Django (salvo CourseBuilder que usa el
framework webapp2).
¿Por qué de entre todas escoger Open edX?
Open edX ya tiene más funciones y capacidades que sus competidoras. En unos años la
diferencia será más palpable y puede que no tenga rival. Open edX ofrece entre otras estas
características51: posibilidad de mostrar lecciones grabadas en vídeo con subtítulos e indexación
sobre los propios subtítulos (puedes buscar por palabras que aparezcan en los mismos y al pulsar
sobre los resultados, ir directamente a la sección de vídeo que los contiene), posibilidad de añadir
51
Características de Open edX: http://diariolinux.com/2014/05/21/introduccion-a-open-edx/
IKASNABAR 2014 - OPEN EDUCATION AND TECHNOLOGY
458
materiales de estudio (organizados como libros, notas o simples ficheros), diferentes tipos de
tests y exámenes, laboratorio Virtual con interfaz interactivo (para problemas de electrónica),
calendario/planificación del curso, soporte multi-idioma, foros de discusión, wikis, informes de
progreso, sistema para implementar Learning Analytics, diferentes tipos de evaluación de tareas:
evaluación entre pares, auto-evaluación, hetero-evaluación y evaluación automática, sistema de
notificación de eventos por correo electrónico, emisión de certificados de completamiento,
integración con Google Hangouts y está preparada desde el principio para ser escalable.
Asimismo tiene algunas cualidades únicas o sólo compartidas con una de sus
competidoras (OpenMOOC), a saber:
Open edX y
OpenMooc
Evaluación entre pares y autoevaluación
(también en OpenMOOC)
Sólo Open
edX
Sistema de evaluación automática (usando
técnicas de machine learning)
Sólo Open
edX
Laboratorio virtual con interfaz interactivo de
simulación.
Open edX y
OpenMooc
Sólo Open
edX
Soporte de internacionalización (también
OpenMOOC)
Arquitectura de componentes (llamada
Xblock), que permite construir componentes
de material didáctico que pueden ser
integrados en cualquier curso online que siga
la especificación.
IKASNABAR 2014 - OPEN EDUCATION AND TECHNOLOGY
459
Viendo la tabla de comparaciones de colaboraciones al código de varias plataformas
MOOC (Juanan Pereira, SilviaSanz ‐ Santamaría y Julián Gutiérrez ‐ CINAIC 2013) no es
difícil ver que edX no sólo es un proyecto de más envergadura, sino que además su avance es
mucho más rápido.
Tabla 1: Comparación de colaboraciones al código de varias plataformas
Si añadimos a su velocidad de crecimiento, el hecho de que al proyecto Open edX se han
sumado a colaborar en su desarrollo Google (abandonando así su desarrollo propio en favor de
Open edX), la Universidad de Stanford, la Universidad de Queensland, la Universidad de
Tsinghua y la Universidad de Berkeley y también la están usando una decena de universidades
estadounidenses y otras veinte de otros países, además de algunas empresas no relacionadas
directamente con la educación. Es sin duda la que más futuro tiene.
¿Cómo instalar Open edX para impartir cursos?
A la hora de instalar Open edX hay varias opciones52. En primer lugar debemos escoger
52 Manual de instalación: https://github.com/edx/edx-platform
IKASNABAR 2014 - OPEN EDUCATION AND TECHNOLOGY
460
entre instalar Devstack (versión de desarrollo, pensada para desarrolladores) o Fullstack (versión
de producción, más estable, pensada para instalar la plataforma e impartir cursos). Nosotros
queremos impartir cursos, no desarrollar, de modo que vamos a hacer la instalación de
producción. Asimismo, es posible instalarla usando Vagrant y la máquina virtual Virtualbox,
Amazon Web services o hacerla sobre una máquina (real o virtual) propia con Ubuntu 12.04server. En nuestro caso, quizás con ganas de complicarnos la vida, quizás por optimizar nuestros
recursos disponibles, optamos por hacerlo sobre una máquina virtual que montamos con el
sistema en auge KVM, en la que pusimos la necesaria Ubuntu 12.04. Los pasos de instalación
son:
1. Actualizar Ubuntu y reiniciar:
sudo apt-get update -y
sudo apt-get upgrade -y
sudo reboot
2. Instalar los paquetes necesarios para que la plataforma disponga de las librerías y
herramientas necesarias:
sudo apt-get install -y build-essential software-properties-common pythonsoftware-properties curl git-core libxml2-dev libxslt1-dev python-pip python-apt python-dev
3. Preparamos el entorno para la plataforma:
sudo pip install --upgrade pip
sudo pip install --upgrade virtualenv
4. Descargamos la configuración para la plataforma:
cd /var/tmp
git clone -b release https://github.com/edx/configuration
IKASNABAR 2014 - OPEN EDUCATION AND TECHNOLOGY
461
5. Open edX al instalarse modifica muchas cosas. Entre otras la configuración del
servidor ssh. Si queremos poder entrar a nuestro servidor por ssh con contraseña (y no sólo por
certificado) antes de proceder a la instalación, deberemos cambiar la opción
“COMMON_SSH_PASSWORD_AUTH” a "Yes” en el archivo
/edx/app/edx_ansible/edx_ansible/playbooks/roles/common/defaults/main.yml
6. Creamos un archivo en la carpeta del usuario root “/root/.my.cnf” con los datos de
acceso como administrador a mysql:
[client]
user=root
password=ContraseñaDelAdministrador
7. Instalamos los requerimientos de ansible:
cd /var/tmp/configuration
sudo pip install -r requirements.txt
8. Por último instalamos la plataforma en sí:
cd /var/tmp/configuration/playbooks
sudo ansible-playbook -c local ./edx_sandbox.yml -i "localhost,"
Este último comando realiza muchos procesos necesarios por lo que tarda, y en ocasiones
falla alguno de esos procesos. Normalmente el problema es ocasionado por no poder conectarse
a alguno de los servidores, quizás por saturación de los mismos. En caso de fallar, el mismo
proceso nos indicará al final que ejecutemos el comando de nuevo añadiendo ciertos parámetros
que nos indica para continuar desde donde lo había dejado. O podríamos preguntar en la lista de
correo general de Open edX.53
53 Lista de correo de Open edX: https://groups.google.com/forum/#!forum/edx-code
IKASNABAR 2014 - OPEN EDUCATION AND TECHNOLOGY
462
9. Como paso extra vamos a crear un usuario administrador, para lo cual sólo
necesitaremos un email (que pondremos en el primer comando y después en los siguientes sólo
la parte hasta antes de la arroba) y decidir una contraseña:
sudo -u www-data /edx/bin/python.edxapp ./manage.py lms --settings aws
create_user -e Email@Escogido.com
sudo -u www-data /edx/bin/python.edxapp ./manage.py lms --settings aws
changepassword EmailSinArrobaYDemás
Nos pedirá una contraseña y confirmación de la misma.
sudo -u www-data /edx/bin/python.edxapp ./manage.py lms --settings aws shell
Y dentro de la consola que se nos abre escribimos estás líneas:
from django.contrib.auth.models import User
me = User.objects.get(username="EmailSinArrobaYDemás")
me.is_superuser = True
me.is_staff = True
me.save()
exit()
Como resultado tendremos instalada la plataforma con el servidor web nginx, con la web
del LMS (para los estudiantes) en el puerto 80 y la del CMS (también llamada Studio, para que
los profesores creen contenidos) en el puerto 18010 y tendremos un usuario con capacidades de
administración con el email que hayamos escogido. Además en la subcarpeta /admin de ambas
webs tenemos un panel de administración de Django donde configurar algunas cosas.
Para instalar la traducción54 al castellano deberemos hacer unos pasos extras:
54 Manual de internacionalización: https://github.com/edx/edx-platform/wiki/Internationalization-and-localization
IKASNABAR 2014 - OPEN EDUCATION AND TECHNOLOGY
463
1. Entramos al entorno virtual de edx:
cd /edx/app/edxapp/edx-platform
sudo -- su edxapp -s /bin/bash
source /edx/app/edxapp/edxapp_env
2. Nos creamos una cuenta en http://www.transifex.com, que es donde se están haciendo
colaborativamente las traducciones, y nos damos de alta en el proyecto de traducción de edxplatform55. Luego creamos el archivo ~/.transifexrc con estos datos:
[https://www.transifex.com]
hostname = https://www.transifex.com
username = TuUsuarioDeTransifex.com
password = TuContraseñaDeTransifex.com
token =
3. Editamos en los archivos “lms/envs/common.py” y “cms/envs/common.py” la variable
“LANGUAGE_CODE” de forma que quede igualada al idioma por defecto deseado para las
plataformas LMS Y CMS. Junto a la variable, como comentario, hay un enlace con un listado de
códigos de lenguaje. Hay que usar el formato de Django para esto, que es con las letras en
minúsculas y en el caso de las variantes idiomáticas, con un guión normal. Así por ejemplo, para
el castellano sería: LANGUAGE_CODE = 'es-es'. De paso podemos aprovechar para cambiar la
variable “TIME_ZONE” para tener bien la hora en la web. En nuestro caso concreto es
'Europe/Madrid'.
4. Ejecutamos este comando para descargar, instalar y configurar las traducciones de
transifex:
55 https://www.transifex.com/projects/p/edx-platform/
IKASNABAR 2014 - OPEN EDUCATION AND TECHNOLOGY
464
rake i18n:robot:pull
5. Reiniciamos el LMS y CMS y los Workers:
/edx/bin/supervisorctl -c /edx/etc/supervisord.conf restart edxapp:
/edx/bin/supervisorctl -c /edx/etc/supervisord.conf restart edxapp_worker:
6. Finalmente vamos al panel de administración de Django en
http://TuWeb.TuDominio/admin y añadimos los idiomas que queremos habilitar para que puedan
escoger los usuarios dentro “Dark Lang configs”, pinchando en “Añadir dark lang config” y
poniendo los idiomas deseados al estilo Django, separados por comas. Por ejemplo para
castellano, euskera e inglés usaríamos: “es-es,eu-es,en” (sin las comillas). Así a cada usuario le
saldría a la izquierda la opción de editar su idioma preferido.
Imagen 1: Añadida configuración de idiomas
Imagen 2: Resultado para el usuario de añadir idiomas
IKASNABAR 2014 - OPEN EDUCATION AND TECHNOLOGY
465
No se recoge en este documento la instalación de un tema, puesto que el sistema de temas
está en actual migración a un sistema mejor, y el actual tiene varios problemas, que dada dicha
migración dudo que se resuelvan.
IKASNABAR 2014 - OPEN EDUCATION AND TECHNOLOGY
Referencias
Pereira, Juanan. Comparación de diferentes plataformas de código abierto
http://edx.asmoz.org/pdf/estudio_comparativo.pdf (Consultado en 2014-Mayo-30)
Manual de instalación de Open Edx en producción sobre Ubuntu 12.04
https://github.com/edx/configuration/wiki/edX-Managing-the-Production-Stack
(Consultado en 2014-Marzo 20)
Manual de manejo de entorno de producción de Open edX
https://github.com/edx/configuration/wiki/edX-Managing-the-Production-Stack
(Consultado en 2014-Marzo-20)
Manual de comandos adicionales de manejo de Open edX https://github.com/edx/edxplatform/wiki/Shell-commands (Consultado en 2014-Marzo-20)
Manual de internacionalización de Open edX https://github.com/edx/edxplatform/wiki/Internationalization-and-localization (Consultado en 2014-Marzo-22)
Manuales de Open edX de la fundación Asmoz http://edx.asmoz.org/ (Consultado en 2014Mayo-30)
466
Descargar