¿Qué tan efectivos son los MOOC en la programación de enseñanza en comparación con el aprendizaje en persona?

Es difícil para los verdaderos MOOC proporcionar un nivel efectivo de soporte para una clase de programación de introducción.

Tanto los MOOCs como los presenciales pueden dar conferencias sobre un concepto, pero la columna vertebral de cualquier clase de programación son los proyectos, que es donde ocurre el verdadero aprendizaje:

  1. El estudiante lee los requisitos del proyecto y resuelve un resumen de qué hacer → aprende a leer los requisitos y diseña una estructura para cumplirlos
  2. El estudiante comienza a escribir el código real, a menudo refiriéndose a las notas y buscando documentación → obtiene práctica con los conceptos aprendidos en clase
  3. El estudiante ejecuta el programa, e inevitablemente falla. El estudiante trata de averiguar qué salió mal → aprende a depurar el código, que terminará siendo el 80% de su tiempo programado. También aprende habilidades como escribir código en lotes pequeños, pruebas, etc.
  4. Los estudiantes obtienen comentarios del instructor no solo sobre la funcionalidad de su proyecto, sino también sobre su propio código.

Abordando el Paso # 3 solo, en algún momento deja a cada nuevo estudiante confundido, frustrado y desesperado. El rol del instructor es alentar al estudiante, salvarlo de su desesperanza y enseñar estrategias de depuración para el futuro.

Los MOOCs logran esto a través de foros de discusión. Pero pedir ayuda es una habilidad que se aprende. A menudo, los principiantes no están seguros de qué código publicar en el foro, cómo explicar su pregunta de manera efectiva, etc. Cada intercambio de ida y vuelta solo toma mucho tiempo. En persona, esta es una conversación que sucede de inmediato.

Los MOOC tampoco proporcionan gran parte del feedback individual # 4, solo por la proporción de estudiantes: instructores. Sin embargo, esta retroalimentación enseña a los estudiantes cómo escribir códigos legibles y bien diseñados.

Dicho esto, el aprendizaje en línea no es completamente inútil. CodeHS, por ejemplo, permite a los estudiantes solicitar ayuda / comentarios de un tutor, que lee todo el programa del estudiante. La Academia Khan permite a los estudiantes proporcionar comentarios entre sí. Hay muchas otras estructuras, o incluso adaptaciones que mejorarían enormemente un MOOC. Pero entre solo los MOOC estándar y el aprendizaje en persona, el aprendizaje en persona definitivamente gana.

Los MOOC son más efectivos. Al menos en los países en desarrollo.

  • La programación tiene sólo 2 a 3 décadas de antigüedad. Como tal, no hay muchos profesores expertos que puedan enseñar programación realmente bien y la mayoría de ellos pertenecen a universidades estadounidenses de primer nivel. Ver sus videos es mucho más efectivo que luchar con los profesores en persona que están disponibles aquí.
  • Es difícil demostrar muchos conceptos de programación sin la ayuda de las tecnologías educativas modernas. Por ejemplo, la explicación en persona de árboles y gráficos requiere múltiples diagramas, tablas y gráficos. Un educador en persona generalmente los dibuja, lo que consume mucho tiempo y no es agradable a la vista. En los MOOCs, los gráficos de ayuda informática lo hacen más fácil.
  • Es más fácil hacer referencias rápidas a los recursos de aprendizaje externos durante los MOOC, a diferencia del aprendizaje en persona. Esto ayuda en el aprendizaje de la programación.
  • Los foros de aprendizaje asociados con los MOOC ayudan a conectar a estudiantes de todo el mundo. El aprendizaje de igual a igual es mágico en el campo de la programación.
  • El gran banco de preguntas, la evaluación automatizada, etc. ayudan a los estudiantes a calibrarse mucho mejor que los cursos presenciales.

No estoy seguro de lo que quieres decir con “en persona”.

La mayoría de los MOOC que enseñan programación son excelentes en eso. Esto incluye CS50x, que tiene una rampa ridícula, pero también un año para completarlo. Hay MOOCs que piensan que Haskell es lo mejor desde que se cortan los plátanos, evítelos hasta que hayan tomado algunos otros.

La única forma de aprender a programar es hacerlo usted mismo (¿en persona?) Un MOOC adecuado puede ser una excelente introducción. Recomiendo encarecidamente Python como primer idioma, incluso si es solo por la duración del MOOC. Java, además de tener otros problemas, tiene demasiado equipaje (para tratar, para “aprender”) para un primer MOOC, pero un programador debe saber más de un lenguaje de todos modos.

Mi impresión es que los MOOCs / recursos en línea son mejores que el aprendizaje en persona para la programación una vez que entiendas cómo funciona la codificación. Echa un vistazo a Codeacademy y Swirl for R para tener una idea de esto.

Tenga en cuenta que esto es distinto de la ciencia de la computación (y probablemente de la ingeniería de software) donde el aprendizaje en persona para brindar orientación sobre temas complejos y para agitarlo es probablemente muy útil.