martes, noviembre 19, 2013

Crear hackers "from the scratch" o programando tortugas

Yo comencé a programar con doce años de edad, con el lenguaje BASIC. Como ya os he contado fue para mi toda una aventura de switches, acumuladores y contadores que me cambió la vida para siempre. En aquel entonces la gente no se preocupaba mucho de que los niños aprendieran a programar, pero lo cierto es que a mi me vino genial para ordenarme la cabeza. Así como el inglés lo aprendí de bastante mayor, y me tengo que concentrar mucho para poder sacar con cierta lógica las palabras, pensar en resolver problemas programando me resulta natural, porque lo aprendí desde niño y luego lo pude ir depurando en la Universidad.

Figura 1: Un ejemplo de código en BASIC

Sin saber que al final las cosas en la vida acaban conectándose, en mis años ya de profesional, acabé conociendo un día a Radia Perlman, con la que pasé un buen rato charlando y acabamos malignizados para siempre en esta foto que guardo con mucho cariño.

Figura 2: Con la Dra. Radia Perlman

Radia, además de ser conocida como la Madre de Internet por ser la creadora del Spanning-Tree Protocol, también fue la creadora de TORTIS (Toddler's Own Recursive Turtle Interpreter System), un sistema que permitía a niños preescolares aprender a programar mediante una serie de botones que dirigían los movimientos de una tortuga.

Figura 3: Tarjetas de programación para TORTIS

En ese trabajo inicial, Radia Perlman utilizaba en TORTIS un "artilugio" para que los niños programaran con una máquina en la que iban poniendo las tarjetas de lo que querían que hiciera la tortuga. Eso le permitía que el preescolar aprendiera a mandar a la tortuga hacer movimientos iterativos, alternativos o repetitivos. Bases para aprender los conceptos de la programación.

Figura 4: Niños programando con TORTIS

Cuando conocí este trabajo de Radia Perlman, yo no sabía que el LOGO, el lenguaje de programación por el que se aprende a hacer dibujos por medio de una tortuga, procedía de TORTIS. Yo ya había aprendido a programar en BASIC cuando LOGO llegó a mi vida, por lo que me parecía un poco raro todo él en sí, pero lo cierto es que lo usé e hice los trabajos de dibujo que me pidieron.

LOGO se basaba en unos comandos bastante sencillos, que permiten desplazar a la tortuga siguiendo diferentes trazadas y pintar o no pintar. Eso deja en manos de los developers preescolares la capacidad de pintar todo lo que quieran. En este vídeo se puede ver cómo los programas hechos en el intérprete, pueden ser llevados directamente al papel con la tortuga amarilla de LOGO.

Figura 5: La tortuga amarilla de LOGO dibujando lo programado

El LOGO volvió otra vez a mi vida cuando en un evento sobre emprendimiento me encontré con Pilar García de la empresa Exalta, como moderadora. A parte de intercambiar impresiones sobre lo que nos atenía, compartimos otras cosas de experiencias personales, y la suya tenía que ver con que cuando montaron su empresa, se dedicaron a hacer compiladores de LOGO. De hecho, el LOGO cuenta con un juego de instrucciones en Español, para poder facilitar el aprendizaje por igual a las jóvenes mentes de todo el mundo.

Figura 6: Instrucciones de LOGO en inglés y español sacadas de Wikipedia

La programación de la tortuga se parece mucho a la programación de robots, donde los jóvenes que ya dispongan de algunas habilidades en la programación pueden ver una evolución de hacer programas que permiten pintar a programas que permiten un universo de posibilidades aún mayor con un robot.

Hoy en día, para enseñar a programar a los jóvenes que ya están en el colegio, existen lenguajes de programación que han sabido sacar provecho de las ventajas multimedia que ofrecen las nuevas tecnologías. Quizá el más popular es Scratch, del MIT, un lenguaje que permite definir scripts de acciones - como moverse, repetir acciones, etcétera - pero utilizando elementos visuales muy atractivos para los más jóvenes, pero con una gran potencia.

Figura 7: Un Tetris programado en Scratch

No es el único lenguaje que sigue esos principios, si realizáis alguna búsqueda por Internet, encontraréis entornos como ToonTalk - basado en los mismos principios que Scratch - o el lenguaje de programación de juegos que Microsoft distribuye dentro de sus programas educativos, el Kodu Game Lab.

Figura 8: Entorno de programación en ToonTalk

Con Kodu Game Lab se pueden hacer juegos fantásticos mediante elementos de programación visual que pueden ser muy sencillos, o que pueden ser muy complejos dependiendo del nivel del creador de los programas. Ya os dejé algún vídeo de juegos hechos con Kodu, pero aquí os dejo un pequeño tutorial que muestra cómo es la forma en la que se programa en este sistema

Figura 9: Tutorial de programación en Kodu Game Studio


En el objetivo de ayudar con el programa Talentum a mejorar el entorno tecnológico del país, se ha incorporado una nueva iniciativa de educación tecnológica para niños y niñas en las propias tiendas de Movistar. Allí los tutores, también jóvenes procedentes del programa Talentum Startups, están enseñando a programar en Scratch y a programar Robots en cursos gratuitos que se dan a los niños y niñas que se apuntan. Todo a través de lo que han denominado Talentum Schools.

No obstante, para enseñar a programar en Scratch a los más jóvenes, para programar en Kodu Game Labs o incluso en LOGO, no necesitas mucho más que un sistema informático de gama media en casa.... y pasar tiempo con ellos.

Si puedes apuntar a los niños a cursos de Talentum Schools estaría genial, pero si eres docente en algún centro en el que hay niños entre 8 y 13 años, tal vez sea una buena opción proponer actividades de programación similares - ya sea como prácticas de asignaturas o como actividades extraescolares o culturales -.

Figura 10: Cursos de Talentum Scools para programar en Scratch

Lo mismo para ti, si eres padre, padrino, hermano o tío y sabes programar. Aprender estos lenguajes no te costará mucho, y podrás no solo pasar tiempo con tu gente, sino que además estarás ayudándole un montón para el futuro. Si no tienes tiempo, no eres docente, o no sabes programar, y te has quedado sin plazas de Talentum Schools esto es fácil. Busca a cualquier estudiante de informática que le guste la programación y la ciencia, y contrátale clases particulares para que enseñe a tu hijo a programar en Scratch o Kodu Game Labs o en el mismo LOGO. Seguro que lo hace genial.

Y sobre todo, que no te preocupe la edad, que de 8 años en adelante es un buen momento para que los niños aprendan a hacer cosas con las computadoras y descubran que pueden crear lo que ellos quieran si saben cómo programarlo. Conviértelo en un hacker ...from the scratch.

Saludos Malignos!

14 comentarios:

Aitor Iriarte dijo...

Muy buena entrada. Yo empecé con MSDOS 3.3 y GWBASIC. El objetivo era siempre hacer una aventura conversacional. Empezar a programar de chaval solo tiene una pega: como te guste ya nunca dejarás de programar porque no hay duda de que es una de las actividades más adictivas que existen.

MARIA dijo...

¡Yo me acuerdo del Logo de cuando era pequeña!
Gracias por explicar sus orígenes y poner una foto de su mamá :)

Anónimo dijo...



"La Fuerza esta con ellos"

Gracias, Joven Maligno.

Anónimo dijo...

Y digo yo, no sería más correcto llamarla la madre de las redes locales, que de internet? Digo yo, porque el spanning-tree sólo para red local e internet, bueno siempre he pensado más en IP.

David dijo...

Curioso, precisamente ayer pensaba en como empecé yo a programar, y fué a los 7 años, con el manual del spectrum donde salian los comandos de basic explicados. No utilicé nada mas, simplemente dedique tiempo a entender lo que podia hacer con ellos y poco a poco me forme un pensamiento logico para utilizarlos, cosa que me ha servido desde entonces.
Ademas, por circustancias de la vida, dedico parte de mi tiempo a enseñar informatica a chicos de 13 a 16 años, y parte de lo que enseño (o intento al me
os) desde hace 8 años es a que formen un pensamiento logico por ellos mismos, y uso scratch entre otras herramientas (stencyl esta muy bien aunque no sea libre).
Eso si, la diferencia entre aprender algo por interes propio a que te "obliguen" a ello es....... cuanto menos limitante.

Clara dijo...

Aaaah leyendo esto he recordado que hace tiempo buscaba el nombre de un programa que se usaba en algunas escuelas en los años 90, con chavales como de 11-12 años, y que era justamente eso, como una tortuga amarilla sobre fondo negro, y tu le ibas dando las instrucciones para que hiciera dibujos... solo que todo en la pantalla ya, sin tortuga física (lástima).

Parece que sea tal cual el programa de LOGO pero avanzado bastantes años, me gustaría encontrar alguna captura de pantalla o similar para recordar viejos tiempos...

Si alguien sabe de lo que hablo le agradeceré la ayuda!

Anónimo dijo...

En la web http://programamos.es/ se pueden descargar de forma gratuita materiales didácticos para diferentes niveles educativos (primaria, secundaria, bachillerato o ciclos formativos) para trabajar con Scratch, Snap, MIT app inventor o Scratch Jr. También tienen foros en los que los docentes comparten experiencias, ideas, problemas...
Se trata, en definitiva, de un punto de encuentro para profes y padres que enseñan programación a escolares de todas las edades.

Jordi dijo...

Pues si te ha gustado Scratch, mira S4A (http://s4a.cat) donde se modifica Scratch para poder controlar placas Arduino. No hack no fun!

David Marco dijo...

Leyendo el artículo me ha venido a la cabeza el libro "Tortugas, termitas y atascos de tráfico: exploraciones sobre micromundos masivamente paralelos", que leí hace algunos años (aunque no tantos como los que han pasado desde que tiraba líneas de codigo en un CPC464 con Basic 1.0...)

Carlos dijo...

Creo que herramientas como scratch pueden estar muy bien en primaria o los dos primeros cursos de la ESO, pero a partir de ahí deberíamos se un poco más ambiciosos y usar otras herramientas.

SmallBasic me parece otra iniciativa muy buena, la fusión del la tortuga de LOGO y el BASIC es una idea realmente interesante.

Personalmente, después de estudiarlo detenidamente, me he decidido por usar la DLL de SmallBasic y C# para enseñar a programar a un familiar que estudia 4º de la ESO. El resultado es impresionante.

Daniel Paz dijo...

Me trajo a la mente un programa en C que hice hace algún tiempo que dibujaba gráficos tipo tortuga, es una excelente forma de aprender a programar.

Anónimo dijo...

Personalmente, a mi hijo de 5 años empecé a enseñarle a construir algoritmos estilo LOGO inventándome juegos de mesa construídos con judías y papel. Y de ahí pasamos a un LOGO simplificado, una algoritmica de movimientos, para poder meter Lego+arduino o robots estilo Play-i... Cuando se aburra saltaremos y empezaremos a jugar con estructuras de datos y geometría ( que ya hacemos con lapiz, papel, cuerdas, etc...) con un Rasperry Pi. Yo también me creí esas tonterias del comienzo del pensamiento lógico y bla,bla,bla... pero a mi próximo hijo no pienso esperar tanto para que empiece a jugar con esas cosas. No es cuestion de llegar a objetivos, sino de que lo aprendan jugando y se den cuenta de la creatividad y diversión de las matemáticas, la programación y el manejo de abstracciones. Si algo tienen los críos es imaginación, vida interior, sólo hay que saber enseñarles como jugar con cosas intangibles.

María José Montes dijo...

Hola! Magnífico artículo!

Los niños son auténticas esponjas, empezar a enseñarles a programar a una edad temprana, es muy bueno.

Le di clases de scratch y python a niños a partir de seis años y, todos ellos, mejoraron en el resto de materias. Uno de los nenes, de ocho, llegó incluso a instalar una Arch en el PC del papá... sin su permiso XD.

Anónimo dijo...

http://www.ceibal.edu.uy/UserFiles/P0001/File/tortugarte_xo.pdf

Entrada destacada

10 maneras de sacarle el jugo a tu cuenta de @MyPublicInbox si eres un Perfil Público

Cuando doy una charla a algún amigo, conocido, o a un grupo de personas que quieren conocer MyPublicInbox , siempre se acaban sorprendiendo ...

Entradas populares