• Descarga | Suscripciones en iVoox / Apple Podcasts / Spotify / Google Podcasts •
Bienvenidos a Juegos Robótica, el podcast en el que hablamos de robótica educativa, iniciación a la programación, aplicaciones para docentes, entornos de programación para niños y en general todo lo que tiene que ver con despertar la curiosidad de los más jóvenes por la programación y la tecnología para que se conviertan en creadores y no en meros consumidores.
Como ya sabes este podcast es un reflejo sonoro de los contenidos y cursos que puedes encontrar en juegosrobotica.es
Probablemente hoy en día el primer contacto que se tiene con la programación es a través de Scratch, un lenguaje de programación visual en el que para programar basta con unir bloques en la pantalla del ordenador.
No es el primer lenguaje visual de programación ni mucho menos, de hecho hace décadas ya se usaba el lenguaje gráfico ladder o de diagrama de contactos para programar autómatas programables.
Cuando empezaron a aparecer los primeros autómatas programables estos se extendieron por el mundo industrial rápidamente debido a que eran tremendamente útiles y prácticos y sustituían las automatizaciones basadas en lógica con componentes eléctricos o incluso neumáticos permitiendo que se pudiera reprogramar siempre que se necesitase ajustar algún proceso productivo de manera muy sencilla.
El problema era que a la expansión de los autómatas programables en la industria no le acompañaba un regimiento de programadores, ya que harían falta años para tener personal formado en una tecnología novedosa en aquella época.
La solución fue brillante. Se creó un lenguaje gráfico mediante el cual los mismos electricistas que habían creado las antiguas automatizaciones basadas en contactos y bobinas eléctricas pudieran programar los nuevos autómatas. A través del lenguaje ladder o diagrama de contactos el programador dibuja mediante símbolos eléctricos las bobinas, contactos, temporizadores, etc en un entorno de programación que posteriormente se compilará y transformará en código máquina para que el autómata lo pueda “entender”. La virtud es que cualquier electricista podía programar un PLC en teoría.
Los lenguajes de programación que tenemos en mente también requieren de un entorno de programación que posteriormente compila el programa y transforma en lenguaje máquina, pero la diferencia es que en un lenguaje de programación se considera suficientemente adaptado a través de una sintaxis que cualquier persona puede llegar a entender si se lo propone.
En generaciones pasadas muchos niños y jóvenes aprendieron a programar utilizando lenguajes de programación basados en una sintaxis concreta sin mayor problema, aunque puede que para otros el código fuera demasiado difícil de entender y nunca les atrajo el mundo de la programación.
Pues con Scratch se intenta algo parecido a lo que se consiguió con el diagrama de contactos para electricistas a mediados del siglo pasado, hacer accesible la programación para más gente facilitando la comprensión a través de un lenguaje visual y gráfico.
Con Scratch cualquier persona puede realizar programas sencillos, incluso niños realmente muy pequeños. De la misma manera profesores y padres que nunca se habían sentido cómodos con la programación clásica por código, encuentran que pueden ayudar a sus alumnos o hijos a aprender a programar porque ellos mismos entienden perfectamente el sistema gracias a su sencillez y a lo descriptivo que es el método.
Scratch nace en el MediaLab del MIT, el instituto tecnológico de Massachusetts, desarrollado por el grupo Lifelong Kindergarten que podríamos traducir como “guardería o jardín de infancia de por vida” y que intenta encontrar recursos educativos que despierten la curiosidad y la manera de descubrir y aprender las cosas como ocurre con los niños muy pequeños pero para todas las edades.
Mitchel Resnick, pupilo de Seymour Paper del que hablaremos en otra ocasión, sigue liderando este grupo en el MIT y sigue impulsando el uso de Scratch que en su momento nació como una herramienta para aprender a programar en los clubes de programación de Estados Unidos promovidos por el propio Resnick y por Natalie Rusk.
Desde que se empezó a utilizar en este tipo de clubes de programación y centros de extraescolares en 2003 demostró conectar perfectamente con los niños que daban rienda suelta a su creatividad haciendo que en la pantalla del ordenador pudieran aparecer animaciones gráficas y sonidos a su antojo.
Esa primera versión de Scratch no era muy diferente a la que conocemos hoy en día. Básicamente disponemos de una serie de bloques ordenados por secciones según sirvan para dibujar, para mover un personaje, cambiar su aspecto, operadores matemáticos, comandos de control, lectura de eventos como la pulsación de una tecla o algo que ocurra dentro de la animación como que un objeto toque a otro, bloques para almacenar datos, etc.
El nombre de Scratch viene de mezcla, como los scratches de los disc jockeys, ya que lo que el aprendiz debe hacer es mezclar y combinar bloques que definan un programa, y los programas pueden ser de muy sencillos a muy complejos y pueden permitir interactuar o ser simplemente presentaciones animadas.
Juntando unos pocos bloques podríamos indicar al programa que una vez arranque el programa moviera al personaje una distancia hacia la derecha y luego el doble de esa distancia hacia la izquierda para volver a hacerle moverse hacia la derecha y acabar donde estaba al principio.
Podríamos hacer que ahí acabara el programa o lo podríamos meter en un bloque que indique una repetición de manera que esos movimientos los repitiera un número de veces concreto o ininterrumpidamente.
En vez de eso podríamos hacer un programa que funcione de tal manera que si se pulsa la flecha derecha del teclado mueva el personaje a la derecha y si se pulsa la flecha izquierda se mueva hacia la izquierda. Sería un programa con el que se puede interactuar a diferencia del anterior.
También podemos definir mediante bloques si queremos que cuando el personaje llegue al borde y se le siga desplazando se salga de la pantalla o se frene.
En general Scratch permite, utilizando únicamente bloques que son muy descriptivos del comando que ejecutan, crear presentaciones y programas sencillas pero permitiendo aprender muy rápido en la lógica computacional de manera que la curva de aprendizaje es muy acelerada y permite hacer programas más o menos complejos en poco tiempo comparado a cuando un niño se enfrenta directamente al código.
La finalidad que buscaba Resnick y que sigue fomentando con Scratch es permitir a los niños una nueva forma de expresarse potenciando su creatividad. Independientemente de que puedan aprender conceptos de programación el objetivo es que se puedan expresar en este caso a través de un ordenador.
La cuestión es que permitiendo que el niño use su propia creatividad y vea plasmado en la pantalla lo que tenía en la cabeza hace que se motive enormemente y así fue como se vió que no solo era una herramienta de expresión creativa sino también una poderosa herramienta para despertar la curiosidad en la programación y que los niños quieran aprender cada vez más a nivel de programación. Pero no olvidemos que el objetivo primero de Scratch es fomentar la creatividad en el niño y dejarle expresarse, no enseñarle a programar.
Este concepto se está olvidando en muchos centros o talleres en los que se plantea Scratch con el objetivo de aprender a programar y muchos niños se frustran porque precisamente no se aprovecha el mayor potencial de la aplicación que es dejar que el niño se exprese y tome su propio camino, y que el docente simplemente le guíe y le descubra los comandos que le hagan lograr lo que busca, pero nada más.
Si pretendemos que todos los niños de un grupo sigan los pasos que nosotros queramos porque les queremos enseñar todos los comandos paso a paso de manera que lleguen a aprender a programar utilizando Scratch no estaremos siguiendo las premisas del propio Resnick y nos arriesgamos a que el niño no sólo no encuentre interesante programar sino que incluso llegue a evitarlo.
Para entender correctamente la filosofía de Scrath lo ideal es darle un vistazo directamente a la comunidad “Learning creative learning” que podríamos traducir como aprendiendo aprendizaje creativo y seguir uno de los cursos que están disponibles cada cierto tiempo dirigido por el propio Resnick y cuyo objetivo no es enseñar a manejar Scratch a los profesores, sino que entiendan la filosofía de trabajo.
Puedes apuntarte para que te informen del próximo curso en lcl.media.mit.edu aunque la mayoría de material y charlas están disponibles de manera permanente. La ventaja de hacer el curso en vivo es que estarás en contacto con el equipo Lifelong Kindergarten y conocerás a otros profesores que están realizando el curso igual que tú formando una comunidad muy interesante.
Vuelvo a remarcar para que se vea la importancia que se le da desde los creadores de Scratch, que el curso únicamente es para entender la filosofía de fomentar la creatividad por encima de enseñar a programar, no te enseñan a utilizar Scratch ni mucho menos.
Otro gran valor de Scratch es que permite que fácilmente se puedan compartir las creaciones de manera que el niño publica su presentación o juego o programa y otras personas le dan su opinión y oportunidades de mejorar. Además podemos ver un proyecto realizado por otra persona de cualquier parte del mundo para conocer como se ha programado y entender el funcionamiento.
Actualmente hay casi 30 millones de proyectos compartidos para que nos hagamos idea de la cantidad de gente que utiliza Scratch.
Un hito importantísimo relacionado con Scratch llegó en 2013 con el lanzamiento de la segunda versión del entorno de programación.
Además de hacer una interfaz gráfica más amigable y de permitir la programación online, permite la creación de bloques personalizados que pueden usarse entre otras cosas para interactuar con kits de robótica externa como por ejemplo LEGO WeDo.
Aunque el proyecto de Scratch siempre ha sido de código abierto en ese momento la creación de entornos de programación basados en Scratch se dispara enfocando esa facilidad de programación a otros campos independientemente de la programación informática permitiendo por ejemplo pasar de Scartch a programar robots con una interfaz prácticamente idéntica como ocurre por ejemplo con mBlock que sirve para programar robots y proyectos con Arduino con los mismos bloques de Scratch.
Otro entorno de programación que apareció basado en Scratch pero que está directamente enfocado a la programación informática fue Snap. Snap llega un poco más lejos que Scratch siendo auténticamente un lenguaje con programación orientada a objetos y permitiendo manejar clases como cualquier lenguaje de alto nivel.
Lo mejor para entender qué es Scratch y las posibilidades que ofrece para aprender a programar de forma creativa es que lo pruebes por ti mismo. Además utilizando Scratch online ni siquieras tienes que instalarlo.
No dejes tampoco de visitar el repositorio con los proyectos compartidos por los usuarios y filtrando por los más populares podrás ejecutar grandes ejemplos de lo que se puede llegar a programar con Scratch.
Te dejo todos los enlaces en las notas del programa.
En juegosrobótica.es utilizamos entre otros entornos mBlock que es una adaptación de Scratch para computación física con robots o con Arduino. En los tutoriales y retos publicados puedes ver lo fácil que puede ser incluso programar un robot.
Nos escuchamos en un próximo episodio analizando quizá otro entorno de programación o cualquier herramienta que nos ayude en el aprendizaje de la programación o el uso de la robótica educativa.
¡Hasta entonces… adiós!
Excelente trabajo el que realiza JuegosRobótica.es.
Contribuir con la educación de nuestros niños y niñas, es contribuir con el futuro. Gracias!
Muchas gracias Lourdes,
Qué razón tienes, la educación de las futuras generaciones es una responsabilidad de todos para mejorar el futuro.