Archivo pdf

13
Aprendiendo a programar con Scratch, una experiencia gratificante. JOSE VICENTE GRAU ALACREU RESUMEN: La experiencia surge de la búsqueda de nuevas herramientas que me permitiesen iniciar a la programación al alumnado de primero de bachillerato de la asignatura Tecnologías de la Información y la Comunicación. Esta búsqueda la inicio al percibir cierto grado de frustración en el alumnado por no conseguir programas finales que les convenciesen en un periodo tan corto de aprendizaje. Descubrir y llevar al aula Scratch fue muy gratificante. El alumnado rápidamente se interesó por este lenguaje de programación que les permitió crear, visualizar y compartir sus inquietudes en muy poco tiempo. PALABRAS CLAVES: Lenguajes de programación, Código abierto, Scratch, Imaginar, Programar, Compartir, TIC. 1. Introducción 2. Espiral del Pensamiento Creativo 3. Scratch 3.1. ¿Por qué decido utilizarlo? 3.2. Descarga e Instalación 3.3. Soporte y Entorno de trabajo 3.4. Comparte tu proyecto en la Red 4. Experiencia docente 4.1. Movimiento y Apariencia 4.2. Sonidos y Lápiz 4.3. Control y Sensores 4.4. Operadores y Variables 4.5. Proyectos personales 5. Conclusión 6. Documentación Web 1. INTRODUCCIÓN La experiencia surge de la búsqueda de nuevas herramientas que me permitiesen iniciar a la programación al alumnado de primero de bachillerato de la asignatura Tecnologías de la Información y la Comunicación en el IES San Vicente Ferrer de Valencia. Esta búsqueda la inicio al percibir, en años anteriores, cierto grado de frustración en el alumnado por no conseguir programas propios de los que se sintiesen satisfechos. Una vez visto el análisis de problemas así como el diseño y la programación de algoritmos con el único fin de aprender a programar, nos enfrentábamos a la no difícil tarea de aprender la sintaxis de 1 / 13

Transcript of Archivo pdf

Aprendiendo a programar con Scratch, una experiencia gratificante.

JOSE VICENTE GRAU ALACREU

RESUMEN: La experiencia surge de la búsqueda de nuevas herramientas que me permitiesen iniciar a la programación al alumnado de primero de bachillerato de la asignatura Tecnologías de la Información y la Comunicación. Esta búsqueda la inicio al percibir cierto grado de frustración en el alumnado por no conseguir programas finales que les convenciesen en un periodo tan corto de aprendizaje.

Descubrir y llevar al aula Scratch fue muy gratificante. El alumnado rápidamente se interesó por este lenguaje de programación que les permitió crear, visualizar y compartir sus inquietudes en muy poco tiempo.

PALABRAS CLAVES: Lenguajes de programación, Código abierto, Scratch, Imaginar, Programar, Compartir, TIC.

1. Introducción 2. Espiral del Pensamiento Creativo 3. Scratch

3.1. ¿Por qué decido utilizarlo? 3.2. Descarga e Instalación 3.3. Soporte y Entorno de trabajo 3.4. Comparte tu proyecto en la Red

4. Experiencia docente 4.1. Movimiento y Apariencia 4.2. Sonidos y Lápiz 4.3. Control y Sensores 4.4. Operadores y Variables 4.5. Proyectos personales

5. Conclusión 6. Documentación Web

1. INTRODUCCIÓN

La experiencia surge de la búsqueda de nuevas herramientas que me permitiesen iniciar a la programación al alumnado de primero de bachillerato de la asignatura Tecnologías de la Información y la Comunicación en el IES San Vicente Ferrer de Valencia. Esta búsqueda la inicio al percibir, en años anteriores, cierto grado de frustración en el alumnado por no conseguir programas propios de los que se sintiesen satisfechos.

Una vez visto el análisis de problemas así como el diseño y la programación de algoritmos con el único fin de aprender a programar, nos enfrentábamos a la no difícil tarea de aprender la sintaxis de

1 / 13

un lenguaje de programación en un periodo muy corto de aprendizaje. Ante esta tarea, siempre percibía cierto rechazo por parte del alumnado.

A través de un curso del CEFIRE de Valencia, descubrí y decidí llevar al aula Scratch. El alumnado rápidamente se interesó por este lenguaje de programación que les permitió crear, visualizar y compartir sus inquietudes en muy poco tiempo.

2. ESPIRAL DEL PENSAMIENTO CREATIVO

Michel Resnick publicó en 2007 el artículo “Sowing the Seeds for a more Creative Society” - “Cultivando las Semillas para una Sociedad más Creativa”, en el cual expone que el conocimiento por si mismo no es suficiente, el éxito no depende exclusivamente de lo que se sabe sino en la habilidad para pensar y actuar de manera creativa.

Michel Resnick dirige el grupo Lifelong Kindergarten en el Media Lab del MIT (Massachussets Institute of Tecnology). Desde 2007, este grupo se encarga de desarrollar Scratch. En el artículo citado anteriormente, Resnnick presenta Scratch como una nueva tecnología desarrollada para promover lo que él define como la espiral del Pensamiento Creativo. Cita textualmente “En este proceso, la gente se imagina lo que quiere hacer; crea un proyecto basado en sus ideas; juega con sus ideas y creaciones; colabora y comparte sus ideas y creaciones con otros y reflexiona sobre sus experiencias, todo lo cual le lleva a imaginar nuevas ideas y nuevos proyectos”

3. SCRATCH

Scratch, en su página oficial, se presenta a si mismo como un lenguaje de programación que facilita crear tus propias historias interactivas, animaciones, juegos, música y arte; y que además, te permite compartir con otros tus creaciones en la web.

3.1 ¿Por qué decido utilizarlo?

Los motivos por los que decido apostar por Scratch en mis clases son los siguientes:

• Ayuda a afrontar problemas y facilita la consolidación del diseño de algoritmos.

• Presenta una interfaz gráfica sencilla, atractiva y en español.

• No trabaja con código sino con sentencias que se arrastran de un lado para otro, organizadas por bloques y colores para facilitar su localización y aprendizaje.

• Desde el principio, prácticamente sin conocimientos previos, podemos realizar creaciones y ejecutarlas sin emplear tiempo aprendiendo la sintaxis de un lenguaje de programación de

2 / 13

alto nivel. La asignatura dispone de un único trimestre dedicada a la programación, muy pocas horas, y con Scratch esto deja de ser un problema. Además la obtención rápida de resultados resulta motivador para el alumnado.

• Los conceptos básicos de la programación como diferencia entre variable local y global, sentencias de control de flujo (bucles, sentencias de condición y sentencias de salto), entrada y salida de datos, declaración y operaciones sobre un array o vector, etc, se van aprendiendo mientras se programan juegos.

• En un lado de la pantalla tenemos el programa y en el otro la ejecución del mismo. Las modificaciones y los resultados son inmediatos, lo que incita a las pruebas sin temor al error.

• Favorece el trabajo en grupo, ante la posibilidad de compartir objetos, programas y proyectos.

• La inclusión de elementos multimedia es inmediata. Podemos incorporar audio, texto, e imágenes con suma facilidad.

• Scratch es libre de código abierto (aunque de desarrollo cerrado) por lo que puedo descargarlo, instalarlo y distribuirlo entre el alumnado sin ningún impedimento.

• Scratch es multiplataforma (Windows, Mac, Linux). En la Comunidad Valenciana disponemos de LliureX, nuestra propia distribución Linux basada en Ubuntu. Podemos instalar Scratch directamente sin necesidad de hacer uso de una máquina virtual.

3.2 Descarga e instalación.

La descarga de la aplicación está disponible en la página principal oficial de Scratch.

Opcionalmente, solicita completar un formulario para recibir noticias de Scratch.

3 / 13

Pulsando el botón “Continua para descargar Scratch” accedemos a las diferentes opciones multiplataforma disponibles. En nuestro caso apostamos por la versión para Ubuntu al tener nuestros ordenadores trabajando bajo LliureX, una distribución de Linux basada en Ubuntu.

Una vez descargado el paquete correspondiente, scratch_1.4.0.1-0ubuntu5_i386.deb,

pasamos a su instalación,

4 / 13

pudiendo acceder a la ejecución del programa desde Aplicaciones/Programación/Scratch

3.3 Soporte y Entorno de trabajo.

Scratch nos proporciona soporte para comenzar a utilizarlo, facilitándonos en su página web:

• Una guía de inicio. • Guía de Referencia. • Tarjetas de Scratch • Vídeos sobre Scratch • Preguntas Frecuentes FAQ • Foros Scratch

5 / 13

Como primera toma de contacto con el programa, conoceremos las diferentes áreas del entorno de trabajo.

3.4 Comparte tu proyecto en la Red.

Desde el momento en que nos registremos, dispondremos de un espacio donde publicar nuestros proyectos, con tan solo hacer un simple clic, compartiéndolos con el resto de usuarios Scratch. De la misma manera podremos enriquecernos con el estudio de los proyectos que el resto de usuarios han publicado y que también estarán a nuestra disposición.

Compartir nos permitirá crear proyectos propios a través de la modificación o mejora de programas de otros usuarios. El alumnado se da cuenta de la importancia de la reutilización de código en la programación.

4. EXPERIENCIA DOCENTE

Aprovechando que las instrucciones están agrupadas en un área de familias de bloques, decidí seguir el siguiente protocolo:

• Agrupar en parejas las 8 familias de bloques en las que se organiza Scratch. Esta asociación de familias se llevó a cabo teniendo en cuenta que los conceptos básicos de programación iban a ser expuesto, como es lógico, de menor a mayor dificultad.

6 / 13

• Breve toma de contacto con las instrucciones de los bloques a trabajar.

• Realización de una actividad guiada en la que se podía estudiar el funcionamiento de un programa que utilizaba las más significativas instrucciones de los bloques correspondientes.

• Entrega, por parte del alumnado, de una actividad obligatoria cuya solución se obtenía a partir de ciertas modificaciones de la actividad guiada estudiada anteriormente.

• Para el alumnado que rápidamente adquiriera los conceptos se le proponía una actividad de ampliación que requería modificaciones complejas de la actividad obligatoria o una nueva actividad en la que necesariamente debían experimentar con instrucciones del bloque no utilizadas hasta el momento.

Al finalizar, el alumnado tuvo que realizar su proyecto final personal. Partiendo de una idea propia, fuimos consensuando posibilidades y viabilidad de la misma.

4.1 Movimiento y Apariencia.

En el bloque Movimiento, trabajamos la posición, el desplazamiento y la orientación de los objetos y en el bloque Apariencia descubrimos que a un objeto le podíamos modificar su tamaño y color, mostrar u ocultar, así como hacerle decir o pensar alguna cosa. Hicimos uso de alguna instrucción del bloque Control para poder ejecutar unos ejemplos simples, aun sin ser explicadas en profundidad como haría posteriormente.

Actividad guiada: Hicimos desplazarse a un objeto perro desde la esquina inferior izquierda hasta la esquina inferior derecha, simulando la acción de correr y disminuyendo progresivamente su tamaño según iba moviéndose.

Actividad obligatoria: El perro debía desplazarse a través de las cuatro esquinas, simulando que corría por el borde del escenario. Disminuyendo el tamaño cuando se desplazaba en horizontal y aumentándolo cuando el desplazamiento era vertical. En cada giro nos decía un mensaje que se mostraba 2 segundos y al llegar al punto final debía cambiar el escenario.

Actividad de ampliación: Incluimos un nuevo objeto que se desplazara a decisión propia pero que mantuviese un diálogo bien sincronizado con el objeto perro. Además, el escenario final debía ser una imagen descargada desde Internet, personalizada con las herramientas clonar, llenar de color y texto, del editor de fondos.

Reflexiones: Las actividades se realizaron mayoritariamente sin demasiados problemas y en un espacio de tiempo muy corto. Nos sirvió como primera toma de contacto con el programa. El alumnado se vio sorprendido por la sencillez con la que conseguían resultados. Algunos de ellos

7 / 13

encontraron dificultades a la hora de sincronizar el diálogo entre los dos objetos de la actividad de ampliación. Destacar que los más rápidos en acabar, comenzaron a añadir otros objetos, estuvieron experimentando con otras instrucciones no explicadas e incluso hicieron probaturas con instrucciones de otros bloques.

4.2 Sonidos y Lápiz.

En el bloque Sonidos aprendieron a incluir audio en sus proyectos, ya sean los que trae Scratch, así como importarlos desde su ordenador o directamente grabarlo a través del micrófono y en el bloque Lápiz vimos como dibujar.

Actividad es guiada s : (1)Localizar un escenario que simule una discoteca e incluir varios objetos que simulen estar bailando una música de fondo y (2)Generar figuras geométricas con el lápiz.

Actividad obligatoria: Capturar un mapa desde cualquier callejero de Internet y que un objeto fuese dibujando el trayecto a seguir para ir de un punto a otro a la vez que escuchando una música de fondo el objeto nos iba comentando indicaciones de los puntos intermedios por los que iba pasando.

Reflexiones: Estos dos bloques resultaron muy vistosos y sirvieron para afianzarnos más en el manejo del entorno Scratch pero no le dedicamos demasiado tiempo dado que no incluía nuevos conceptos de programación. Por ello no se facilitó una actividad de ampliación. Tuvimos problemas en algunos ordenadores cuando intentaron utilizar el grabador de sonidos, Scratch se bloqueaba.

4.3 Control y Sensores.

En el bloque Control tratamos como controlar el hilo de ejecución de las instrucciones. Aprovechamos para dejar a un lado los conceptos simples vistos hasta el momento y adentrarnos en las estructuras de control, de vital importancia a la hora de programar. Expuse los diferentes tipos de estructuras de control (de secuencia, de selección y de repetición), con ejemplos comprendieron sus funcionamientos y lo que fue más importante, reforcé el interés en que llegaran a ser capaces de diferenciar cuando resulta óptimo utilizar una de las estructuras de control frente a las otras según la situación que nos plantee el problema a resolver.

En el bloque Sensores conocieron como interactuar con eventos externos, así como con internos del tipo color, distancia o posición de un objeto,

8 / 13

Actividad guiada : Había que dibujar un circuito similar al de la imagen. La variable NumPuntos se inicializaba con 20 puntos. Aumentaba en 1 punto si el coche iba por la carretera gris, disminuía 2 puntos si circulaba tocando el naranja y disminuía en 5 puntos si lo hacía sobre el color azul. En caso de quedarse sin puntos aparecía un mensaje indicando “Has perdido” y si por el contrario el coche llegaba a la meta, franja roja, indicaba “Has ganado”.

Actividad obligatoria : Realizar las mejoras pertinentes para disponer de 3 vidas en la partida. Una variable indicaba el número de vidas disponibles. Por otro lado, si se perdía la partida debía quedar todo el fondo rojo con el texto “Has perdido” y si se ganaba todo el fondo verde con el texto “ Has ganado”.

Actividad de ampliación: Facilitándoles el código de un sencillo juego de tenis, como los que aparecieron con los primeros videojuegos, debían realizar las siguientes modificaciones:

• La partida se daría por terminada al alcanzar 21 puntos alguno de los jugadores.

• La velocidad de la pelota debía ir incrementando según se iba alargando el punto. Al iniciar un nuevo punto, la pelota se desplazaría con su velocidad inicial.

• Las raquetas irían reduciendo su tamaño según iba aumentando la duración del punto. Al iniciar un nuevo punto, las raquetas tendrían su tamaño original.

Reflexiones:

• Las actividades comenzaron a tomar un cierto grado de complejidad, el cual generó entusiasmo en el aula.

• Inicialmente, al no estar acostumbrados al uso de estructuras de control comenzaron a duplicar, triplicar instrucciones, etc, generando un código de difícil comprensión que no funcionaba, apareciendo en el alumnado señales de bloqueo. Ellos mismos, me solicitaron

9 / 13

una nueva explicación de las estructuras de control. Se dieron cuenta de la importancia de programar un código claro y bien organizado, que les facilitó su lectura y comprensión.

• Con la actividad del circuito aprendieron que resolver problemas pequeños les ayudaba a resolver otros más grandes. Por ejemplo, no hacía falta recorrer cada vez todo el circuito para comprobar que si se llegaba a la meta el programa funcionaba correctamente, más sencillo probar el código con un sencillo circuito con la meta muy cerca y una vez todo funcionaba diseñar el circuito definitivo y reutilizar el código implementado.

• Se repitió la situación de juegos en los que al perder una vida, las dos restantes se perdían de inmediato. El error era que cada vez que se perdía una vida inicializaban la variable NumPuntos a 20 y posteriormente se posicionaban de nuevo en el punto de partida del circuito. Si habían perdido la vida por estar tocando el color azul, la variable NumPuntos rápidamente volvía a ser menor que cero. Un simple cambio en el orden de las instrucciones lo solucionó todo.

• En la actividad juego de tenis, como la pelota aumentaba su velocidad y las raquetas disminuían el tamaño, llegado el momento en que el punto se alargaba, aun impactando en la pelota el punto lo daba por perdido al traspasar parte de la raqueta por lo que decidimos poner los límites velocidad máxima de la pelota y el tamaño mínimo de la raqueta, de manera que el juego resultara jugable.

• Los ejercicios sirvieron como punto de partida pero cada alumno personalizó su programa con mejoras que se les iban ocurriendo sobre la marcha: fondos originales, simulación de movimiento en la pelota, raquetas con estilo propio. Se creo una rivalidad positiva entre ellos por conseguir el juego más atractivo.

• A pesar de la competitividad creada, las clases se convirtieron en un taller de programación donde los alumnos se ayudaban entre ellos, no paraban de surgir propuestas nuevas, preguntaban por la viabilidad de sus alternativas, en definitiva, todos aprendíamos de todos.

4.4 Operadores y Variables.

En el bloque Operadores incorporamos los operadores aritméticos, relacionales, lógicos y de asignación, la anidación y precedencia de los mismos, así como el uso de números aleatorios y funciones básicas.

En el bloque Variables integramos las variables, su uso y la diferencia entre variable local y global. Igualmente, añadimos el uso, funcionamiento y operaciones de las listas.

Actividad es guiada s :

• Un objeto debía ir moviéndose por el escenario y cada 5 segundos, operación a operación, nos decía la tabla de multiplicar del 6.

10 / 13

• Tras rellenar aleatoriamente, con números del 1 al 5, una lista de 10 elementos, se mostraban en movimiento por pantalla los objetos 1, 2 , 3, 4 y 5. Estos objetos rebotaban al tocar en un borde. El juego consistía en ir pulsando los objetos en movimiento con el cursor. Cada vez que un objeto era pulsado se eliminaba al primer elemento de la lista que lo contuviese. El juego finalizaba al quedarse la lista vacía.

Nota: La lista permanecerá oculta durante el juego.

Actividad obligatoria : Partiendo de la actividad anterior, hubo que realizar las modificaciones pertinentes para que el juego funcionara con 7 objetos en vez de 5 y que un marcador nos informase de la cantidad de números que quedaban por eliminar.

Actividad de ampliación: Mejorar la actividad obligatoria, dotando al juego de un cronómetro que nos indicara el tiempo que estábamos empleando y que se emitiese el sonido de un clic y desapareciese unos segundos cada vez que un objeto número era pulsado.

Reflexiones:

• Si ya tenían idea de la importancia de reutilizar código, con estas actividades quedó más que comprobado que lo que comenzaron viendo como una opción se convirtió en una necesidad.

• El mayor reto consistió en lograr que apareciese el tiempo empleado en finalizar el juego. Inicialmente decidieron utilizar el cronómetro del bloque sensores pero eran incapaces de conseguir pararlo. Algunos optaron por ocultar el cronómetro y que al finalizar el juego uno de los objetos dijera el valor del cronómetro en ese momento. Problema, sólo sabíamos el tiempo empleado una vez finalizado el juego, no durante el transcurso del mismo. Finalmente, viendo que por más que lo intentaban no se les ocurría nada, les propuse que mostraran una variable a la que se le estuviese asignando permanentemente el valor del cronómetro. La variable dejaba de actualizarse al finalizar el juego, resolviendo así que el tiempo se detuviese.

• Resultó reconfortante comprobar el empeño que dedicaron a intentar resolver el problema del cronómetro. Requirieron mi opinión decenas de veces para que opinara respecto si iban bien encaminados con los planteamientos alternativos que se les iban ocurriendo.

4.5 Proyectos personales.

Para finalizar, les propuse la realización de un proyecto final propio. Tan sólo les requerí que me lo expusieran antes de comenzar, pudiendo así hacerles reflexionar acerca de la viabilidad del mismo en el periodo de tiempo que disponían, incitarles con mejoras que aportaran complejidad al proyecto y asesoramiento respecto a si el planteamiento inicial que tenían les podía llevar a obtener la solución o arrastrarlos hacia un camino equivocado.

Recordar que si estamos registrados en la página oficial de Scratch, además de disfrutar de los

11 / 13

proyectos creados por otros usuarios, podremos descargarlos para estudiar su código.

Algunos de los proyectos presentados por el alumnado:

Pulsando sobre cada uno de los proyectos se accede a su publicación en el espacio que Scratch nos facilita con el propósito de compartir.

12 / 13

5. CONCLUSIÓN

Aprendieron a compartir. A través del estudio de proyectos realizados por otros usuarios (descargados de la sección compartir en la Web Scratch), algunos de ellos programas claros y bien estructurados y otros que no lo eran tanto, aproveché para convencer al alumnado de lo importante de la claridad del programa para su comprensión, detección de errores, cambios, mejoras y ahorro de tiempo.

Aprendieron disfrutando. Con Scratch el alumnado cambió las frases “¿y yo para que quiero saber esto?”, “¿tanto esfuerzo para esto?, si lo hago a mano acabo antes”,... por frases del estilo “¿cómo podría conseguir...?”, “¿me puedes ayudar a...?”, “¿alguien ha podido...?”... Dejaron de quejarse ante ejercicios que solicitaban la ordenación de un vector y pasaron a dedicar horas en casa para conseguir programar un juego que para su correcto funcionamiento debían aplicar diferentes operaciones sobre una lista.

Aprendieron a programar. A lo largo de este trimestre el alumnado consolidó los suficientes conceptos de programación como para sentirme muy satisfecho. En años anteriores, nunca había percibido tanta predisposición, interés y motivación por aprender a programar en la totalidad del grupo.

Scratch, result ó ser toda una experiencia gratificante . Motivo más que suficiente por el que seguiré utilizándolo en cursos posteriores.

6. DOCUMENTACIÓN WEB

• “Sowing the Seeds for a more Creative Society” - “Cultivando las Semillas para una Sociedad más Creativa” (traducción al español por Eleonora Badilla-Saxe)

• Lifelong Kindergarten

• Scratch

• ScratchED

• Programació senzilla d'animacions i jocs: scratch – CEFIRE de Valencia (autoformación).

• “Scratch for Budding Computer Scientists” - “Scratch para los futuros científicos de la computación” (traducción al español por EDUTEKA)

13 / 13