¿A qué edad hay que aprender a programar?
Ya en la educación primaria, desde los 6 años, es posible aprender y manejar un lenguaje de programación
Si los lenguajes de programación son mucho más sencillos que los lenguajes naturales, ¿por qué el ser humano habla una lengua materna (español o chino) desde los primeros años y, sin embargo, aprender a programar le parece tan complejo?
La comunicación con un ordenador tiene un cierto componente lógico, pero hemos comprobado que ya en la educación primaria, desde los 6 años, es posible aprender y manejar un lenguaje de programación.
Programar trata justo de eso, de hablar con un ordenador, de aprender su lenguaje para darle instrucciones y modificar su comportamiento. Ese lenguaj...
Si los lenguajes de programación son mucho más sencillos que los lenguajes naturales, ¿por qué el ser humano habla una lengua materna (español o chino) desde los primeros años y, sin embargo, aprender a programar le parece tan complejo?
La comunicación con un ordenador tiene un cierto componente lógico, pero hemos comprobado que ya en la educación primaria, desde los 6 años, es posible aprender y manejar un lenguaje de programación.
Programar trata justo de eso, de hablar con un ordenador, de aprender su lenguaje para darle instrucciones y modificar su comportamiento. Ese lenguaje es mucho más sencillo que el idioma inglés, y desde la infancia el cerebro humano puede adquirir sus rudimentos para comunicarse con las máquinas.
¿Tienen los ordenadores un lenguaje propio?
La respuesta es “sí, muchos”, y se puede hablar con ellos en esos lenguajes. Los ordenadores, a diferencia del resto de máquinas, tienen un propósito general. Es decir, no limpian el suelo o licúan la fruta, pueden hacer muchas funciones distintas y para ello tienen un potente procesador y un lenguaje en el que representar esas funciones; cada cosa que hacen esta controlada por un programa. Y un programa no es más que una secuencia de instrucciones en un lenguaje, que en Informática se conoce como “lenguaje de programación”.
Además, estos lenguajes tienen una estructura muy sencilla. Por ejemplo, el lenguaje de programación C (uno de los más antiguos y utilizados) consta sólo de 46 reglas sintácticas, mientras que la gramática del idioma inglés, como estima David Crystal en Making Sense of Grammar, contiene unas 3 500 reglas.
Por otra parte, un lenguaje de programación es preciso: sus reglas no admiten ambigüedad en la interpretación; pero una frase en un lenguaje humano puede prestarse a distintas interpretaciones, lo que complica su aprendizaje.
Claro, también se utilizan con finalidades distintas. Por ejemplo, no utilizaríamos C para quedar a las 8 de la tarde en la puerta del cine. Pero si tenemos que expresar un cálculo matemático, es más apropiado un lenguaje de programación, puesto que no permite ambigüedad en el cálculo.
Sin embargo, este lenguaje es el más adecuado para expresar cualquier idea de tipo algorítmico, y en la educación obligatoria se enseña, aparte de las matemáticas, más conocimiento algorítmico del que pueda parecer.
Por ejemplo, la física implica hacer cálculos en un orden concreto. En química, toda la formulación de los compuestos está basada en reglas. También se enseñan reglas en lengua, para escribir correctamente (ortografía) o analizar una frase (sintaxis). En biología, la genética mendeliana es representable mediante condiciones que se dan en el cruzamiento.
Es decir, buena parte de los libros de texto podrían contener algoritmos expresados en un lenguaje de ordenador.
Por tanto, conocer un lenguaje de programación tendría la ventaja de poder realizar cálculos y aplicaciones en un ordenador (en web o en un móvil) y además entender muchos de los conocimientos básicos en distintas materias.
Enseñemos programación en escuelas e institutos
Sí, enseñemos programación en la escuela, aunque antes debemos resolver un problema arduo: quien enseña programación debe saber programar. Menos de un 1 % de la población conoce un lenguaje de ordenador y los que lo conocen seguro que tienen ya empleo y un buen sueldo.
Antes de integrar la programación de ordenadores en el currículo educativo hay que formar y acreditar profesorado, y eso es complicado.
Existe una solución alternativa: si para aprender idiomas lo mejor es hablarlo con nativos, nada mejor que un ordenador para enseñarnos su propio lenguaje.
Esta es la opción que hemos validado en la Universidad de Málaga y encontramos que, con poco esfuerzo, el alumnado puede aprender un lenguaje de programación sencillo y las bases del pensamiento computacional ya en la educación primaria.
Un primer estudio en este sentido se realizó en 2017, demostrando que se puede iniciar la enseñanza de la programación desde primero de primaria; y como es de esperar no hay diferencias de género al aprender a programar). Lo que desmotiva a las chicas para elegir la carrera de Informática debe depender de otros factores, pero en ningún caso de sus capacidades.
Los datos hablan por sí mismos: se utilizaron registros de la actividad de alumnado de 6º de primaria en 68 colegios de distintas localidades de España y sobre la plataforma ToolboX.Academy, que incluye un curso de programación gratuito realizable en unas 10 horas, también en formato de (serie infantil ), con los siguientes resultados: de un total de 820 estudiantes, 344 superaron todas las tareas de las cinco primeras unidades, es decir, un tercio del curso de programación que propone esta plataforma, incluyendo conceptos de comandos básicos y bucles (repetición de comandos).
Dos tercios del curso fueron completados por 210 estudiantes, que llegaron a usar variables, entrada de datos y la estructura condicional (“si… entonces…”).
Finalmente, 43 estudiantes lograron superar el curso completo, aprendiendo a formar condiciones complejas (con operadores relacionales como distinto o mayor o igual, y lógicos como el “y”, el “o” y el “no”) en bucles indefinidos del tipo “mientras se dé esta condición, hacer…”.
Lo más destacable de estos resultados es que este progreso se consigue, por lo general, sin ayuda, es decir, el alumnado va aprendiendo a utilizar estos conceptos computacionales viendo ejemplos y mediante ensayo-error. No es necesario que la maestra o el maestro responsable del grupo les asista.
La conclusión es muy significativa: con el empleo de una herramienta web gratuita, durante sólo 10 horas a lo largo de 6º de primaria, curso tras curso, en seis años lograríamos una alfabetización del 5 % de la población juvenil.
También se ha observado que cuando se incentiva al alumnado y se le da un mínimo apoyo, la casi totalidad del grupo completa el curso de programación, por lo que, siendo ambiciosos, podríamos apuntar hacia una alfabetización computacional completa.
Se puede deducir de este trabajo de campo que enseñar a programar es más una cuestión política que técnica o pedagógica: si el ordenador sabe enseñar, el alumnado va a aprender sin esfuerzo.
Los niños y niñas de hoy, los nativos digitales, no solo tienen la oportunidad de aprender a utilizar móviles y aplicaciones, han de saber programarlas, crearlas.
Los nuevos lenguajes y la alfabetización computacional han llegado para quedarse, serán necesarios para ser competitivos en el futuro y también, por qué no, para disfrutar el maravilloso reto lógico que nos plantean.
Francisco Vico es catedrático de Ciencias de la Computación e Inteligencia Artificial, Universidad de Málaga. Alberto Zamora Jiménez es responsable de Tecnología, Universidad de Málaga. Miguel Mejía Jiménez es graduado en Ingeniería Informática, Universidad de Málaga. Raimon Segura Morera es Lead Developer - Full Stack Engineer, Universidad de Málaga.
Este artículo fue publicado originalmente en The Conversation. Aquí puede leer el original.
Puedes seguir a EL PAÍS TECNOLOGÍA en Facebook y Twitter o apuntarte aquí para recibir nuestra newsletter semanal.