sábado, junio 16, 2007

Scratch: para aprender a programar


A través de "Educación Tecnológica" conocí Scratch. Una aplicación (o lenguaje o entorno) para aprender a programar. Parece estar especialmente pensado para los niños pero creo que puede ser útil para cualquiera que esté empezando. Puedes descargarla gratuitamente desde su página y también publicar ahí los juegos que hagas.

Enseñar a programar es difícil. Cualquiera que lo haya intentado, estará de acuerdo conmigo. Con niños y con mayores. Algunos problemas típicos de cualquier proceso de enseñanza-aprendizaje, en el caso de la programación se multiplican. Al igual que pasa con las Matemáticas y otras materias con un alto grado de abstracción, unos alumnos lo entenderán a la primera y otros, por más ejemplos y ejercicios que expliquemos, es posible que no lleguen a hacerlo.

Llevaba tiempo buscando algo como Scratch para enseñar a programar. Por mis hijos, que siempre me preguntan cuando me pongo con Swish, y por si montamos un taller de verano en las aulas de mi empresa. Había probado, pero poco, otras cosas similares a Scratch, como Squeak y KPL y no me habían convencido. Tampoco me gustó Logo. Después de estos experimentos, pensé en hacerlo con Swish - ActionScript, preparando ejercicios para niños. Pero lo seguía viendo complicado. Scratch no es que haga desaparecer las complicaciones, pero sí que puede ayudar a suavizarlas: sustituye la escritura de código por los bloques de Lego, gestiona de un modo muy visual la orientación a objetos, cuenta con herramientas de dibujo integradas, está completamente traducido al español (aunque tenga pequeños errores, como el confuso "cambiar x por ", para aumentar el valor de una variable)... En definitiva me parece una solución brillante al problema de enseñar a programar.

En la web de Scratch puedes descargarlo y encontrar mucha documentación, la mayoría en inglés. Aquí también hablan de Scratch y aquí cuentan como instalarlo en Linux. Lo mejor que he encontrado en español, es un "minicurso" para niños creado por J. Merelo y que se puede descargar desde Educarex.

Para probarlo hemos creado un juego muy sencillo (y bastante malo, todo hay que decirlo). Se trata de una evolución del clásico PONG, hacia algo parecido al fútbol. Haciendo clic aquí puedes jugar, aunque te aconsejamos que visites la página principal de Scratch y elijas otros juegos bastante más interesantes.

Si finalmente nos decidimos a preparar un curso sobre Scratch, pondremos aquí los materiales. Y cuando hagamos un juego que merezca la pena, también lo pondremos aquí.

Ahora, anímate y empieza con Scratch

(Buscando más información en Internet sobre la enseñanza de la programación, he encontrado artículos muy interesantes y también bastante densos, con puntos de vista poco habituales. En realidad, están un poco lejos de lo que se pretende con Scratch, pues se centran en el período universitario. Tienen ideas muy diferentes de lo que deben ser los primeros pasos para aprender a desarrollar software. El primero de ellos es "Sobre la crueldad de enseñar verdaderamente ciencias de la computación" de un autor tan típico de los libros de texto de Informática como Dijkstra. El segundo es Back to the basics de www.joelonsoftware.com, en el que hace una acertada defensa de la necesidad de enseñar C en 1º de Informática. Tan acertada, que me ha convencido a mí, que siempre había defendido a Pascal como el lenguaje más apropiado para aprender a programar y que lo único que he hecho en C, en toda mi vida, es un Tetris)

11 comentarios:

JJ dijo...

A mi me parece más acertado en primero enseñar algún lenguaje de scripting, como Ruby o Perl. En C hay que montar un pifostio solo para el "Hola, Mundo"

Antonio Salinas dijo...

Sí, tienen la ventaja de la sencillez y hasta de la racionalidad. Pero lo que justifica muy bien joelonsoftware, es que si no sabes C y no "controlas" los punteros, te quedas sin comprender algunas cosas importantes, especialmente cuando se trata de optimizar el rendimiento. Los ejemplos que pone sobre los string, con el chiste del pintor incluido, son muy buenos. En el código puse el enlace al original en inglés, aquí hay una traducción.

Celestino Arteta dijo...

Excelente aportación Antonio, voy a ver todo con detenimiento y seguirle un poco la pista.
Un saludo

Maria dijo...

Me gustaria poder grabar en mi computadora todos los juegos que se puedan, es por eso que quisiera saber cómo tendría que hacer.

Antonio Salinas dijo...

María, otra de las ventajas de Scratch es que te puedes descargar los proyectos desde la Web. Tienes que descargarte e instalar Scratch (http://scratch.mit.edu/pages/download) , crear una cuenta gratuita en scratch.mit.edu y entonces, cuando veas cualquiera de los proyectos en la parte de la derecha tienes un enlace para descargarlo y abrirlo en Scratch.

Juegos-Juegos dijo...

Hola estimado amigo te envio este email para felicitarte por la exelente informacion que brindas sobre los Juegos y a la vez quisiera invitarte a participar en en mi pagina www.juegos-juegos-gratis.blogspot.com en seccion que tengo de paginas amigas o intercambio de enlaces , si te interesa intercambiar enlaces puesde comunicarte conmigo peru_ejecutivo@hotmail.com



Gracias por la atencion prestada y nuevamente felicitaciones por tu exelente pagina bye



Victor Ortega

WEBMASTER

Anónimo dijo...

Hola aquí os dejo el verdadero chat para jugadores al age of empires the conquerors online. : )

SANDRA PATRICIA dijo...

QUESIERA POR FAVOR SABER COMO CREAR EL EJECUTABLE DEL VIDEO HECHO CON SCRATCH PARA VERLO EN CUALQUIER MAQUINA PARA EVITAR PORTAR A TODA HORA LOS INSTALADORES

GRACIAS

Antonio Salinas dijo...

Sandra Patricia, lo siento, pero tenemos a Scratch un poco olvidado. Buscando en el foro oficial de Scratch, he leído que no se pueden crear ejecutables. Un componente del equipo oficial, en la dirección http://scratch.mit.edu/forums/viewtopic.php?id=243, dice lo siguiente:
No hay manera de crear un ejecutable para Windows, Mac o Linux pero hay dos maneras de hacer algo muy similar a lo que quieres.

1. En Windows (y tal vez en Mac y Linux tambien), puedes crear un archivo BAT que cuando se ejecute mande llamar a Scratch.exe con el nombre de tu proyecto como parametro. Esto hara que cuando se le de dos clicks tu proyecto se abra casi como si fuera un ejecutable. Incluso puedes mandarle un parametro para que lo abra en pantalla completa.

Aqui mas informacion al respecto:
http://scratch.mit.edu/forums/viewtopic.php?id=243


2. Puedes tambien descargar el applet de Java (.jar) y crear una pagina HTML que mande llamar al proyecto. En este caso al darle dos clicks a la pagina html la abrira en el navegador y presentara tu proyecto.

Saludos!

xandres26 dijo...

Antonio
A mediados de año empecé a enseñar lo básico de Scratch a niños de 9 años (4ºPrimaria). Luego no toco programación hasta los jóvenes de 15 años (4º Secundaria). A ellos les enseño primero Python (multiplataforma) y Visual Basic. El mejor lenguaje para enseñar a programar para mi sin ninguna duda es Python. Es fabuloso. Para Hola mundo emplea solo una línea: Print "Hola mundo".
Andrés Antayhua

Antonio Salinas dijo...

Andrés a mi también me gusta Python como lenguaje para enseñar a programar. Además se puede usar la librería Pygame para crear juegos, con lo que resulta más atractivo para los niños/adolescentes. Y ahora se pueden llevar a Android con una herramienta de Google.
En los cursos que imparto yo, últimamente estoy utilizando SwishMax por la sencillez, la parte gráfica y la fácil distribución.