martes, 10 de septiembre de 2013

Google y el MIT fusionan Google Course-Builder y edX para crear una plataforma MOOC conjunta

1 comment

¡Primicia! 

No podemos deciros mucho más, pero podemos adelantar que Google, tras anunciarnos que estaba trabajando en ello durante el pasado encuentro de desarrolladores y usuarios de Course builder el pasado mes de junio en Zurich, ha pasado a los hechos y ha establecido una alianza con el MIT (Massachusetts Institute of Technology) para trabajar en la convergencia de las plataformas de MOOC que ambas instituciones promueven bajo la filosofía de Open Source.

Esta alianza se va a hacer pública a nivel mundial en breve. Esta convergencia supone el nacimiento de un gigante en cuanto a potencia, capacidad de desarrollo y ámbito en el mundo del e-learning y, por supuesto, en el de los MOOC. Las nacientes comunidades de desarrollo en torno a estas dos plataformas ahora podrán trabajar en un solo sentido y las expectativas son enormes.

El equipo de UNIMOOC ha sido invitado a participar desde el principio en ello y pronto podremos contaros novedades al respecto. Los primeros resultados de esta alianza se espera que tarden aún como mínimo un año en ver la luz, Mientras tanto, se siguen manteniendo las respectivas versiones estables de los dos productos, que en el caso del Coursebuilder es la versión 1.5.
Leer Más...

lunes, 8 de julio de 2013

Novedades GCB 1.5.0

Leave a Comment
El pasado 28 de Junio, el equipo del Google Course Builder lanzó la nueva versión 1.5.0. 

En esta nueva versión han añadido algunas características interesantes que analizaremos en este post.



Banco de preguntas

En primer lugar, destacaríamos la nueva organización de preguntas en Course Builder. Ahora, además del formato antiguo, podemos tener un "banco" de preguntas comunes tanto para examenes como para actividades.
Banco de preguntas
Además, y esto es una gran novedad, podemos editar de forma sencilla estas preguntas, .
Editor de preguntas
De esta forma, podemos crear rápidamente un conjunto de preguntas y en base a ellas hacer exámenes y actividades sin tener que pelearnos con ficheros JavaScript como hasta ahora.

NOTA: Para poder usar esto, debemos tener nuestro curso en formato "editable", es decir, deberemos crear uno nuevo e importar los datos desde los ficheros CSV.

Mejoras en multicurso

El soporte para tener más de un curso en una única aplicación ha mejorado, sobretodo de cara al usuario. Ahora podemos mostrarle un listado con todos los cursos que manejamos en nuestra plataforma.
Explorador de cursos
De esta forma el usuario puede explorar de un vistazo todos nuestros cursos e incluso, ¡podemos crear de forma sencilla nuestro propio "Coursera"!

Si ya tenemos varios cursos y queremos mostrar el listado, deberemos activarlo con la opción gcb_enable_course_explorar_page en las opciones del panel de administración.

Otras novedades

Además de estas dos características "destacadas", se han corregido algunos errores y ha habido otros cambios menores (como la separación de la configuración en dos ficheros: course.yaml y course_template.yaml). 


También han añadido una nueva sección en la wiki para desarrolladores, dando algunas directrices generales a la hora de extender o personalizar Course Builder: https://code.google.com/p/course-builder/wiki/ExtendCB

En definitiva:
La nueva versión de Coursebuilder 1.5 añade un cambio fundamental en el sentido de acercar a muchos profesores sin demasiados conocimientos de informática la posibilidad de crear sus MOOC's con esta herramienta. 

Aunque la construcción de un curso siempre va a revestir cierta complejidad, la escritura de las actividades y exámenes se ha simplificado mucho y ya no es necesario conocer javascript ni nada parecido para escribir las lecciones o actividades.

Leer Más...

viernes, 31 de mayo de 2013

Personalizar Google Course Builder

Leave a Comment

Personalizar Google Course Builder

En este post veremos lo sencillo que es personalizar nuestro propio MOOC usando Google Course Builder. Vamos a ver las diferentes opciones que nos ofrece el fichero course.yaml para cambiar los diferentes textos de nuestro curso.

Personalizar course.yaml

El fichero course.yaml es donde encontramos toda nuestra información estática necesaria para el curso. En este fichero encontramos varias secciones claramente diferenciadas.

Para empezar encontramos la sección course, que es donde podemos especificar toda la información general del curso, como el título, el mensaje principal,… Los campos que podemos encontrar en este apartado son:

·         admin_users_emails: Donde podremos especificar los correos electrónicos de los administradores del curso, un ejemplo sería ‘[test@example.com test2@example.com]’. Como vemos los correos tiene que ir entre corchetes y separados por espacios.
·         title: Esta opción modifica el título del curso como ya hemos podido ver en post anteriores.
·         blurb: Es el mensaje que se muestra en la página principal, para poder utilizar varias líneas en este campo hay que empezar con el carácter | y comenzar en una línea nueva además hay que dejar el mensaje tabulado usando espacios ya que es el formato que utilizan los ficheros .yaml.
·         instructor_details: Aquí pondremos la información de la persona que organiza el curso.
·         main_video y main_image: El video inicial del curso lo podemos configurar en este apartado, además podemos elegir si utilizar un video o simplemente especificar una imagen. Si queremos un video tendremos que especificar main_video y dentro de este especificar la url del video embebido de youtube. Por otro lado si simplemente queremos una imagen utilizaremos main_image especificando su url y su alt_text, esta última propiedad es una pequeña descripción de la imagen.
·         forum_url y forum_embed_url: aquí podemos especificar las url a nuestro foro, si hemos creado un foro para el curso.
·         locale: por ultimo encontramos la opción del idioma, aquí podemos indicar el idioma del curso para traducir todos los enlaces y diferentes elementos del curso. Para cambiarlo a español hay que indicar es_ES.

A continuación podemos ver un ejemplo de los datos anteriores modificados para ver como quedarían en el curso:

 Con estas modificaciones la página principal de nuestro curso quedaría, por ejemplo, de la siguiente forma:



El siguiente apartado que es interesante modificar es el de institution. Este apartado aunque corto, ya que solo tiene tres campos, es muy importante. Aquí es donde podemos modificar el logo de nuestro curso y el enlace del pie de página a nuestra institución.
  •         name: establece el nombre de nuestra institución que se muestra en el pie del curso.
  •          url: la dirección web de nuestra institución, donde nos llevara al pulsar tanto el logo como el pie del curso.
  •          logo: por un lado está la url a nuestro logo y por otro un texto descriptivo del logo.


En el apartado base, también encontramos dos campos muy interesantes que normalmente querremos modificar:
  • show_gplus_button: si queremos o no mostrar el botón de google plus.
  •  nav_header: el título que aparece al lado del logo.


Modificando todos los apartados que hemos visto hasta ahora, tendremos la página principal del curso con todos nuestros datos. Ahora vamos a ver que campos hay que modificar para cambiar el mensaje del formulario de registro y los mensajes después de finalizar un examen.

Para el registro, encontramos la sección reg_form donde modificando el apartado header_text cambiaremos el mensaje que aparece en el formulario de registro. Además encontramos una opción que nos permite desactivar el registro por cualquier motivo, esta es la opción can_register, si la ponemos a False los estudiantes no podrán registrarse.

En cuanto los mensajes después de realizar un examen, los encontramos en assessment_confirmations, por un lado encontramos el mensaje si se ha aprobado el examen en el apartado pass y por otro lado el mensaje si ha suspendido en el apartado fail.

Con todo lo que hemos visto anteriormente, ya tenemos preparado nuestro MOOC para poder publicarlo y empezar a registrar a alumnos.
Leer Más...

lunes, 29 de abril de 2013

Configuración del App Engine

Leave a Comment
Hay tres parámetros básicos que podemos usar para que el App Engine se ajuste a nuestras necesidades. Los valores que toman por defecto son bastante aceptables, pero para exprimir hasta el último ciclo de la plataforma tendremos que modificarlos.

Lo primero que tendremos que hacer es entrar en la consola de administración, que está situada en appengine.google.com, y ahí seleccionaremos nuestra aplicación. En el menú lateral, bajo la sección ‘Administration’ encontraremos la opción ‘Application Settings’, una vez dentro bajaremos hasta ‘Performance’, aquí es donde haremos todos nuestros cambios.

Tipo de procesador

La primera opción que podemos configurar es ‘Frontend Instance Class’ donde podemos elegir entre cuatro opciones diferentes (F1, F2, F4 y F4_1G), que se diferencian en la velocidad del procesador y la cantidad de memoria que tiene disponible. Por defecto está seleccionada la maquina mas sencilla, la F1, que nos ofrece un procesador a 600MHz y 128MB de RAM.



Si nuestro objetivo es reducir costes esta opción la dejaremos tal y como esta, pues cuanto mejor sea la máquina seleccionada, más nos costarán las horas que esté funcionando. Cada hora que tengamos una F2 funcionando nos cuesta el doble que con una F1, y la F4 cuesta el cuádruple.


Estancias en espera


La opción ‘Max Idle Instances’ nos permite determinar el número máximo de instancias de la máquina que tiene que haber en espera en cualquier momento. Estas instancias están preparadas arrancar inmediatamente en el momento en que las instancias que se están ejecutando tengan mucha carga.



Por defecto se pone en automático, de forma que arranca y deja en espera instancias cuando empieza a aumentar el tráfico, y cuando no hay deja solo una. Un valor alto hará que nuestra aplicación responda mejor durante momentos de mucha carga, pero aumentará los costes. Si queremos reducir costes tendremos que darle un valor pequeño. Hay que tener en cuenta que si tenemos un pico de actividad con pocas instancias en espera es posible que los usuarios noten retardos en las respuestas.


Tiempo de espera

Esta opción determina cuánto tiene que aguantar una petición a que se libere una instancia en ejecución antes de despertar una que esté en espera. Por defecto todas las peticiones esperan 10ms como mínimo.


Podemos aumentar este valor, de forma que si una instancia está cargada de trabajo y llega una nueva petición este se quede en espera a que se aligere la carga. Un valor pequeño hará que los usuarios experiencien menos latencia, pero puede aumentar los costes al arrancar nuevas instancias, mientras que un valor alto mantendrá a los usuarios en espera durante más tiempo, pero reducirá los costes ya que, por lo general, arrancará menos instancias cuando hay mucha carga.

Como hemos visto, el App Engine nos ofrece varias alternativas para reducir el coste de nuestra aplicación, pero hay que tener en cuenta las consecuencias, y saber que es lo que nos hace falta ¿Velocidad de respuesta o costes reducidos?
Leer Más...

viernes, 26 de abril de 2013

Primeros pasos con Google Course Builder

27 comments

Introducción

Google Course Builder nació como un experimento de Google para montar un MOOC: Power Searching with Google. A raíz del éxito de este curso, y de los MOOC en general, el uso de esta herramienta se ha extendido tanto en su desarrollo por parte de Google y otras entidades (es código abierto) como en su uso en algunas iniciativas de éxito como UniMOOC - AEmprende.



En este post veremos lo sencillo que es, usando Course Builder, montar nuestro propio MOOC en unos cuantos pasos y cómo subirlo a la "nube" para que esté disponible para todo el mundo.

Instalación Google App Engine

Una de las razones del éxito de Course Builder es que está alojado en Google App Engine, la nube de Google. Esto significa que no tenemos que preocuparnos por alquilar/comprar servidores, montar bases de datos, balancear la carga, etc. App Engine gestiona todo por nosotros de forma automática. Además también nos aporta una forma sencilla de probar todo lo que añadamos al curso en nuestro propia máquina sin tener que subirlo a la nube, lo cuál resulta muy útil cuando añadamos nuevos contenidos y necesitemos probarlos  antes. Ahora vamos a instalar ésta última herramienta, el 'launcher', para montar nuestro curso en local.

Instalando Python 2.7

En primer lugar deberemos instalar Python 2.7 en nuestra máquina. Python es uno de los lenguajes que nos permite usar el App Engine y más concretamente el lenguaje en que está desarrollado el Course Builder, por lo que necesitamos las herramientas necesarias para poder ejecutarlo. Para descargarlo, vamos a http://www.python.org/download/releases/2.7/ y en la sección "Downloads" elegimos la correspondiente a nuestra plataforma (está disponible en Windows, Mac o incluso el código fuente). 

La instalación es muy sencilla, pero si tenemos algún problema siempre podemos acudir a la guía oficial de instalación de Python.

Instalando AppEngine SDK

Con Python ya instalado, podemos descargarnos el SDK (Software Development Kit) del Google App Engine (¡versión Python!) de https://developers.google.com/appengine/downloads. Está disponible para Windows, Mac OS y Linux (lo cual es otro punto a su favor). La instalación es muy sencilla en las tres plataformas, por lo que no entraré en detalles. Si tenéis algún tipo de problema, siempre podéis acudir a la guía oficial de Google.

Ahora podremos buscar en nuestro PC un ejecutable llamado GoogleAppEngineLauncher. Con él podemos manejar todo lo relacionado con el App Engine sin apenas tocar la línea de comandos. La interfaz es muy sencilla.
GoogleAppEngineLauncher en Mac OS
En el centro podemos ver todas las aplicaciones que tenemos activas en nuestra máquina (NO subidas a la nube, sino en local) y en la fila de arriba podemos ver varios botones. Los más importantes nos permiten:
  • Ejecutar la aplicación seleccionada en local (Run)
  • Parar su ejecución (Stop)
  • Ir a la URL en local de la aplicación seleccionada (Browse)
  • Ver los logs (Logs)
  • Subirlo a la nube (Deploy)

Google Course Builder

Con el punto anterior finalizado, ahora ya podemos descargarnos el Google Course Builder (¡por fin!) y ejecutarlo en nuestra máquina. Para ello, vamos a la sección de "Downloads" del repositorio oficial del GCB y elegimos la última versión (en estos momentos es la 1.3.1). Si descomprimimos la descarga, veremos varios archivos y carpetas. Este es el código (sí, el código) del GCB, ya que es una plataforma abierta que permite obtener y modificar su código a nuestro gusto.

Ejecutando GCB en local

Ahora volvemos al SDK del App Engine, más concretamente a la aplicación que hemos comentado antes (GoogleAppEngineLauncher) y clickamos en File > Add Existing Application... 
Menú File > Add Existing Application...
En Path ponemos la ruta al directorio del GCB que acabamos de descargar y pulsamos en Add.
Menú para añadir una aplicación existente
Con la aplicación añadida podemos pulsar en el botón Browse de la aplicación del App Engine y nos llevará a la URL donde está disponible el GCB (siempre desde nuestra máquina, aún no estamos en la nube) donde veremos el curso por defecto del GCB.
Curso por defecto de GCB

Añadir nuestros contenidos al GCB

Ahora que tenemos el curso por defecto ya funcionando, vamos a sustituir sus contenidos por los nuestros. 

Editando ‘course.yaml’

Para ello, en primer lugar, vamos a modificar  algunos parámetros como el título o el idioma en el fichero 'course.yaml' que encontramos en el directorio raíz del GCB. El propio fichero está muy bién documentado, pero si tenemos dudas podemos ir a https://code.google.com/p/course-builder/wiki/CourseSettings, donde está explicado en detalle qué modifica cada uno de los puntos. 

De momento vamos a cambiar el idioma y el título del curso. Para ello editamos en 'course.yaml' los parámetros 'title' y 'locale', y los cambiamos por "Nuestro curso" y "es_ES", respectivamente. Guardamos el fichero, recargamos la página en el navegador y deberíamos ver algo así:
GCB con nuestros parámetros

Añadiendo nuestras unidades

Con estos parámetros modificados, vamos ahora a añadir una nueva unidad. Nos vamos al fichero 'data/unit.csv', donde están las unidades del curso. En  la primera línea podemos ver los campos que debemos añadir:
  • id: Número entero que representa a la unidad. Debe ser único (entre los ids del resto de unidades), ya que identifica unívocamente a una unidad.
  • type: Indica que tipo de unidad es. Puede ser: 'A' (es un Assessment o examen), 'U' (es una unidad propiamente dicha, con lecciones), 'O' (es cualquier otra cosa, como un enlace externo).
  • unit_id: Este campo varía su significado según el tipo de unidad: si el tipo es 'A' representa el código que debe identificar al examen ('final', por ejemplo), si el tipo es 'U' representa el orden en que se mostrará en la planificación del curso y si el tipo es 'O', representa el enlace al recurso externo.
  • title: Título o nombre de la unidad, sea del tipo que sea.
  • release_date: Fecha en que la unidad estará disponible para los alumnos.
  • now_available: Si su valor es 'True', indica que la unidad está disponible ahora mismo. Por el contrario, si es 'False', indica que está cerrada.
Vamos a añadir nuestra unidad con los siguientes valores:
  • id: 12 (es el siguiente id disponible)
  • type: U (ya que va a ser de tipo unidad)
  • unit_id: 7 (saldrá la última)
  • title: Nuestra nueva unidad
  • release_date: No ponemos nada, ya que estará disponible siempre
  • now_available: True
La línea a pegar al final, sería:
12,U,7,Nuestra nueva unidad,,True

Si recargamos la página principal del curso veremos que nuestra unidad aparece al final pero, a pesar de haberla marcada como activa, no nos deja acceder. De hecho, no nos deja acceder a ninguna. Esto es porque, aunque la aplicación ahora mismo sea una "demo" en local es una "demo real", por lo que debemos registrarnos como estudiantes. Para ello vamos a "Registro" e introducimos nuestro nombre.
Formulario de registro
Ahora si volvemos a la pestaña de "Curso" ya veremos que las unidades son accesibles y al final está la nuestra.
Planificación de nuestro curso
No obstante, si entramos en ella nos avisa de que aún no tiene ninguna lección. ¡Vamos a añadirle alguna!

Añadiendo nuestras lecciones

Nos vamos al fichero 'data/lesson.csv'. Como en el caso de las unidades, en la primera linea vemos los campos que tiene cada lección:
  • (1) unit_id: unit_id de la unidad a la que está asociada la lección.
  • (2) unit_title: Título de la unidad a la que está asociada la lección.
  • (3) lesson_id: id de la lección. Este id representa también su orden dentro de la unidad, por lo que debe empezar en 1 y ser consecutivo entre las lecciones de una misma unidad.
  • (4) lesson_title: Título de la lección.
  • (5) lesson_activity: Si vale 'Yes', indica si la lección tiene o no alguna actividad/ejercicios. Si está en blanco, no tiene.
  • (6) lesson_activity_name: Si la lección tiene alguna actividad, es su nombre.
  • (7) lesson_notes: URL a la versión en texto de la lección.
  • (8) lesson_video_id: ID del video en YouTube de la lección.
  • (9) lesson_objectives: Objetivos de la lección. En este campo podemos meter todo el código HTML que queramos.
En esta imagen, obtenida del repositorio del GCB, podemos ver en que se traduce cada campo:
"Mapa" de propiedades de las lecciones
Vamos a añadir nuestra nueva lección con los siguientes valores:
  • unit_id: 7 (es el campo unit_id de nuestra unidad, no el de id)
  • unit_title: Nuestra nueva unidad
  • lesson_id: 1 (la primera leccion de la unidad)
  • lesson_title: Nuestra nueva lección
  • lesson_activity: Lo dejamos vacio ya que no tendrá ninguna actividad.
  • lesson_activity_name: Dado qe no no tenemos ninguna actividad, lo dejamos vacío también.
  • lesson_notes: Lo dejamos vacío por que no añadiremos notas a nuestra lección.
  • lesson_video_id: 0gSnhdBk-Uo
  • lesson_objectives: <ul><li>Aprender a montar un MOOC con Google Course Builder</li></ul> (recordad que es código HTML)
La línea para pegar al final del fichero sería
7,Nuestra nueva unidad,1,Nuestra nueva lección,,,,0gSnhdBk-Uo,<ul><li>Aprender a montar un MOOC con Google Course Builder</li></ul>

Si ahora recargamos la página de nuestro curso y accedemos a nuestra unidad podremos ver nuestra nueva lección creada:
Nuestra nueva lección
De esta manera podríamos añadir nuestros contenidos al curso. En posteriores posts explicaremos como añadir actividades (ejercicios) asociadas a lecciones y assessments (examenes), así como personalizar más el curso (cambiar colores, etc).

Subirlo a la nube

Tenemos nuestro curso, con nuestros contenidos y nuestros parámetros pero nos queda una cosa: subirlo a la nube de Google para que todo el mundo pueda aprender con nuestro curso. 

Para ello primero tenemos que crearnos una aplicación el App Engine (podemos hacerlo con nuestra cuenta de GMail), por lo que nos vamos a https://appengine.google.com/ y clickamos en "Create Application".

Ahora, en "Application Identifier", ponemos el identificador de nuestra aplicación (pruebagcb en nuestro caso). El identificador e único entre todas las aplicaciones del App Engine y define la URL desde la que será accesible después. En "Application Title" ponemos el título de nuestra aplicación (no es tan importante como el identificador) y en "Authentication Options" elegimos "Open to all Google Accounts". Estos último es especialmente importante, ya que es necesario para que el GCB funcione.
Panel de creación de aplicaciones en AppEngine
Una vez creada, nos vamos al fichero 'app.yaml' de nuestro curso y cambiamos el valor del campo 'application' por el identificador de nuestra aplicación (para nosotros, pruebagcb). Por lo tanto, la línea quedaría así:
application: pruebagcb

Ahora nos vamos a la aplicación que instalamos en nuestro equipo en los primeros pasos, el launcher del App Engine, y elegimos nuestro curso (que ahora estará identificado con el identificador de nuestra aplicación). Pulsamos sobre el botón "Deploy", ponemos nuestras credenciales de GMail y ya está. La aplicación se encargará ahora de subirla a la nube y nos mostrará el progreso en una nueva ventana. Una vez acabe, mostrará la siguiente línea:
*** appcfg.py has finished with exit code 0 ***

Si ahora vamos a http://<identificador de nuestra aplicación>.appspot.com/, http://pruebagcb.appspot.com/ en nuestro caso, veremos nuestro curso, que ahora sí que está en la nube, y por tanto accesible para cualquier estudiante que quiera aprender con nosotros. 

Leer Más...