You are on page 1of 5

LINUX USER • Squeak: Scratch

Una herramienta lúdica de iniciación a la programación

SCRATCH
El famoso Laboratorio Multimedia del Instituto de Tecnología de Massachussets y la Universidad de Califor-

nia, los Ángeles, han venido desarrollando, durante los tres últimos años, un interesante proyecto educativo

destinado a elaborar una divertida y atractiva herramienta de introducción a la programación. A primeros de

enero de este año tuvo lugar el lanzamiento oficial de Scratch [1] para Windows y Mac, y se prevé que a

finales de este mismo año esté disponible la versión para Linux. POR MÁXIMO PRUDENCIO

N
o obstante, por tratarse de una ¿Qué es Scratch? Utilizar herramientas de programa-
evolución de Squeak, podremos Scratch es, para sus creadores, un ción como medio para alcanzar una
ejecutar la imagen de Scratch en medio de expresión mediante el cual mejor comprensión de las nuevas tec-
una plataforma Linux siempre que ten- los jóvenes y menos jóvenes pueden nologías no es nada nuevo, como tam-
gamos instalada la máquina virtual de expresar sus ideas y responde a la poco lo es la valoración educativa de
Squeak. Scratch es un entorno Squeak pretensión de proporcionar una los algoritmos de programación. Lo
que funciona, con algunas limitaciones, herramienta que facilite el uso de los novedoso es la sencillez del entorno
sobre cualquier máquina virtual Small- ordenadores de forma creativa, lúdico desarrollado por este equipo de
talk/Squeak. Por tanto, lo único que superando el modelo de formación investigación del MIT liderado por el
necesitamos es hacernos con la imagen tradicional, que viene utilizando las profesor Mitchel Resnick.
de Scratch y enchufarla a nuestra nuevas tecnologías para reproducir En cuanto herramienta de trabajo,
máquina virtual [2]. prácticas educativas obsoletas. Scratch es un proyecto de desarrollo

78 Número 28 WWW.LINUX- MAGAZINE.ES


Squeak: Scratch • LINUX USER

Figura 1: Rutinas informáticas en Scratch.

cerrado y código abierto. Es decir, al tarse con extensiones y modificaciones modo de trabajo consiste en arrastrar y
contrario de los proyectos convencio- del programa. No obstante, la versión soltar bloques en lugar de escribirlos.
nales de código abierto, el equipo de final para Linux diferirá visualmente y Y, por último, como LogoBlocks, Cri-
desarrollo no persigue la contribución será incompatible con la versión están- cketBlocks o PicoBlocks, utiliza blo-
de la comunidad de usuarios, sino que dard para evitar la confusión entre ques autoencajables que sólo ajustan si
se reserva la elaboración de la versión ambas versiones. son sintácticamente correctos, permi-
estándard. Por otra parte, es un pro- tiendo al usuario centrar su atención en
yecto de código abierto porque el Los Orígenes los algoritmos lógicos de programación,
equipo de desarrollo espera liberar el Scratch reconoce la aportación del en lugar de perder tiempo intentando
código fuente para mediados de este micromundo de Logo, los e-toys de desentrañar el esotérico código lingüís-
año, de modo que pueda experimen- Squeak y LogoBlocks como sus prece- tico de los tradicionales lenguajes de
dentes o fuentes en las que se ha inspi- programación.
rado. El lenguaje de programación de
Scratch, por un lado, se basa en Logo, Introducción a la
en especial en sus primitivas, y pre- Programación
senta un entorno en el que múltiples A pesar de haber sido ideado como una
objetos pueden evolucionar e interac- sencilla herramienta para jóvenes,
Figura 2: Metáfora de los bloques de cons- tuar. Por otro lado, como en Squeak Scratch ya ha demostrado ser un instru-
trucción. -lenguaje en el que está desarrollado- el mento valioso de introducción a la pro-

Figura 3: El interfaz de Scratch.

WWW.LINUX- MAGAZINE.ES Número 28 79


LINUX USER • Squeak: Scratch

tante, en opinión de John Maloney, uno bloques de instrucciones de Scratch se


de sus desarrolladores, pudiera ser pueden cambiar a diferentes idiomas sin
ampliado para soportar proyectos ningún problema, incluso en plena eje-
mucho más grandes [4]. cución, facilitando su uso en diferentes
entornos lingüísticos.
Características del Diseño
Figura 4: La grabadora de sonidos. de Scratch El Entorno de Desarrollo
Los aspectos esenciales del diseño de El escritorio de Scratch se estructura en
gramación en cursos desarrollados en Scratch se resumen en las siguientes tres secciones principales, a izquierda,
Harvard por David Malan y Henri Leit- características: Metáfora de los bloques centro y derecha de la pantalla respectiva-
ner [3], en los que se ha comprobado la de construcción: La programación con mente: Paleta de bloques, Área de guiones
utilidad de usar Scratch como calenta- Scratch se basa en la metáfora de blo- (scripts) y Escenario. La programación se
miento previo para introducir Java en ques de construcción, en la que los chi- desarrolla en tiempo real y todas las modi-
clases de programación, facilitando la cos construyen procedimientos enca- ficaciones que realicemos en los guiones
transferencia de conceptos desde jando bloques gráficos como ladrillos de los objetos se incorporan de forma
Scratch a otros lenguajes. de Lego o piezas de un puzzle. automática en su ejecución. Como en
Al trabajar con proyectos de Scratch, Manipulación de sonido, vídeo e imá- Squeak, los modos de diseño y ejecución
los jóvenes tienen oportunidades para genes: La manipulación de archivos son simultáneos. No obstante, cuenta con
aprender conceptos informáticos multimedia es una de las características un modo presentación que duplica las
importantes tales como iteración, con- más llamativas de Scratch, a las que se dimensiones del escenario. Esta función
trol de flujo, condicionales, variables, le han añadido rutinas de manipulación de visualización no está operativa, por el
tipos de datos, eventos y procesos. de imágenes en forma de filtros y con- momento, en entorno Linux.
Scratch se ha usado para introducir trol de los mismos. La paleta de bloques, situada en la
estos conceptos a estudiantes de dife- Profunda portabilidad: Además de zona izquierda de la pantalla alberga,
rentes edades, desde la escuela prima- permitir compartir los proyectos a tra- categorizados por colores y funcionali-
ria hasta el instituto, comprobándose vés de su plataforma en la web con un dad, los bloques de programación
cómo éstos migran con facilidad a los golpe de ratón, Scratch facilita el inter- arrastrables al área de scripts.
lenguajes tradicionales basados en cambio de gráficos (sprites) entre dife- El menú principal ocupa la parte
texto después de haberse introducido rentes proyectos, autores e, incluso, superior de la pantalla y permite reali-
en la programación mediante Scratch. entre diferentes tipos de dispositivos. zar las operaciones comunes de crear,
Scratch se ha optimizado para que Estrecha vinculación con el mundo abrir y guardar proyectos, deshacer la
sea fácil de escribir y, en menor físico: El propósito de Scratch es progra- última acción y proporcionar ayuda.
medida, fácil de entender para progra- mar objetos físicos del mismo modo que Además, el botón Extras incluye la
mas relativamente pequeños en un se programan objetos virtuales en panta- opción de establecer el lenguaje de los
dominio especializado, exactamente lo lla usando entradas de sensores físicos bloques de programación en diferentes
mismo que se podría decir acerca de para controlar los comportamientos de idiomas.
lenguajes como Perl, Tk, Awk o APL. los objetos físicos y creaciones virtuales Un botón interesante es el botón
Ninguno de ellos es particularmente mediante el tablero (Scratch board) que Share que nos permite, con un golpe de
eficiente o se encuentra disponible para están desarrollando en el MIT. ratón, subir nuestros proyectos al espa-
construir grandes aplicaciones. No obs- Soporte para múltiples lenguajes: Los cio que previamente hayamos creado
en la página web del proyecto. Una vez
Ejecutar Scratch en Linux alojados en la web, los proyectos
A pesar de lo publicado, Scratch sí se Para poder acceder al entorno, simple- podrán ser ejecutados, mediante un
puede ejecutar en Linux y para ello nos mente tendremos que arrancar Squeak player de java, sobre la misma página o
bajaremos el paquete MS Windows pasándole como parámetro la imagen descargados al ordenador local para
desde [1] el paquete Scratch.exe. El que encontraremos en el directorio
problema con el que vamos a encon- Scratch:
trarnos es que, al tratarse de un $ squeak Scratch.image
paquete exe, ni zip, ni tar, ni gunzip
El resultado, si bien no es del todo
podrán abrirlo. La solución está en usar
satisfactorio, a falta de un versión ofi-
Wine. Si tenemos el emulador de Win-
cial para Linux, nos permite hacernos Figura 5: Tipos de bloques.
dows instalado, simplemente debere-
una idea acerca de las prestaciones del
mos teclear en cualquier consola:
programa. Una parte de sus funciones
$ wine WinScratch aún no están operativas bajo Linux,
en el directorio donde hayamos des- pero el uso general del programa obe-
cargado el programa. Esto ejecutará el dece al usuario y nos permitirá familia-
proceso de instalación, creándose una rizarnos con el entorno a la espera de
carpeta Scratch que contiene todos los que sus desarrolladores realicen su
elementos del entorno. lanzamiento definitivo para Linux.
Figura 6: Bloques apilables.

80 Número 28 WWW.LINUX- MAGAZINE.ES


Squeak: Scratch • LINUX USER

Sonidos en Scratch
Figura 7: Bloque cabecera. Los sprites pueden ejecutar sonidos
seleccionados de la librería de sonidos
abrirlos en la plataforma Scratch. De pregrabados de Scratch, importarlos o
este modo se favorece el intercambio y realizar grabaciones mediante la grabadora
el aprendizaje compartido de rutinas de de sonidos de Scratch. Una vez realizadas
programación, estudiando, modifi- las grabaciones, los nuevos sonidos se
cando y mejorando otros programas. incorporarán a la lista de los disponibles
para el proyecto en el que estemos
Sprites y Guiones trabajando. Para ver los sonidos asociados
Los proyectos de Scratch están hechos a un determinado sprite haremos clic sobre
de objetos llamados sprites que la pestaña Sounds.
resultan fáciles de manipular. Los Scratch reconoce archivos MP3, archivos
sprites son los gráficos con los que WAV, AIF y AU descomprimidos (codifica-
trabaja Scratch reconociendo los tipos dos con 8-bits o 16-bits, pero no con 24-
de formatos más habituales (jpg, gif, bits).
bmp y png). Podemos cambiar el
aspecto de un sprite dándole una forma Programar con Scratch lla, bien arrojándolos sobre el escenario,
o disfraz diferente, hacer que se Lo que hace verdaderamente atractivo a bien creándolos mediante la aplicación
parezca a una persona, un tren, una Scratch es la gran simplicidad con la que, Paint Editor, y dándoles vida arrastrando
mariposa o cualquier cosa. Se puede en muy poco tiempo, un usuario sin cono- al área de Scripts bloques de programa-
usar cualquier imagen como disfraz, cimientos de programación puede comen- ción.
dibujar una imagen con el Pintor, zar a elaborar y ejecutar sus propios pro- La programación de los sprites se
importar una imagen de nuestro disco yectos. resume en proporcionarles instrucciones
duro o, simplemente, arrastrarla desde El procedimiento consiste básicamente diciéndoles que se muevan, interpreten
una página web hasta el Escenario. en incorporar sprites y fondos a la panta- música o reaccionen a otros objetos. Para
LINUX USER • Squeak: Scratch

ción de opciones pulsando sobre la punta que comiencen con el encabezado al presio-
de flecha que oculta el menú. nar la bandera. Alternativamente, mediante
En la paleta de bloques encontramos, la tecla intro se obtiene el mismo resultado.
clasificados en ocho categorías en función
Figura 8: Informes. de su utilidad (movimiento, control, apa- Compartir con Scratch
riencia, sensores, sonidos, números, lápiz y Uno de los aspectos más interesantes de
variables), tres clases bloques: Scratch es la posibilidad de compartir ideas y
Bloques apilables: Estos bloques tienen proyectos con la comunidad de usuarios del
salientes en la parte inferior y huecos en la programa, permitiéndonos estudiar los
superior que permiten ajustar unos sobre guiones de otros proyectos y modificarlos
otros formando pilas. Algunos de ellos tienen libremente. El botón Share presente en el
Figura 9: Tipos de monitores de variables. una zona de entrada en su interior, donde se menú principal del programa nos permitirá,
puede escribir un número o elegir una opción mediante un golpe de tecla, subir nuestros
indicarle a un sprite lo que tiene que de una ventana emergente Un tipo especial proyectos a nuestro espacio personal en la
hacer, debemos unir bloques gráficos for- de bloques tiene forma de C abierta en cuyo página web del proyecto. Desde aquí podrán
mando pilas, denominadas guiones . Los interior se pueden insertar otras pilas de blo- ser ejecutados on-line mediante un player de
guiones se construyen seleccionando, en ques. java o descargados para poder ser estudiados
primer lugar, un objeto o fondo de escena- Cabeceras: Las cabeceras se distinguen por y modificados.
rio en la lista de sprites y deslizando blo- tener la parte superior redondeada, están des-
ques desde la paleta de bloques y arroján- tinadas a lanzar la ejecución de los guiones y Proyectos en Desarrollo
dolos sobre el área de scripts. Crear guio- se colocan en la parte superior de las pilas. En la actualidad, el equipo Lifelong Kinder-
nes (programas) consiste, pues, en ir Estos bloques esperan a que suceda un garten del MIT, desarrollador del proyecto,
uniendo bloques gráficos formando una evento, como que se presione una tecla, se continúa mejorando el programa y está re-
pila de instrucciones que se ejecutarán pulse la tecla intro o se haga clic sobre un elaborando la página web de Scratch, que
secuencialmente. Cuando se arrastra un sprite, para comenzar la ejecución de la pila pretende ser una plataforma multilingüe
bloque al Área de guiones, una marca de bloques que está debajo de ellos. que incluirá una biblioteca de sprites para
blanca indica dónde se puede soltar el blo- Informes: Estos bloques se han diseñado que puedan ser utilizados libremente por
que y formar una conexión válida con otro para que encajen en las zonas de entrada de sus usuarios.
bloque. otros bloques. Los informes se presentan con Además de la plataforma Scratch que per-
Para ejecutar un bloque y comprobar su dos siluetas y encajan sólo en los huecos con mita la compartición de proyectos, se está
funcionalidad bastará con hacer doble clic la misma forma. Los informes con bordes trabajando en un player para teléfonos
sobre cualquier parte de la pila, y se ejecu- redondeados representan números y encajan móviles en J2ME que permita ejecutar los
tará todo desde el comienzo al final del en bloques con huecos redondeados. Los proyectos de Scratch en este soporte y en
guión. Además, existe la posibilidad de informes con extremos terminados en punta una versión completamente en línea del
que Scratch nos muestre -en cada informan valores booleanos (verdadero y programa.
momento- el bloque que se está ejecu- falso) y encajan dentro de bloques con hue- Por otra parte, se estudia la posibilidad de
tando, destacando cada bloque a medida cos con extremos en punta. incluir en Scratch shariables, es decir, varia-
que se ejecuta. Esta característica puede Los informes con monitorización en el bles compartidas vía web.
resultar muy útil para encontrar errores en escenario presentan un marcador junto a Paralelamente, están trabajando en un
los programas y para ayudar a los nuevos ellos. Al señalizar el marcador se mostrará el tablero que incluye sensores de luz, sonido,
programadores a comprender el flujo de contenido de la variable en el escenario. La deslizador y botones, además de cuatro
ejecución de un programa. Para habilitar forma de presentación de los informes moni- resistencias de entradas para interruptores,
la ejecución controlada de los guiones torizados cambia al hacer doble clic sobre el sensores ligeros, de temperatura, etc. que
paso a paso seleccionaremos la opción propio marcador mostrando el nombre de la permitirán actuar con el mundo exterior a
start single stepping en el menú Extras del variable, con un marcador grande sin nombre través de Scratch. ■
menú principal de Scratch. o con un deslizador que permite manipular el
valor de la variable. Este último formato (des- RECURSOS
Tipos de Bloques lizador) únicamente está disponible para
[1] Página web de Scratch: http://scratch.
Algunos bloques tienen campos de texto variables creadas por el usuario. Para ajustar
mit.edu
editables, de forma redondeada, que per- los valores máximos y mínimos deberemos
miten modificar sus valores escribiendo hacer clic derecho sobre el marcador de la [2] Zona de descarga de Scratch: http://
llk.media.mit.edu/projects/scratch/
en su interior o arrojar sobre ellos bloques variable con deslizador, seleccionar la opción
download/
con esta misma forma. Otros tienen set sliden min and max y establecer los valo-
menús desplegables que facilitan la selec- res sus valores extremos. [3] Scratch para informáticos en ciernes:
http://www.eecs.harvard.edu/~malan/
Ejecución de Programas publications/fp079-malan.pdf

La banderola verde situada sobre la esquina [4] Entrevista a John Maloney: http://
weeklysqueak.wordpress.com/2007/
superior derecha del escenario permite
01/23/scratching-the-surface/
Figura 10: Ejecución de programas y guiones. comenzar la ejecución de todos los guiones

82 Número 28 WWW.LINUX- MAGAZINE.ES

You might also like