jueves, 25 de abril de 2013

Curso de Android de MiriadaX de la Universidad Politécnica de Valencia: mi propia opinión


Acabo de finalizar el curso de Android de la Universidad Politécnica de Valencia a través de la plataforma MiriadaX.

Como conclusión general, decir que, tras 12 semanas de curso, sigo sin saber apenas nada de creación de aplicaciones en Android. Tengo una pequeña ligera idea de las cosas que se pueden hacer, pero no me veo suelto en el tema, en absoluto. Me siento con una sensación parecida a haber leído el índice de un libro de programación en Android, quizás un poco más.

En fin, si quieres ver en detalle mi opinión, aquí te la dejo, contada de forma sintética, casi en formato periodísitico, punto por punto mi opinión, en forma de titulares, por si no quieres leerla entera, que puedas llevarte una idea global y profundizar en los apartados que prefieras.




En general el curso ha estado aceptable.

Destacado 1. Material de incuestionable calidad

Las explicaciones están muy muy detalladas, paso a paso, indicando claramente qué archivos abrir, crear, modificar,... alucinante también, muy minucioso

Destacado 2. Conferencias online en directo


Me ha sorprendido también que el profesor Jesús Tomás Gironés ofreciera varias video-conferencias online en directo para resolver dudas. He asistido a una, y me ha parecido alucinante la entrega de los profesores para resolver cualquier tipo de incidencias.


Destacado 3. Material disponible después del curso


Han habilitado una web en la que poder seguir accediendo al material, a los videos, a los proyectos,...
Una muestra más de la entrega del claustro de profesores.


Destacado 4. Evaluación formativa


En todo momento uno puede ver su evolución en el curso: número de temas terminados, porcentaje de avance de cada tema,...


Destacado 5. Multitud de ejemplos, y muy variados



Durante todo el desarrollo del curso se suministran multitud de ejemplos, de cada uno de los temas estudiados, con el código y todo lujo de detalles en las explicaciones. Me valdrá como un material de referencia.




Sin embargo, he encontrado algunos aspectos que habrían conseguido que este curso pasara de bueno a excelente.
Problema 1. Programar a base de Copy~Paste

Éste ha sido para mí el principal defecto o carencia del curso. Creo que es un error grave. A programar se aprende programando, no cortando y pegando. Es muy fácil realizar un problema cuando uno ve la solución de otro. Lo difícil es que se te ocurra a ti, intentarlo, compilar y volver a compilar, probar y volver a probar.
Esa es la forma en que los conocimientos se vuelven sólidos, lo estudiado se graba a fuego en nuestra cabeza.

Para ilustrar mejor esta idea, me gustaría que pensaran en resolver problemas de matemáticas. No es lo mismo que te "dicten" la solución, a tener que poner por tí mismo todos los conocimientos aprendidos en marcha para saber qué operación aplicar.

Problema 2. Solo 2 entregables 
En mi propia experiencia como alumno de Ingeniería Informática, los profesores nos sometían a prácticas semanales. Cada semana había un nuevo reto que resolver. 

También en otros cursos que he hecho de programación estilo MOOC, mención especial para el curso de programación en Python de Coursera (https://www.coursera.org/course/interactivepython) se repite este esquema: mini-proyectos semanales.

En este curso de 12 semanas sólo han habido 2 entregables, dos proyectos a entregar, que además, no entregarlos no implica nada. Uno aprueba igualmente el curso aún no entregando los proyectos. ¿Dónde queda la cultura del esfuerzo?
No corregir el trabajo de los compañeros tampoco tiene consecuencias.


Problema 3. Evaluación entre pares muy pesada 
Derivado sin duda del punto anterior, ya que cuando toca corregir el trabajo de los compañeros, se acumula una gran cantidad de código por revisar.

Problema 4. Ausencia de una rúbrica de corrección 
Volviendo al curso de Python en Coursera, la corrección se hacía absolutamente objetiva, ya que entregaban una rúbrica detallada de los aspectos a valorar de los mini-proyectos semanales de programación

Problema 5. Excesivamente extenso 
Es cierto, el curso es muy completo, se tocan todos, o prácticamente todos los aspectos de programación de aplicaciones en Android, lo cual me ha parecido excesivo. Si a esto le sumamos que apenas han habido entregables, termino con la sensación de no tener nada claro, de confundir conceptos básicos, de tener un maremágnum de ideas mezcladas en la cabeza y que encima no me han incitado a practicar, ya que los retos son resueltos por el sistema de copy-paste.

He ido volcando a un archivo .odt todo el texto que nos proponen para leer y son unos 45 páginas por tema, es decir, más de 500 páginas.

Ni hubiera tocado todos estos temas ni cada tema lo hubiera tratado con tanta profundidad. Por citar un ejemplo, no creo que en un curso de 12 semanas merezca la pena nombrar ni profundizar en todos los modos de almacenar datos de forma permanente. Hubiera sido preferible trabajar solo con ficheros, o solo con bases de datos, pero haber hecho una práctica real, que me hiciera trabajar con ficheros, para así verdaderamente poder asimilar, interiorizar estos conocimientos.

Problema 6. El profesor lee textualmente las diapositivas 
Y de nuevo, sin ánimo de ofender, pero esto no funciona, aburre, provoca que el alumno pierda el interés en lo que dice el profesor. El profesor se convierte en un repetidor.

Volviendo al curso de Python en coursera, el profesor no entregaba estas transparencias.

Problema 7. Ausencia absoluta de humor 
Si uno se anima a escuchar al profesor, ha faltado un toque de humor, para hacer más amenas las explicaciones.


Algunas conclusiones y propuestas de mejora 
En primer lugar, espero que mi crítica sea entendida como eso, como una crítica constructiva, con el ánimo de mejorar posibles próximas ediciones del curso

El curso planteado con este formato no difiere sustancialmente de haber tomado un manual de programación en Android de una librería y haber leído en forma secuencial cada uno de sus capítulos.

A pesar de todos los problemas que he listado, el curso no me ha decepcionado. Me queda un tema para acabar y pienso terminarlo. 

Este tipo de detalles son los que diferencian un buen curso de un curso excelente.

Insisto en que prueben el curso de programación en Python de Coursera, y ver si son capaces de, después de iniciado, no caer en la tentación de continuarlo.

Sería mucho más provechoso si cada semana se propusiera un mini-reto de programación, suficientemente sencillo para que solo abarque exactamente el temario visto en esa semana (y anteriores) y suficientemente complejo para que no sirva el método de copy-paste

Estos mini-retos deberían ser evaluados justo en la semana siguiente, con una rúbrica objetiva de corrección, de tal manera que los evaluadores califiquen a sus compañeros con absoluta precisión cada mini-proyecto.

Reduciría las ambiciones del curso, no tocaría absolutamente todos los temas. Lo plantearía como una introducción a Android, pero garantizando que los puntos que sí se trabajan, el alumnado termina con conocimientos sólidos sobre ellos.

Eliminaría tantísimo texto escrito, de tal manera que los videos tomaran valor. Y los dotaría de alguna pincelada de humor. No deberían haber más de 60 minutos de videos a la semana, de modo que la mayor parte del tiempo se pudiera aprovechar en trabajar, en abordar el mini-proyecto semanal y en evaluar entre pares el mini-proyecto de la semana anterior. Ahí es donde realmente se aprende. El prestigioso pedagogo estadounidense Edgar Dale ya indicaba desde 1967 que, después de 2 semanas, solo retenemos aproximadamente un 10% de lo que leemos, sin embargo somos capaces de recordar a largo plazo un 75% de lo que practicamos (http://es.wikipedia.org/wiki/Edgar_Dale)

Espero sinceramente que esta crítica sirva realmente para mejorar posibles próximas ediciones del curso.