0

¿Qué ayuda debemos proporcionar a los estudiantes que aprenden a programar?

La programación es MUY difícil ahora mismo. Una de las razones por las que tenemos problemas para que los maestros intenten programar es que los asusta. Podemos hacerlo menos aterrador y más fácil de aprender con más apoyos. En ciencias de la computación, a menudo creemos que no debemos proporcionar ayuda a los estudiantes porque de alguna manera obstaculizará su aprendizaje, que lo aprenderán mejor si luchan y lo resuelven por sí mismos. Simplemente no es verdad. La instrucción directa funciona y es mucho más eficiente que el aprendizaje por descubrimiento (lee aquí, aquí y aquí).

Una máquina nocional es una explicación accesible para el alumno, de cómo funciona algún aspecto de la máquina computacional; podría ser una explicación de una característica del lenguaje o una explicación de algún aspecto de un programa en ejecución (por ejemplo, cómo trabaja swap() ). Para poder depurar un programa, un estudiante necesita comprenderlo, es decir, tener un modelo mental de cómo funciona el programa. Un estudiante tiene que poder predecir lo que hace su programa, simulándolo en su cabeza. Una máquina nocional es una herramienta de enseñanza para ayudar al estudiante a desarrollar un modelo mental exitoso (predictivo).

Existe el concepto de andamiaje (equivalente del término inglés “scaffolding“) que se refiere a una variedad de técnicas de instrucción utilizadas para orientar a los estudiantes progresivamente hacia una mejor comprensión y, en última instancia, una mayor independencia en el proceso de aprendizaje. Una máquina nocional es un tipo de andamio.

Otros tipos de apoyos que se pueden brindar a los estudiantes son:

  • Ejemplos resueltos: uno de los apoyos más poderosos para los estudiantes es mostrarles un código funcional (estructura) con una explicación de lo que hace (comportamiento) y por qué fue escrito (función). Esa última parte es particularmente importante. A menudo damos ejemplos de código para explicar alguna idea computacional que en realidad no hacen nada útil. Nuestros cerebros están conectados para aprender conocimientos útiles. Una de las razones por las cuales aprender a programar es tan difícil es que esperamos que los estudiantes quieran aprender a programar. Deberíamos mostrar código que haga algo útil. Un código de ejemplo concreto y funcional es uno de los mejores tipos de apoyo que podemos proporcionar a los estudiantes. “¿Quieres aprender bucles FOR? Ve a escribir otro programa que los use” es algo terrible para decirle a un estudiante principiante. Los humanos están conectados para aprender de los ejemplos. Solo decirles a los estudiantes que luchen con otro problema es peor que inútil: es cruel cuando sabemos cómo hacerlo mejor
  • Lenguajes e IDE mejorados: JavaScript, por ejemplo, es demasiado difícil de soportar con una máquina nocional. ¿Alguna vez has visto la descripción humana (no semántica formal) de cómo funciona “==” en JavaScript? Chécalo aquí. Esto es demasiado difícil de explicar en su totalidad. Necesitamos niveles de lenguaje y nuevas herramientas de programación para ayudar a los estudiantes a desarrollar gradualmente todo este conocimiento. Es demasiado grande y complejo de explicar incluso con múltiples máquinas nocionales buenas.

Fuente