Padding con Vim

Tenemos la siguiente imagen ASCII:

Captura de pantalla 2016-07-22 a las 20.06.50

Si nos fijamos, hay líneas de distintas longitudes (las más largas son de 80 caracteres). Queremos hacer padding (rellenar) con el carácter ‘#’ para que todas las líneas sean de la misma longitud (80). Podemos hacerlo con un pequeño script en cualquier lenguaje de programación, pero la idea es: ¿se puede hacer con una única línea que use inteligentemente expresiones regulares y funciones en Vim? Sí 🙂

:%s/\v^.*$/\= submatch(0) . repeat("#", 80 - len(submatch(0)))

\v : magia, literal (ver la ayuda). Todos los caracteres que aparezcan tras este patrón se tomarán como caracteres especiales (no es necesario escaparlos). Efectivamente, olvídate de poner \(.*\) para hacer agrupaciones, basta con \v(.*)

^.*$ : desde el comienzo hasta el final de línea

\=  : comienzo de función

submatch(0) : primer match de la expresión regular (es la línea completa)

.  : concatenar con lo siguiente

repeat(«#», 80 – len(submatch(0)))  : repetir el carácter #  x veces, donde x = 80 – longitud de línea

Éste es el resultado:

Captura de pantalla 2016-07-22 a las 20.19.27

Facebook chat #bots might be the future, but right now they feel like the past https://t.co/ovK5si6ePM via @DigitalTrends

Plataformas MOOC comparadas (III)

Progreso del alumno

En MiríadaX no han dejado de lado esta característica fundamental, pero creo que puede mejorarse significativamente. Para ello, compararemos la zona de progreso de edX con la de MiríadaX.

En edX, el alumno puede ver de un sólo vistazo, sin necesidad de hacer scroll cuántas tareas ha completado hasta el momento, cuántas le quedan por completar, cuál es la nota de corte para dar por aprobado el curso y el porcentaje actual de completamiento del curso:

progreso_edx

De forma sucinta, se indica el resultado de cada prueba y la fecha en la que se realizó.

Para ver el progreso de un alumno en MiríadaX, debemos pulsar en «Notas». ¿Notas? Inicialmente entendí que era una zona para anotaciones relacionadas con el curso. ¿Por qué no «Progreso»? O de forma alternativa, «Calificaciones». En fin, esto puede ser un detalle sin importancia. Lo importante es otra cosa:

Captura de pantalla 2016-04-26 a las 22.52.18

Lo primero es la falta de claridad. Ya hablamos de este «pecado» en otras entradas de esta serie. Pero en este caso se hace otra vez evidente. ¿Cuántos puntos (porcentaje) llevo en total? ¿Cuántos debo alcanzar para «aprobar» (nota de corte)? ¿Cuál es la calificación (o nota, siguiendo con la nomenclatura de MiríadaX) del módulo 1? Este curso tiene 10 módulos… Para ver el resultado de cada módulo debo desplazarme hasta el infinito en vertical…

Más aún, en la última entrega obligatoria del módulo 3, vemos un «No aprobado».

miriadax_no_aprobado

Sin embargo, estoy totalmente seguro de que entregué la tarea y la tengo bien calificada por mis compañeros/as del curso. ¿Qué ocurre? No es evidente, pero el problema es que yo aún no he evaluado el trabajo de 3 de mis colegas. El estado no debería ser «No aprobada», sino «En progreso». De hecho, tengo hasta el 30 de mayo para hacer esas evaluaciones. Por cierto, no puedo acceder directamente a esa tarea para ver la razón de ese «No aprobada». De hecho, si pulso en «Detalle», se abre una ventana modal:

Captura de pantalla 2016-04-26 a las 23.00.20

Pero no hay enlaces para ver el enunciado de la tarea o las tareas de mis compañeros que me quedan por evaluar.

Tengo que pulsar en «Inicio», desplazarme al «Módulo 3», pulsar en «Acceder», buscar la entrega obligatoria, pulsar en ella y ahí, por fin, ver la causa de mis males:

corregir_edx

Evalúo los dos trabajos que me quedan y ¡premio! ¿Era intuitivo? Yo creo que no.

edx_aprobado

Plataformas MOOC comparadas (II)

Enunciado de los ejercicios 

Lo primero que podemos decir es que el interfaz gráfico, diseño y presentación de la sección de presentación de los ejercicios es muy mejorable. Me limitaré a mostrar una captura de pantalla:

Captura de pantalla 2016-04-25 a las 22.55.36

Desde luego, es de todo menos atractiva. Enormes cantidades de texto, sin gráficos ni separaciones evidentes. Ojo, no creo que sea un error del creador (creadores) del curso. Creo que es un error de diseño de la plataforma. Definitivamente no está preparada para impartir cursos MOOC. Veamos algo similar para el caso de Coursera:

maxresdefault

En la parte superior hay 3 cajas que dividen claramente las fases de un Ejercicio evaluado entre pares. En la parte central hay espacio para el enunciado del ejercicio y para aceptar el código de conducta. En la parte inferior hay una caja de texto para editar la respuesta o indicar mediante un enlace dónde encontrar la solución detallada. También permite guardar borradores (Save Draft), aspecto éste que brilla por su ausencia en MiriadaX.

En Coursera, también se especifica mediante colores (gris, verde, rojo) en que estado nos encontramos dentro de cada fase:

coursera_p2p_colores

En MiriadaX no existe este tipo de indicadores. Tampoco podemos auto-evaluarnos:

Captura de pantalla 2016-04-25 a las 23.23.16

Rúbricas (o la ausencia de ellas)

En MiriadaX, el interfaz para evaluar el trabajo de un compañero/a no dispone de una rúbrica de ayuda. No hay criterios, se limita a mostrar una caja de texto y una única puntuación, de 0 a 100:

sin_rubrica_miriadax

Esto es tremendamente incómodo. Al final, lo que hacen los alumnos es limitarse a escribir «Muy bien» o «Sigue así». Dos o tres palabras y una nota de 100. Algo rápido y sin críticas constructivas de ningún tipo. En Coursera, sin embargo, el interfaz es más rico, se dispone de rúbricas de evaluación y cada criterio puede ser evaluado de forma independiente. Además, existe también una caja de texto donde, en algún curso, se pide cumplimentar al menos 20 palabras:

rubric_webform

Además, el alumno siempre tiene disponibles los criterios de evaluación de la rúbrica cuando está respondiendo a las preguntas/trabajos, lo que facilita la labor de respuesta:

coursera-fail-2-1