panic_error!

Enseñando a programar a un niño

¿Cuál es el lenguaje más apropiado para aprender a programar? Ni se las veces que ha salido esta pregunta en una conversación entre programadores. Tengo en mi memoria tantas respuestas y argumentaciones diferentes como puedo recordar. Pero antes de dar una respuesta, razonada o no, deberiamos preguntarnos primero ¿quién quiere aprender a programar?

Según mi experiencia docente nada tiene que ver enseñar a programar a un niño de diez años, a un adolescente, a un estudiante universitario o a un adulto. Además de la variable de la edad hemos de contar otras variable igual o más importantes: cual son sus conocimientos previos acumulados, la motivación que le mueve para aprender a programar al supuesto interesado, etc.

En realidad, no tengo muchas ganas de abordar estos temas en este artículo. Quizás en otro posterior. Ahora mismo lo que quiero relatar son mis primeros pasos enseñando a programar a un niño de 9 años. Con esta muestra poblacional tan escasa, tampoco pretendo que nadie extrapole mis conclusiones. Simplemente voy a relatar mis avances y mis fracasos desde ahora mismo, en que ambos (profesor y alumno) nos encontramos en la fase inicial del proceso.

Con código o sin el

Lo primero que me he planteado es utilizar alguna plataforma que, aunque orientada a la enseñanza del pensamiento computacional no utilizara código o instrucciones como tal. Herramientas como scratch permiten una aproximación muy visual a la programación sin necesidad de escribir una sola instrucción. Una muy buena herramienta pero no se acerca a lo que quería.

Mi intención es que el niño se acerque a la programación desde un punto de vista mucho más clásico. Mas minimalista. Por supuesto no le voy a poner escribir código C sobre una terminal en negro. Pero sin llegar a eso hay soluciones realmente buenas y que, con apenas los días que llevamos usándolas nos están encantado a los dos.

Lo clásico siempre funciona

La herramienta que hemos estado utilizando en nuestras primeras sesiones es Logo. Un intérprete creado por Seymour Papert en el MIT en 1967. Su sencillez se basa en que el niño solo tiene acceso a un repertorio de unas 10 instrucciones diferentes para poder mover un cursor (o tortuga) sobre un espacio en dos dimensiones. Instrucciones como avanza, retrocede, gira a la derecha, etc. solas únicas que podremos combinar para ir creando recorridos.

A priori puede sonar muy pobre, pero a ese repertorio básico se le suma una instrucción que nos permitirá repetir un patrón de instrucciones y otra para poder agrupar un grupo de instrucciones bajo un nombre. Con estas dos simples estructuras podemos proyectar la utilidad de las instruciones repetitivas y la creación de rutinas y procedimientos con la idea de reutilizarlos varias veces.

Este entorno además lo podemos encontrar con licencia GPL gracias a UCBLogo. Este UCBLogo es la implementación más cercana a la creación de Papert aunque también quizás, la más antigua de entre que las que podemos encontrar. La podemos instalar fácilmente en cualquier Linux/Debian a través del paquete llamado ucblogo.

Por ahora, como ya he dicho, apenas llevamos un par de sesiones cortas para ponernos a tono con el entorno. Pero a medida que vayamos exprimiendo todo el potencial a la herramienta iré contando nuestros avances.


Diciembre 2021