En todo el mundo hay niños y niñas que están aprendiendo a programar, y de hecho ahora en diciembre se celebra uno de los principales eventos en todo el mundo para promover esta materia. Hoy queremos adentrarnos aún más, y como complemento a nuestros consejos y recomendaciones para aprender programación a niños y a adultos, vamos a hablar de cómo iniciar a un niño/a en la programación... desde cero.
Las herramientas y el software se han modernizado a esta nueva etapa de la programación, y con todo ello la metodología y las propuestas también deberán adaptarse a la enseñanza de esta nueva materia. ¿Qué programas o plataformas utilizar? ¿Cómo hacerlo? Hoy te explicamos cómo iniciar a un niño en la programación.
Un vistazo atrásNo hace muchos años que el campo de la programación era exclusivo del mundo más profesional. Los informáticos (y antes de existir la informática como tal, los matemáticos y los físicos) se encargaban de tratar con los ordenadores, de crear los programas a los que luego otros trabajadores sacaban partido.
Los tiempos han cambiado, y la sociedad se ha ido adaptando a ellos. Los primeros usos de la programación como herramienta educativa se remontan a los años 60 y 70 con LOGO, un lenguaje que tardó en llegar a España pero que se caracterizó por las posibilidades de crear pequeños dibujos y recorridos a través de sencillas órdenes, instrucciones de programación, sobre una tortuga.
La programación como herramienta educativa en la actualidad parte de LOGO, un lenguaje creado en los 60 y 70.Aquel LOGO fue la semilla de lo que más tarde, ya en los años 90, germinó en forma de múltiples herramientas destinadas a la educación y formación de la programación de niños y jóvenes, ya sean en forma de lenguajes específicos o de juguetes, como LEGO Mindstorms, que fue un desarrollo de LEGO junto con el MIT. Empezó a entreverse la importancia de la programación como una herramienta para divertirse y también para aprender ciertos conceptos relacionados con el pensamiento computacional.
De LEGO ya sabemos que continúan con gran éxito su saga Mindstorms, con la tercera generación llamada EV3 - y lanzada en 2013 - y las First LEGO League celebrándose por todo el mundo; por su parte, a finales de los 90 empezaron a desarrollarse una serie de lenguajes de programación basados en bloques, tremendamente intuitivos y fáciles tanto de utilizar como de entender, y que por su naturaleza han permitido que cualquier chaval pueda empezar a aprender a programar.
El principal valuarte de estos lenguajes basados en bloques es Scratch, que como decíamos empezó a ser desarrollado en el Lifelong Kindergarten del MIT en el año 1997, pero que no fue hasta el año 2003 cuando se lanzó en su primera versión pública. Tras él, y con la llegada tanto de Internet como de las nuevas categorías de dispositivos (smartphones, tablets) a los hogares, muchas empresas y entidades han aprovechado este nuevo campo del conocimiento para proponer sus propios lenguajes, tutoriales, plataformas o incluso juegos para aprender a programar.
Lo que la programación aporta a un niño/aEl recorrido en el pasado está claro. Primero los pequeños atisbos de que la programación podía ser algo más que una herramienta profesional, y con el paso de los años (¡muchos años!) al final han surgido múltiples iniciativas que afianzan la materia en la educación, tanto dentro de los currículos oficiales como en cursos, talleres y otras actividades externas.
¿ Pero por qué aprender a programar ? Todos coincidimos en que el pensamiento computacional es el concepto clave de esta materia. La forma de pensar, de aprender a solucionar problemas y crear algoritmos y soluciones, tanto particulares como - sobre todo - generales a esos problemas. Los informáticos tenemos claro cuál es este concepto que nos permite, por ejemplo, tener un problema de cierta envergadura frente a nosotros, y saber dividirlo y resolver cada una de las partes, generalizando esta solución.
Sin embargo, a mi siempre me gusta decir que no es programar por programar; al final la programación es una excusa para mucho más. En el Club de Jóvenes Programadores de la Universidad de Valladolid, taller en el que llevo participando desde 2011, utilizamos la programación como una herramienta para mucho más.
Esto es en parte debido a nuestra propuesta metodológica, que muchos tildarán de peculiar. Sin pupitres individuales, con grandes espacios y mesas con las que fomentar el trabajo cooperativo, por los proyectos planteados que proponemos y que buscan la creatividad y las soluciones diferentes en cada chaval.
La programación es una herramienta que puede fomentar la creatividad a unos niveles extraordinarios, siempre que se sepa cómo hacerlo. No se trata sólo de resolver problemas, si no de utilizar los recursos y las herramientas disponibles para realizar las creaciones que tengamos en la mente. No se trata sólo de saber cómo se programa un Pong, si no de que una vez lo hayas programado sepas ir un paso más allá. Sepas añadir marcadores a cada jugador, tengas la intención de añadir un ranking con los mejores jugadores, o de dar la posibilidad de elegir el color del juego.
Porque la programación no debería ser sólo escribir código, la programación nos permite mucho más... siempre que sepamos cómo llegar a ello. El pensamiento computacional es el rasgo común en el que todos los que estamos involucrados en la docencia de esta materia coincidimos, pero hay mucho más. La creatividad - que precisamente es una de las carencias del sistema actual -, la sociabilidad en aulas, cursos o talleres grupales, o incluso las presentaciones en público, pueden ser algunas de las características que mejoremos gracias a la programación. Que, insisto, no debería ser sólo programar por programar.
Olvídate de enseñar programación como se enseña a un profesional. No es enseñar programación para aprender a programar, es mucho más. Concepto clave, pensamiento computacional -> aprender a resolver grandes problemas, dividirlos en partes y afrontarlas por separado para que en su conjunto den respuesta al problema inicialmente planteado. Juega con varios conceptos como abstracción (imaginación, concentración) y automatización (proponer soluciones que no sólo sean particulares para un problema concreto, si no generales para cualquier problema relacionado).
Fomenta la creatividad si el método es correcto (sobre esto hablaremos más adelante). No se trata sólo de resolver problemas, si no de utilizar los recursos y las herramientas disponibles para realizar las creaciones que queramos; la imaginación debe ser nuestro límite.
Hablamos de aprender a programar de forma individual, pero en talleres o cursos en grupo también puede mejorar la sociabilidad, las relaciones con los demás, presentaciones en público, étc.
Cómo iniciar a un niño/a en la programaciónCuando nos planteamos enseñar programación a un niño es necesario comentar que no vamos a enseñar ni las herramientas profesionales, ni con los métodos para los adultos. Son niños, y por lo tanto sus conocimientos y capacidades en muchos ámbitos son mucho más limitados.
Es por ello por lo que acudiremos a herramientas específicamente creadas para jóvenes, incluyendo niños desde los 5 o 6 años, y hasta adolescentes o incluso post-adolescentes ya universitarios. Un adulto también puede hacer uso de esta guía, si bien es posible que encuentre las primeras fases demasiado sencillas (¡pero ojo! Que no las deje de lado, lo ayudarán a "amueblar" la cabeza).
Las nociones básicas: Code.orgPara aprender los conocimientos básicos de la programación, la forma en la que están estructurados los programas y cómo funcionan, es necesario seguir un pequeño guión que puedan explicar los fundamentos más sencillos. Algo con lo que acompañarle de la manita durante su primera incursión en el campo.
Para mi la mejor plataforma para introducirse en la programación es Code.org, una organización sin ánimo de lucro con la que han colaborado algunas de las principales estrellas del panorama tecnológico en Estados Unidos, y que cuenta con el apoyo de las principales empresas del sector. Ofrece múltiples tutoriales y cursos online completamente gratuitos, entre los que es necesario destacar dos de ellos:
* Hora del Código, un tutorial pensado para tener una duración de una hora en la que ofrece los fundamentos básicos de la programación por bloques. Precisamente la semana del 7 al 13 de diciembre de 2015 se celebra su gran evento anual por todo el mundo.
* Curso de 20 horas, que sigue la filosofía de la 'Hora del Código' pero proponiendo conocimientos más amplios. Puede ser una interesante propuesta para continuar avanzando en la materia y está dividido en cuatro subcursos, disponibles para diferentes franjas de edad y con una versión acelerada algo más corta.
Pero Code.org no sólo son estos dos tutoriales, es mucho más. Cuentan con múltiples tutoriales temáticos y basados en los universos de Star Wars, Minecraft o Frozen, muy atractivos para los chavales y con los que igualmente se pueden obtener las nociones básicas de la programación. Lo malo es que están algo limitados y al final son algo lineales, sin dejar lado a la imaginación y la creatividad. Para ello es necesario ir un paso más allá.
Scratch es ilimitado (casi)Ese segundo paso es Scratch, un software casi infinita. Como dijimos anteriormente su desarrollo se acerca a los quince años de antigüedad, con lo que es una opción muy asentada en el mercado y con mucho recorrido.
El entorno es similar a la programación de de Code.org (de hecho, Code.org se basó en Scratch) pero con muchas más herramientas, funcionalidades y posibilidades a disposición del usuario. Un Code.org con esteroides, con grandes parecidos con los lenguajes más adultos y profesionales y capaz de atacar múltiples frentes:
* La programación como tal: creación de algoritmos para los movimientos de los objetos o de la interacción entre ellos, concepto de 'tiempo' en la ejecución de un programa.
* El apartado creativo: todo es personalizable, desde los objetos o personajes hasta el escenario.
* Incluso la parte social: la comunidad online de Scratch dispone de 12 millones de proyectos, y de todos ellos podremos ver su código para aprender y tomar ideas.
Scratch es completamente gratuito y puedes probarlo en tu navegador sin necesidad de registrarte (aunque es recomendable hacerlo para guardar tus proyectos 'en la nube'); si lo prefieres, también puedes descargarlo.
Decía antes que las posibilidades de Scratch son mucho más amplias que las de Code.org, que no deja de ser un tutorial guiado y cerrado. En Scratch es el usuario el que decide qué hacer, con lo que el límite lo pone tu imaginación y, en menor medida, tu técnica y de lo que seas capaz de hacer. De hecho las ideas - de ello hablaremos más adelante - son lo más difícil de sacar, mucho más difícil que aprender a programar. A continuación, algunos proyectos muy interesantes y que no requieren conocimientos avanzados para poder crearlos: