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

Una herrSCRamientaA lœdica de iniciación a la prTCH · PDF fileScratch se basa en la met⁄fora de blo-ques de construcciŠn, en la que los chi-cos construyen procedimientos enca-jando

  • Upload
    lebao

  • View
    219

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Una herrSCRamientaA lœdica de iniciación a la prTCH · PDF fileScratch se basa en la met⁄fora de blo-ques de construcciŠn, en la que los chi-cos construyen procedimientos enca-jando

LINUX USER • Squeak: Scratch

78 Número 28 W W W . L I N U X - M A G A Z I N E . E S

¿Qué es Scratch?Scratch es, para sus creadores, unmedio de expresión mediante el cuallos jóvenes y menos jóvenes puedenexpresar sus ideas y responde a lapretensión de proporcionar unaherramienta que facilite el uso de losordenadores de forma creativa,superando el modelo de formacióntradicional, que viene utilizando lasnuevas tecnologías para reproducirprácticas educativas obsoletas.

Utilizar herramientas de programa-ción como medio para alcanzar unamejor comprensión de las nuevas tec-nologías no es nada nuevo, como tam-poco lo es la valoración educativa delos algoritmos de programación. Lonovedoso es la sencillez del entornolúdico desarrollado por este equipo deinvestigación del MIT liderado por elprofesor Mitchel Resnick.

En cuanto herramienta de trabajo,Scratch es un proyecto de desarrollo

No obstante, por tratarse de unaevolución de Squeak, podremosejecutar la imagen de Scratch en

una plataforma Linux siempre que ten-gamos instalada la máquina virtual deSqueak. Scratch es un entorno Squeakque funciona, con algunas limitaciones,sobre cualquier máquina virtual Small-talk/Squeak. Por tanto, lo único quenecesitamos es hacernos con la imagende Scratch y enchufarla a nuestramáquina virtual [2].

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

SCRATCHEl 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

078-082_SqueakScratchLM28 5/5/07 2:17 pm Página 78

Page 2: Una herrSCRamientaA lœdica de iniciación a la prTCH · PDF fileScratch se basa en la met⁄fora de blo-ques de construcciŠn, en la que los chi-cos construyen procedimientos enca-jando

cerrado y código abierto. Es decir, alcontrario de los proyectos convencio-nales de código abierto, el equipo dedesarrollo no persigue la contribuciónde la comunidad de usuarios, sino quese reserva la elaboración de la versiónestándard. Por otra parte, es un pro-yecto de código abierto porque elequipo de desarrollo espera liberar elcódigo fuente para mediados de esteaño, de modo que pueda experimen-

tarse con extensiones y modificacionesdel programa. No obstante, la versiónfinal para Linux diferirá visualmente yserá incompatible con la versión están-dard para evitar la confusión entreambas versiones.

Los OrígenesScratch reconoce la aportación delmicromundo de Logo, los e-toys deSqueak y LogoBlocks como sus prece-dentes o fuentes en las que se ha inspi-rado. El lenguaje de programación deScratch, por un lado, se basa en Logo,en especial en sus primitivas, y pre-senta un entorno en el que múltiplesobjetos pueden evolucionar e interac-tuar. Por otro lado, como en Squeak-lenguaje en el que está desarrollado- el

modo de trabajo consiste en arrastrar ysoltar bloques en lugar de escribirlos.Y, por último, como LogoBlocks, Cri-cketBlocks o PicoBlocks, utiliza blo-ques autoencajables que sólo ajustan sison sintácticamente correctos, permi-tiendo al usuario centrar su atención enlos algoritmos lógicos de programación,en lugar de perder tiempo intentandodesentrañar el esotérico código lingüís-tico de los tradicionales lenguajes deprogramación.

Introducción a laProgramaciónA pesar de haber sido ideado como unasencilla herramienta para jóvenes,Scratch ya ha demostrado ser un instru-mento valioso de introducción a la pro-

Squeak: Scratch • LINUX USER

79Número 28W W W . L I N U X - M A G A Z I N E . E S

Figura 3: El interfaz de Scratch.

Figura 1: Rutinas informáticas en Scratch.

Figura 2: Metáfora de los bloques de cons-

trucción.

078-082_SqueakScratchLM28 5/5/07 2:17 pm Página 79

Page 3: Una herrSCRamientaA lœdica de iniciación a la prTCH · PDF fileScratch se basa en la met⁄fora de blo-ques de construcciŠn, en la que los chi-cos construyen procedimientos enca-jando

tante, en opinión de John Maloney, unode sus desarrolladores, pudiera serampliado para soportar proyectosmucho más grandes [4].

Características del Diseñode ScratchLos aspectos esenciales del diseño deScratch se resumen en las siguientescaracterísticas: Metáfora de los bloquesde construcción: La programación conScratch se basa en la metáfora de blo-ques de construcción, en la que los chi-cos construyen procedimientos enca-jando bloques gráficos como ladrillosde Lego o piezas de un puzzle.

Manipulación de sonido, vídeo e imá-genes: La manipulación de archivosmultimedia es una de las característicasmás llamativas de Scratch, a las que sele han añadido rutinas de manipulaciónde imágenes en forma de filtros y con-trol de los mismos.

Profunda portabilidad: Además depermitir compartir los proyectos a tra-vés de su plataforma en la web con ungolpe de ratón, Scratch facilita el inter-cambio de gráficos (sprites) entre dife-rentes proyectos, autores e, incluso,entre diferentes tipos de dispositivos.

Estrecha vinculación con el mundofísico: El propósito de Scratch es progra-mar objetos físicos del mismo modo quese programan objetos virtuales en panta-lla usando entradas de sensores físicospara controlar los comportamientos delos objetos físicos y creaciones virtualesmediante el tablero (Scratch board) queestán desarrollando en el MIT.

Soporte para múltiples lenguajes: Los

bloques de instrucciones de Scratch sepueden cambiar a diferentes idiomas sinningún problema, incluso en plena eje-cución, facilitando su uso en diferentesentornos lingüísticos.

El Entorno de DesarrolloEl escritorio de Scratch se estructura entres secciones principales, a izquierda,centro y derecha de la pantalla respectiva-mente: Paleta de bloques, Área de guiones(scripts) y Escenario. La programación sedesarrolla en tiempo real y todas las modi-ficaciones que realicemos en los guionesde los objetos se incorporan de formaautomática en su ejecución. Como enSqueak, los modos de diseño y ejecuciónson simultáneos. No obstante, cuenta conun modo presentación que duplica lasdimensiones del escenario. Esta funciónde visualización no está operativa, por elmomento, en entorno Linux.

La paleta de bloques, situada en lazona izquierda de la pantalla alberga,categorizados por colores y funcionali-dad, los bloques de programaciónarrastrables al área de scripts.

El menú principal ocupa la partesuperior de la pantalla y permite reali-zar las operaciones comunes de crear,abrir y guardar proyectos, deshacer laúltima acción y proporcionar ayuda.Además, el botón Extras incluye laopción de establecer el lenguaje de losbloques de programación en diferentesidiomas.

Un botón interesante es el botónShare que nos permite, con un golpe deratón, subir nuestros proyectos al espa-cio que previamente hayamos creadoen la página web del proyecto. Una vezalojados en la web, los proyectospodrán ser ejecutados, mediante unplayer de java, sobre la misma página odescargados al ordenador local para

gramación en cursos desarrollados enHarvard por David Malan y Henri Leit-ner [3], en los que se ha comprobado lautilidad de usar Scratch como calenta-miento previo para introducir Java enclases de programación, facilitando latransferencia de conceptos desdeScratch a otros lenguajes.

Al trabajar con proyectos de Scratch,los jóvenes tienen oportunidades paraaprender conceptos informáticosimportantes tales como iteración, con-trol de flujo, condicionales, variables,tipos de datos, eventos y procesos.Scratch se ha usado para introducirestos conceptos a estudiantes de dife-rentes edades, desde la escuela prima-ria hasta el instituto, comprobándosecómo éstos migran con facilidad a loslenguajes tradicionales basados entexto después de haberse introducidoen la programación mediante Scratch.

Scratch se ha optimizado para quesea fácil de escribir y, en menormedida, fácil de entender para progra-mas relativamente pequeños en undominio especializado, exactamente lomismo que se podría decir acerca delenguajes como Perl, Tk, Awk o APL.Ninguno de ellos es particularmenteeficiente o se encuentra disponible paraconstruir grandes aplicaciones. No obs-

LINUX USER • Squeak: Scratch

80 Número 28 W W W . L I N U X - M A G A Z I N E . E S

Figura 4: La grabadora de sonidos.

Figura 5: Tipos de bloques.

Figura 6: Bloques apilables.

A pesar de lo publicado, Scratch sí sepuede ejecutar en Linux y para ello nosbajaremos el paquete MS Windowsdesde [1] el paquete Scratch.exe. Elproblema con el que vamos a encon-trarnos es que, al tratarse de unpaquete exe, ni zip, ni tar, ni gunzippodrán abrirlo. La solución está en usarWine. Si tenemos el emulador de Win-dows instalado, simplemente debere-mos teclear en cualquier consola:

$ wine WinScratch

en el directorio donde hayamos des-cargado el programa. Esto ejecutará elproceso de instalación, creándose unacarpeta Scratch que contiene todos loselementos del entorno.

Para poder acceder al entorno, simple-mente tendremos que arrancar Squeakpasándole como parámetro la imagenque encontraremos en el directorioScratch:

$ squeak Scratch.image

El resultado, si bien no es del todosatisfactorio, a falta de un versión ofi-cial para Linux, nos permite hacernosuna idea acerca de las prestaciones delprograma. Una parte de sus funcionesaún no están operativas bajo Linux,pero el uso general del programa obe-dece al usuario y nos permitirá familia-rizarnos con el entorno a la espera deque sus desarrolladores realicen sulanzamiento definitivo para Linux.

Ejecutar Scratch en Linux

078-082_SqueakScratchLM28 5/5/07 2:17 pm Página 80

Page 4: Una herrSCRamientaA lœdica de iniciación a la prTCH · PDF fileScratch se basa en la met⁄fora de blo-ques de construcciŠn, en la que los chi-cos construyen procedimientos enca-jando

abrirlos en la plataforma Scratch. Deeste modo se favorece el intercambio yel aprendizaje compartido de rutinas deprogramación, estudiando, modifi-cando y mejorando otros programas.

Sprites y GuionesLos proyectos de Scratch están hechosde objetos llamados sprites queresultan fáciles de manipular. Lossprites son los gráficos con los quetrabaja Scratch reconociendo los tiposde formatos más habituales (jpg, gif,bmp y png). Podemos cambiar elaspecto de un sprite dándole una formao disfraz diferente, hacer que separezca a una persona, un tren, unamariposa o cualquier cosa. Se puedeusar cualquier imagen como disfraz,dibujar una imagen con el Pintor,importar una imagen de nuestro discoduro o, simplemente, arrastrarla desdeuna página web hasta el Escenario.

Sonidos en ScratchLos sprites pueden ejecutar sonidosseleccionados de la librería de sonidospregrabados de Scratch, importarlos orealizar grabaciones mediante la grabadorade sonidos de Scratch. Una vez realizadaslas grabaciones, los nuevos sonidos seincorporarán a la lista de los disponiblespara el proyecto en el que estemostrabajando. Para ver los sonidos asociadosa un determinado sprite haremos clic sobrela pestaña Sounds.

Scratch reconoce archivos MP3, archivosWAV, AIF y AU descomprimidos (codifica-dos con 8-bits o 16-bits, pero no con 24-bits).

Programar con ScratchLo que hace verdaderamente atractivo aScratch es la gran simplicidad con la que,en muy poco tiempo, un usuario sin cono-cimientos de programación puede comen-zar a elaborar y ejecutar sus propios pro-yectos.

El procedimiento consiste básicamenteen incorporar sprites y fondos a la panta-

lla, bien arrojándolos sobre el escenario,bien creándolos mediante la aplicaciónPaint Editor, y dándoles vida arrastrandoal área de Scripts bloques de programa-ción.

La programación de los sprites seresume en proporcionarles instruccionesdiciéndoles que se muevan, interpretenmúsica o reaccionen a otros objetos. Para

Squeak: Scratch • LINUX USER

Figura 7: Bloque cabecera.

078-082_SqueakScratchLM28 5/5/07 2:17 pm Página 81

Page 5: Una herrSCRamientaA lœdica de iniciación a la prTCH · PDF fileScratch se basa en la met⁄fora de blo-ques de construcciŠn, en la que los chi-cos construyen procedimientos enca-jando

ción de opciones pulsando sobre la puntade flecha que oculta el menú.

En la paleta de bloques encontramos,clasificados en ocho categorías en funciónde su utilidad (movimiento, control, apa-riencia, sensores, sonidos, números, lápiz yvariables), tres clases bloques:

Bloques apilables: Estos bloques tienensalientes en la parte inferior y huecos en lasuperior que permiten ajustar unos sobreotros formando pilas. Algunos de ellos tienenuna zona de entrada en su interior, donde sepuede escribir un número o elegir una opciónde una ventana emergente Un tipo especialde bloques tiene forma de C abierta en cuyointerior se pueden insertar otras pilas de blo-ques.

Cabeceras: Las cabeceras se distinguen portener la parte superior redondeada, están des-tinadas a lanzar la ejecución de los guiones yse colocan en la parte superior de las pilas.Estos bloques esperan a que suceda unevento, como que se presione una tecla, sepulse la tecla intro o se haga clic sobre unsprite, para comenzar la ejecución de la pilade bloques que está debajo de ellos.

Informes: Estos bloques se han diseñadopara que encajen en las zonas de entrada deotros bloques. Los informes se presentan condos siluetas y encajan sólo en los huecos conla misma forma. Los informes con bordesredondeados representan números y encajanen bloques con huecos redondeados. Losinformes con extremos terminados en puntainforman valores booleanos (verdadero yfalso) y encajan dentro de bloques con hue-cos con extremos en punta.

Los informes con monitorización en elescenario presentan un marcador junto aellos. Al señalizar el marcador se mostrará elcontenido de la variable en el escenario. Laforma de presentación de los informes moni-torizados cambia al hacer doble clic sobre elpropio marcador mostrando el nombre de lavariable, con un marcador grande sin nombreo con un deslizador que permite manipular elvalor de la variable. Este último formato (des-lizador) únicamente está disponible paravariables creadas por el usuario. Para ajustarlos valores máximos y mínimos deberemoshacer clic derecho sobre el marcador de lavariable con deslizador, seleccionar la opciónset sliden min and max y establecer los valo-res sus valores extremos.

Ejecución de ProgramasLa banderola verde situada sobre la esquinasuperior derecha del escenario permitecomenzar la ejecución de todos los guiones

que comiencen con el encabezado al presio-nar la bandera. Alternativamente, mediantela tecla intro se obtiene el mismo resultado.

Compartir con ScratchUno de los aspectos más interesantes deScratch es la posibilidad de compartir ideas yproyectos con la comunidad de usuarios delprograma, permitiéndonos estudiar losguiones de otros proyectos y modificarloslibremente. El botón Share presente en elmenú principal del programa nos permitirá,mediante un golpe de tecla, subir nuestrosproyectos a nuestro espacio personal en lapágina web del proyecto. Desde aquí podránser ejecutados on-line mediante un player dejava o descargados para poder ser estudiadosy modificados.

Proyectos en DesarrolloEn la actualidad, el equipo Lifelong Kinder-garten del MIT, desarrollador del proyecto,continúa mejorando el programa y está re-elaborando la página web de Scratch, quepretende ser una plataforma multilingüeque incluirá una biblioteca de sprites paraque puedan ser utilizados libremente porsus usuarios.

Además de la plataforma Scratch que per-mita la compartición de proyectos, se estátrabajando en un player para teléfonosmóviles en J2ME que permita ejecutar losproyectos de Scratch en este soporte y enuna versión completamente en línea delprograma.

Por otra parte, se estudia la posibilidad deincluir en Scratch shariables, es decir, varia-bles compartidas vía web.

Paralelamente, están trabajando en untablero que incluye sensores de luz, sonido,deslizador y botones, además de cuatroresistencias de entradas para interruptores,sensores ligeros, de temperatura, etc. quepermitirán actuar con el mundo exterior através de Scratch. �

indicarle a un sprite lo que tiene quehacer, debemos unir bloques gráficos for-mando pilas, denominadas guiones . Losguiones se construyen seleccionando, enprimer lugar, un objeto o fondo de escena-rio en la lista de sprites y deslizando blo-ques desde la paleta de bloques y arroján-dolos sobre el área de scripts. Crear guio-nes (programas) consiste, pues, en iruniendo bloques gráficos formando unapila de instrucciones que se ejecutaránsecuencialmente. Cuando se arrastra unbloque al Área de guiones, una marcablanca indica dónde se puede soltar el blo-que y formar una conexión válida con otrobloque.

Para ejecutar un bloque y comprobar sufuncionalidad bastará con hacer doble clicsobre cualquier parte de la pila, y se ejecu-tará todo desde el comienzo al final delguión. Además, existe la posibilidad deque Scratch nos muestre -en cadamomento- el bloque que se está ejecu-tando, destacando cada bloque a medidaque se ejecuta. Esta característica puederesultar muy útil para encontrar errores enlos programas y para ayudar a los nuevosprogramadores a comprender el flujo deejecución de un programa. Para habilitarla ejecución controlada de los guionespaso a paso seleccionaremos la opciónstart single stepping en el menú Extras delmenú principal de Scratch.

Tipos de BloquesAlgunos bloques tienen campos de textoeditables, de forma redondeada, que per-miten modificar sus valores escribiendoen su interior o arrojar sobre ellos bloquescon esta misma forma. Otros tienenmenús desplegables que facilitan la selec-

LINUX USER • Squeak: Scratch

82 Número 28 W W W . L I N U X - M A G A Z I N E . E S

[1] Página web de Scratch: http://scratch.mit.edu

[2] Zona de descarga de Scratch: http://llk.media.mit.edu/projects/scratch/download/

[3] Scratch para informáticos en ciernes:http://www.eecs.harvard.edu/~malan/publications/fp079-malan.pdf

[4] Entrevista a John Maloney: http://weeklysqueak.wordpress.com/2007/01/23/scratching-the-surface/

RECURSOS

Figura 10: Ejecución de programas y guiones.

Figura 8: Informes.

Figura 9: Tipos de monitores de variables.

078-082_SqueakScratchLM28 5/5/07 2:17 pm Página 82