Clase de matemáticas con scratch

Descripción:

Recordando que en el primer período de grado tercero y cuarto  de la básica primaria está establecido dentro del plan de estudios el reconocimiento del computador como herramienta tecnológica que acompaña a la historia del hombre en su proceso de crecimiento y mejoramiento de sus actividades, con este proyecto los estudiantes realizarán una línea de tiempo a través de Scratch donde se puedan apreciar por lo menos 8 (ocho) novedades cronológicas que den razón del proceso evolutivo y de avances que ha sufrido esta herramienta, para llegar a lo que se conoce como computador en nuestros días.

Es necesario para efectuar este proyecto primero motivar a los estudiantes en el estudio del computador, lo cual se hace a través de la presentación del video “Historia del computador niños”, luego se plantea una situación problémica donde a través del uso de la plantilla de análisis de problemas el alumno demuestre la comprensión de la misma y elabora la planeación del trabajo según el resultado esperado, dicho esquema individual es socializado ante el grupo con el objetivo de hacer ajustes y retroalimentar la mirada dada al problema por resolver. Luego este prediseño es desarrollado por el estudiante sesión a sesión en Scratch con el objetivo que al finalizar muestre una presentación que contenga por lo menos 8 escenarios en los que se aprecia paso a paso cómo la connotación de computador ha ido cambiando a través del tiempo, iniciando con el uso de los dedos hasta llegar a los sofisticados equipos computacionales del hoy. Una vez se lleve a cabo la presentación en el grupo los estudiantes como cierre utilizando la plantilla de reflexión tendrán la oportunidad de expresar cómo se sintieron en el ejecución del proyecto, cuáles fueron las fortalezas y las debilidades durante el proceso, qué situaciones deben mejorar para el próximo proyecto y qué calificación se dan ante su trabajo individual como colectivo.


Objetivos:

Al finalizar el proyecto el estudiante  estará en capacidad de:

  • Conocer cómo el concepto de computador ha ido evolucionando a la par con la historia misma del hombre.
  • Establecer los procesos necesarios para la formulación y resolución de situaciones problémicas, que van desde comprensión del mismo  hasta las operaciones pertinentes para resolverlo.
  • Desarrollar habilidades en el manejo de la herramienta Scratch a través de la realización de una presentación animada que contenga 8 escenarios.
  • Reconocer y afrontar las diversas emociones que se dan tanto a nivel individual como colectivo en el desarrollo del proyecto.

Estándares NETS para TIC  http://www.eduteka.org/estandaresestux.php3

1. Creatividad e innovación
Los estudiantes demuestran pensamiento creativo, construyen conocimiento y desarrollan productos y procesos innovadores utilizando las TIC. Los estudiantes:

Aplican el conocimiento existente para generar nuevas ideas, productos o procesos.

Crean trabajos originales como medios de expresión personal o grupal.

Usan modelos y simulaciones para explorar sistemas y temas complejos.

Identifican tendencias y prevén posibilidades.

2. Comunicación y Colaboración
Los estudiantes utilizan medios y entornos digitales para comunicarse y trabajar de forma colaborativa, incluso a distancia, para apoyar el aprendizaje individual y contribuir al aprendizaje de otros. Los estudiantes:

Interactúan, colaboran y publican con sus compañeros, con expertos o con  otras personas, empleando una variedad de entornos y de medios digitales.

Comunican efectivamente información e ideas a múltiples audiencias, usando una variedad de medios y de formatos.

Desarrollan una comprensión cultural y una conciencia global mediante la vinculación con estudiantes de otras culturas.

Participan en equipos que desarrollan proyectos para producir trabajos originales o resolver problemas.

3. Pensamiento Crítico, Solución de Problemas y Toma de Decisiones 
Los estudiantes usan habilidades de pensamiento crítico para planificar y conducir investigaciones, administrar proyectos, resolver problemas y tomar decisiones informadas usando herramientas y recursos digitales apropiados. Los estudiantes:

Identifican y definen problemas auténticos y preguntas significativas para investigar.

Planifican y administran las actividades necesarias para desarrollar una solución o completar un proyecto.

Reúnen y analizan datos para identificar soluciones y/o tomar decisiones informadas.

Usan múltiples procesos y diversas perspectivas para explorar soluciones alternativas.

4. Funcionamiento y Conceptos de las TIC
Los estudiantes demuestran tener una comprensión adecuada de los conceptos, sistemas y funcionamiento de las TIC. Los estudiantes:

Entienden y usan sistemas tecnológicos de Información y Comunicación.

Seleccionan y usan aplicaciones efectiva y productivamente.

Investigan y resuelven problemas en los sistemas y las aplicaciones.

Transfieren el conocimiento existente al aprendizaje de nuevas tecnologías de Información y Comunicación (TIC).



Requisitos:

Para llevar a cabo el proyecto se requiere de:

  • Conocimientos básico entorno grafico Lenguaje de programación Scratch..
  • Observar el video “Historia del Computador niños” http://youtu.be/RAUFoazM7kE

Recursos:

Computador

Lenguaje de programación Scratch.

El estudiante recuerda la Espiral del Pensamiento Creativo (M. Resnick).

Matriz valoración.

El estudiante desarrolla la Plantilla de análisis de problema y la plantilla de  reflexión.

Prediseño de la presentación creada para solucionar la situación problémica.



nota: Plantilla de reflexión

nota: Plantilla de análisis de problema

Duración:

6 clases de 50 minutos cada una.

Sesión No. 1  Presentación del proyecto

Sesión No, 2 Socialización del análisis del problema y su prediseño

Sesiones No.3 y No.4 Acompañamiento y desarrollo de la presentación

Sesión No. 5 Desarrollo y trabajo colaborativo

Sesión No. 6 Socialización y valoración de la presentación.


Labor del Docente:

Sesión No.1

· Presentar  a los estudiantes el tema a desarrollar en el área de informática (el computador).

· Trasladar los estudiantes a la sala de audiovisuales y presenta el video “Historia del computador          niños”

· Resolver  inquietudes de los estudiantes.

· Presentar a los estudiantes la situación problémica, entregar y explicar plantilla de análisis de     problemas  y  matriz de valoración

· Recordar a los estudiantes los pasos a seguir de la espiral de la creatividad del Dr Michael Resnick.

· Pedir a los estudiantes tener en cuenta la manifestación de sus emociones, haciendo uso de       diferentes caritas.

Sesión No. 2 

·Permitir que voluntariamente algunos estudiantes socialicen la plantilla de análisis de problemas,  realizando la retroalimentación pertinente.

·Revisar el prediseño y planeación de la resolución del problema.

·Pedir a los estudiantes presentar para clase la planeación y el prediseño revisado en clase.

 Sesión No. 3 

· Facilitar, colaborar y orientar los estudiantes permitiéndoles que gestionen su trabajo a través de la     imaginación y creatividad para presentar corregir o mejorar la tarea propuesta.

Sesión No. 4

· Colaborar  y motivar a sus estudiantes para que continúen gestionando su presentación.

Sesión No. 5

· Orientar a los estudiantes  para que realicen un trabajo colaborativo, en el que ayuden a sus       compañeros a resolver inquietudes, compartan los bloque construidos y cumplan así con el trabajo     propuesto

Sesión No. 6:

·  Entregar los estudiantes la plantilla de reflexión.

·  Escuchar la reflexión de algunos de los estudiantes.

·  Teniendo en cuenta la matriz de valoración evaluar el trabajo realizado y entregar a los estudiantes    el resultado.

·  Junto con los estudiantes seleccionar los proyectos para publicar en la web.


Labor del Estudiante:

Sesión No. 1

·  El estudiante presta atención a la explicación dada por el maestro.

·  Observar el video y registra información en su cuaderno.

·  Realizar preguntas acerca del video.

·  Leer la situación problemica y presentar inquietudes.

·  Leer la matriz de valoración y presentar sus inquietudes referentes a ésta.

·  Comprender y reconocer cada uno de los aspectos a evaluar.

·  Elaborar  la plantilla de solución de problemas en la cual presenta las secuencias lógicas que le          permiten imaginar y crear el producto final.

·  De manera individual  el estudiante debe imaginar, crear o reinventar el prediseño del trabajo que      realizará en scratch.

·  Escribir en sus cuadernos los pasos a seguir según la espiral de la  creatividad.

· Tomar  los espacios asignados  por el maestro para expresar sus emociones  frente a la realización   del trabajo a través de diferentes objetos (caritas).

Sesión No. 2

·  El estudiante que decidió  socializar su trabajo, lo  hace claramente,  los demás escuchan                  atentamente y realizan las correcciones pertinentes.

·  Presentar  la plantilla de análisis y prediseño del trabajo a realizar en Scratch.

Sesión No. 3

·  Teniendo como base el prediseño  y reconociendo que se pueden realizar cambios para corregir o      mejorar  el estudiante inicia su trabajo en Scratch,

Sesión No. 4

·  Continuar con  la creación de la presentación,  y durante su desarrollo debe compartir, explicar y        apoyar sus compañeros.

·  Sesión No. 5

·  Después de finalizada su presentación el estudiante debe reunirse con los compañeros que han          tenido dificultad, compartir sus  bloques y explicar claramente la manera como soluciono el                problema, para si ayudar a que todos cumplan el objetivo propuesto.

Sesión No. 6

·  Desarrolla y socializa la plantilla de reflexión.

·  Socializa la presentación  realizada.

·  Recibir nota valorativa de su proyecto.

·  Apoyar al maestro en la selección de proyectos para publicar en la web.


Evaluación:

ASPECTOS SUPERIOR

10. 0

ALTO

8.5

BÁSICO

7.5

BAJO

3.0

 

Plantilla de análisis

Identifican y definen problemas a resolver, comprendiendo las restricciones y operaciones necesarias. Identifican y definen problemas a resolver, comprendiendo las restricciones u  operaciones necesarias. Identifican y definen problemas a resolver. No identifica ni define el problema
Presentación en Scratch Crea una presentación con 8 eventos donde   todos están organizados cronológicamente en la línea de tiempo. Crea una presentación con 8 eventos donde no todos están organizados cronológicamente. Crea una presentación  por lo menos con 5  eventos que dan respuesta a la línea de tiempo. No crea la presentación.
Participación en la actividad Participa activamente durante el desarrollo del actividad en el aula. Participa esporádica durante el desarrollo de la actividad en el aula. No participa durante el desarrollo de la actividad en el aula
Sonido Narra de manera clara y coherente el trabajo realizado. No realiza  narraciones durante la presentación.
Computador El estudiante con la presentación demuestra comprensión y reconoce los avances tecnológicos del computador. La presentación no demuestra comprensión del dado
Ceballos, L. “Historia del computador . Línea de tiempo”. [en linea] (2012) http://www.eduteka.org/ProyectosClase.php

Adios al coco de las matemáticas

Descripción:

Este proyecto se desarrolla en la vereda Chaguala Afuera  del Municipio de Coello, Departamento del Tolima. La escuela es rural,  esta ubicada   en zona de riesgo por  su cercanía a una estación  de servicio, al paso del tubo del  gasoducto, a la vía panamericana y  a la doble calzada .La infraestructura es inadecuada pues no se cuenta con   aula de sistemas totalmente dotada ya que existen solo 5  computadores para todos los grados, no se tiene servicio de internet, ni línea telefónica y solo  tres docentes  orientan  los grados de transición a quinto. La comunidad es de estrato uno o dos y en su mayoría se dedican a las labores del campo, no tienen acceso a bibliotecas, ni a servicios de internet y cuentan tan solo 4 niños con computadores en casa.

En cuanto a los estudiantes se nota bajo desempeño en  las áreas de castellano y matemáticas y  al dialogar con ellos surgieron muchas inquietudes  reflejadas en  preguntas en las cuales ellos mismos plantearon interrogantes y propuestas resaltándose la necesidad por saber y comprender temas con mayor facilidad e interés en el área de   matemáticas. Evidenciándose el deseo  de trabajar  actividades practicas y novedosas.

Por eso ¡ADIOS AL COCO DE LAS MATEMATICAS!, es una estrategia metodológica para el desarrollo de competencias matemáticas y la solución de problemas cotidianos de manera práctica y divertida mediante el uso de herramientas como las TIC, el programa Scratch y la interdisciplinariedad curricular, tomando como punto de partida el proyecto productivo avícola de la escuela.


Objetivos:

OBJETIVO GENERAL

Diseñar un plan de aula que permita desarrollar en los estudiantes competencias para ser  reflexivos, creativos  capaces de resolver problemas de la cotidianidad  e interesados por su entorno y ser capaces de diseñar actividades utilizando la herramientas de Scratch en todas las áreas del conocimiento.

ESPECIFICOS 

·         Desarrollar estrategias que permitan la transversalidad de las áreas de aprendizaje en pro de  mejorar los desempeños de los estudiantes en el área de matemáticas para estimar resultados y solucionar problemas.

·         Desarrollar estrategias  de lecto escritura  para mejorar las competencias  de  producción oral  y  textual.

·         Aplicar las tecnologías de la información especialmente el programa Scratch  con los estudiantes de la sede 03 Fátima como una estrategia novedosa y practica para el aprendizaje.

·         Involucrar a los estudiantes para que diseñen y programen  estrategias que los lleven a   prender conceptos   matemáticos jugando.


Requisitos:

El proyecto está articulado según los lineamientos y programas del plan de estudios en las áreas de matemáticas, castellano, tecnología e informática. En el área de matemáticas procesos de cálculo mental, operaciones básicas. (La multiplicación) y la solución de problemas cotidianos. Actividad LA SUMA ES UNA MULTIPLICACION RAPIDA En el área de castellano se hará énfasis en la producción oral y escrita, descripción y producción de textos. Actividad CREO CUENTOS. En tecnología e informática se tendrá en cuenta la utilización de equipos y medios tecnológicos disponibles y la aplicación de herramientas básicas para la programación en Scratch. Actividad SOMOS CREADORES AREAS: MATEMATICAS, LENGUA CASTELLANA Y TECNOLOGIA E INFORMATICA GRADO: CUARTO EJE TEMATICO: Pensamiento numérico y sistemas numéricos ESTANDAR GENERAL: Suma, resta, multiplica y divide números enteros con fluidez. ESTANDARES ESPECÍFICOS: MATEMATICAS: Desarrolla y aplica estrategias para estimar el resultado de una operación aritmética. LENGUA CASTELLANA: Producción textos orales en situaciones comunicativas evidenciar el uso de la entonación. TECNOLOGIA E INFORMATICA: Sigo instrucciones sobre el uso adecuado de artefactos y Procesos que estén en manuales y otros documentos. COMPETENCIA CONTENIDO INDICADOR CRITERIOS DE EVALUACION Solución de problemas Utiliza estrategias, habilidades y conocimientos adquiridos previamente para resolver un problema dado. Reconoce características propias del sistema decimal. Resuelve problemas cotidianos utilizando las operaciones básicas. Adición, sustracción, multiplicación, división Operaciones Combinadas Problemas matemáticos Desarrolla problemas del entorno que involucran los números decimales. Resuelve problemas cotidianos utilizando las operaciones básicas. HERRAMIENTAS INFORMATICAS HADWARE: Computador portátil y de escritorio Micrófonos Escáner Cámara fotográ fica Memorias USB SOFWARE: Sistemas operativo Windows Procesador de texto Microsoft Word Movie maker Navegadores: internet explorer, mozilla y google chrome Prezzi


Recursos:

RECURSOS FISICOS 

 

·         Computador

·         Internet

·         Video Bean

·         Cámara fotográfica

·         Cuentos

·         Gallinas

·         Huevos

·         Textos

·         Narraciones

·         Cuentos

·         Fichas

RECURSOS HUMANOS 

·         Los estudiantes

·         Docentes de la Institución

·         Padres de Familia


Duración:

DURACION DEL PROYECTO

Se desarrollara durante el primer periodo. En clases de 60 min.

En el área de matemáticas: 5 Horas semanales

En el área de Lengua castellana  (plan Lector): 1 hora Semanal.

En el área de Tecnología e informática: 1 Hora semanal.

ACTIVIDAD TIEMPO:      SEMANAS
área 1 2 3 4 5 6 7 8 9 10
Diagnostico (lluvia de ideas) Castellano x                  
Explicación del proyecto Matemáticas   x                
Ejercicios  con el Computador – herramientas TICS. Informática x x x              
Plan Lector ejercicios de análisis de texto Castellano   x x x            
Análisis de conjuntos, conteo  y ejercicios de probabilidades ( prácticos y teóricos)   Matemáticas x   x x            
Presentación de video Scratch y explicación del programa. Informática       x            
Escritura  y producción de textos descripciones, narraciones y cuentos. Castellano          x  x x  x  x   
Ejercicios de operaciones  y solución de problemas con números naturales (prácticos y teóricos) Matemáticas         x x x  x x   
Ejercicios de scratch Informática         x          
Desarrollo  de  guía Scratch y programación. Informática           x  x x x  
Evaluación Todas                   x

Labor del Docente:

ACTIVIDADES DEL DOCENTE

·         Capacitación en la TICS

·         Diagnostico  con los estudiantes. Escuchar  y analizar propuestas (lluvia de ideas)

·         Analizar y organizar  plan de estudios.

·         Programar actividades interdisciplinarias (matemáticas, lengua  castellana y tecnología e informática).

·         Socializar   el  proyecto con estudiantes  y  padres de familia

·         Presentar videos de scratch para motivar a los estudiantes

·         Elaborar  y orientar  guías de trabajo sobre Scratch

·         Salidas al galpón con los estudiantes para las actividades prácticas y vivenciales

·         Realizar actividades prácticas de aula

·         Realizar ejercicios en el computador

·         Orientar actividades de lecto- escritura  y producción de textos

·         Motivar la oralidad en los estudiantes

·         Orientar actividades de programación en Scratch

·         Evaluar cada actividad realizada

·         Analizar  los resultados


Labor del Estudiante:

ACTIVIDADES DE LOS ESTUDIANTES

 

Participación en las diferentes actividades programadas:

·         Clases

·         Salidas  a trabajar en el proyecto productivo

·         Trabajos escritos  en clase y extra clase

·         Producción de cuentos

·         Manejo del computador

·         Creación  y programación de  ejercicios en Scratch


Evaluación:

 

Se tendrán en cuenta aspectos como:

·         La programación de actividades en Scratch

·         La comprensión del proceso y desarrollo de las actividades

·         La participación activa de los niños en el desarrollo de cada actividad

·         La  construcción de conceptos

·         La producción textual

·         La solución de problemas matemáticos

·         La habilidad para el manejo del computador

·         Trabajo en grupo e individual

·         Desempeño en las diferentes áreas

Jennifer, R. “adios al coco de las matemáticas”. [en linea] (2012) http://www.eduteka.org/ProyectosClase.php

Programar en la escuela

La mayoría de la gente mira la programación de computadores como una actividad especializada y tediosa, a la que solo tienen acceso aquellos con entrenamiento técnico avanzado. Y, ciertamente, los lenguajes de programación tradicionales como Java y C++ son muy difíciles de aprender para muchas personas.

Scratch, un nuevo lenguaje gráfico de programación, pretende cambiar esto.Scratch aprovecha los avances en poder de computación y en diseño de interfaces para hacer que la programación sea más atractiva y accesible para niños, adolescentes y todo aquel que esté aprendiendo a programar.

¿Qué aprenden los estudiantes a medida que crean con Scratch historias interactivas, animaciones, juegos, música y arte?.

Por una parte, aprenden ideas de matemáticas y de computación que hacen parte de la experiencia con Scratch. A medida que los estudiantes crean programas en Scratch, aprenden conceptos de computación fundamentales tales como iteración (repetición) y condicionales. También ganan comprensión de conceptos matemáticos importantes tales como coordenadas, variables y números aleatorios.

Lo más importante es que los estudiantes aprenden estos conceptos en un contexto significativo y motivador. Cuando los estudiantes aprenden sobre variables en las clases de Álgebra tradicionales, por lo general se sienten poco conectados personalmente con el  concepto. Pero cuando aprenden sobre variables en el contexto de Scratch, pueden usarlas inmediatamente de maneras muy significativas: para controlar la velocidad de una animación, o llevar la cuenta del puntaje en un juego que ellos estén creando.

A medida que los estudiantes trabajan en proyectos de Scratch, también aprenden sobre procesos de diseño. Por lo regular, el estudiante arranca con una idea, crea un prototipo que funcione, experimenta con él, lo depura cuando las cosas no marchan bien, obtiene retroalimentación de otros, lo revisa y rediseña. Es un espiral continuo: tener una idea, crear un proyecto, lo que lleva a nuevas ideas, que conducen a nuevos proyectos y esto se repite una y otra vez.

Este proceso de diseño de proyecto, combina muchas de las habilidades de aprendizaje para el siglo XXI, que serán fundamentales para el éxito de los estudiantes en el futuro: pensar creativamente, comunicar claramente, analizar sistemáticamente, colaborar efectivamente, diseñar iterativamente, aprender continuamente.

Crear proyectos con Scratch también ayuda a los estudiantes a desarrollar un nivel más profundo de competencia (fluidez) con la tecnología digital (TIC). ¿Qué queremos decir con competencia? Para considerar que una persona domina el Inglés, el Español o cualquier otra lengua, es necesario que aprenda no solo a leer sino también a escribir, esto es a expresarse con el lenguaje. De manera similar, tener competencia con las tecnologías digitales (TIC) implica no solamente interactuar con el computador sino además crear con él.

Por supuesto, muchos estudiantes no serán en el futuro programadores de profesión, así como la mayoría no serán escritores profesionales. Peroaprender a programar ofrece beneficios para todos: permite a los estudiantes que se expresen de manera más completa y creativa, les ayuda no solo a desarrollarse como pensadores lógicos, sino a entender el funcionamiento de las nuevas tecnologías que encuentran en todas partes en su vida diaria.

Lifelong Kindergarten. “Learning with Scratch”. [en linea] Enero (2009) http://www.abantic.org/2010/12/01/programar-con-scratch-en-la-escuela/

La biología de scratch

Descripción:

Recordando que en el primer período de grado tercero y cuarto  de la básica primaria está establecido dentro del plan de estudios el reconocimiento del computador como herramienta tecnológica que acompaña a la historia del hombre en su proceso de crecimiento y mejoramiento de sus actividades, con este proyecto los estudiantes realizarán una línea de tiempo a través de Scratch donde se puedan apreciar por lo menos 8 (ocho) novedades cronológicas que den razón del proceso evolutivo y de avances que ha sufrido esta herramienta, para llegar a lo que se conoce como computador en nuestros días.

Es necesario para efectuar este proyecto primero motivar a los estudiantes en el estudio del computador, lo cual se hace a través de la presentación del video “Historia del computador niños”, luego se plantea una situación problémica donde a través del uso de la plantilla de análisis de problemas el alumno demuestre la comprensión de la misma y elabora la planeación del trabajo según el resultado esperado, dicho esquema individual es socializado ante el grupo con el objetivo de hacer ajustes y retroalimentar la mirada dada al problema por resolver. Luego este prediseño es desarrollado por el estudiante sesión a sesión en Scratch con el objetivo que al finalizar muestre una presentación que contenga por lo menos 8 escenarios en los que se aprecia paso a paso cómo la connotación de computador ha ido cambiando a través del tiempo, iniciando con el uso de los dedos hasta llegar a los sofisticados equipos computacionales del hoy. Una vez se lleve a cabo la presentación en el grupo los estudiantes como cierre utilizando la plantilla de reflexión tendrán la oportunidad de expresar cómo se sintieron en el ejecución del proyecto, cuáles fueron las fortalezas y las debilidades durante el proceso, qué situaciones deben mejorar para el próximo proyecto y qué calificación se dan ante su trabajo individual como colectivo.


Objetivos:

Al finalizar el proyecto el estudiante  estará en capacidad de:

  • Conocer cómo el concepto de computador ha ido evolucionando a la par con la historia misma del hombre.
  • Establecer los procesos necesarios para la formulación y resolución de situaciones problémicas, que van desde comprensión del mismo  hasta las operaciones pertinentes para resolverlo.
  • Desarrollar habilidades en el manejo de la herramienta Scratch a través de la realización de una presentación animada que contenga 8 escenarios.
  • Reconocer y afrontar las diversas emociones que se dan tanto a nivel individual como colectivo en el desarrollo del proyecto.

Estándares NETS para TIC  http://www.eduteka.org/estandaresestux.php3

1. Creatividad e innovación
Los estudiantes demuestran pensamiento creativo, construyen conocimiento y desarrollan productos y procesos innovadores utilizando las TIC. Los estudiantes:

Aplican el conocimiento existente para generar nuevas ideas, productos o procesos.

Crean trabajos originales como medios de expresión personal o grupal.

Usan modelos y simulaciones para explorar sistemas y temas complejos.

Identifican tendencias y prevén posibilidades.

2. Comunicación y Colaboración
Los estudiantes utilizan medios y entornos digitales para comunicarse y trabajar de forma colaborativa, incluso a distancia, para apoyar el aprendizaje individual y contribuir al aprendizaje de otros. Los estudiantes:

Interactúan, colaboran y publican con sus compañeros, con expertos o con  otras personas, empleando una variedad de entornos y de medios digitales.

Comunican efectivamente información e ideas a múltiples audiencias, usando una variedad de medios y de formatos.

Desarrollan una comprensión cultural y una conciencia global mediante la vinculación con estudiantes de otras culturas.

Participan en equipos que desarrollan proyectos para producir trabajos originales o resolver problemas.

3. Pensamiento Crítico, Solución de Problemas y Toma de Decisiones 
Los estudiantes usan habilidades de pensamiento crítico para planificar y conducir investigaciones, administrar proyectos, resolver problemas y tomar decisiones informadas usando herramientas y recursos digitales apropiados. Los estudiantes:

Identifican y definen problemas auténticos y preguntas significativas para investigar.

Planifican y administran las actividades necesarias para desarrollar una solución o completar un proyecto.

Reúnen y analizan datos para identificar soluciones y/o tomar decisiones informadas.

Usan múltiples procesos y diversas perspectivas para explorar soluciones alternativas.

4. Funcionamiento y Conceptos de las TIC
Los estudiantes demuestran tener una comprensión adecuada de los conceptos, sistemas y funcionamiento de las TIC. Los estudiantes:

Entienden y usan sistemas tecnológicos de Información y Comunicación.

Seleccionan y usan aplicaciones efectiva y productivamente.

Investigan y resuelven problemas en los sistemas y las aplicaciones.

Transfieren el conocimiento existente al aprendizaje de nuevas tecnologías de Información y Comunicación (TIC).



Requisitos:

Para llevar a cabo el proyecto se requiere de:

  • Conocimientos básico entorno grafico Lenguaje de programación Scratch..
  • Observar el video “Historia del Computador niños” http://youtu.be/RAUFoazM7kE

Recursos:

Computador

Lenguaje de programación Scratch.

El estudiante recuerda la Espiral del Pensamiento Creativo (M. Resnick).

Matriz valoración.

El estudiante desarrolla la Plantilla de análisis de problema y la plantilla de  reflexión.

Prediseño de la presentación creada para solucionar la situación problémica.



nota: Plantilla de reflexión

nota: Plantilla de análisis de problema

Duración:

6 clases de 50 minutos cada una.

Sesión No. 1  Presentación del proyecto

Sesión No, 2 Socialización del análisis del problema y su prediseño

Sesiones No.3 y No.4 Acompañamiento y desarrollo de la presentación

Sesión No. 5 Desarrollo y trabajo colaborativo

Sesión No. 6 Socialización y valoración de la presentación.


Labor del Docente:

Sesión No.1

· Presentar  a los estudiantes el tema a desarrollar en el área de informática (el computador).

· Trasladar los estudiantes a la sala de audiovisuales y presenta el video “Historia del computador          niños”

· Resolver  inquietudes de los estudiantes.

· Presentar a los estudiantes la situación problémica, entregar y explicar plantilla de análisis de     problemas  y  matriz de valoración

· Recordar a los estudiantes los pasos a seguir de la espiral de la creatividad del Dr Michael Resnick.

· Pedir a los estudiantes tener en cuenta la manifestación de sus emociones, haciendo uso de       diferentes caritas.

Sesión No. 2 

·Permitir que voluntariamente algunos estudiantes socialicen la plantilla de análisis de problemas,  realizando la retroalimentación pertinente.

·Revisar el prediseño y planeación de la resolución del problema.

·Pedir a los estudiantes presentar para clase la planeación y el prediseño revisado en clase.

 Sesión No. 3 

· Facilitar, colaborar y orientar los estudiantes permitiéndoles que gestionen su trabajo a través de la     imaginación y creatividad para presentar corregir o mejorar la tarea propuesta.

Sesión No. 4

· Colaborar  y motivar a sus estudiantes para que continúen gestionando su presentación.

Sesión No. 5

· Orientar a los estudiantes  para que realicen un trabajo colaborativo, en el que ayuden a sus       compañeros a resolver inquietudes, compartan los bloque construidos y cumplan así con el trabajo     propuesto

Sesión No. 6:

·  Entregar los estudiantes la plantilla de reflexión.

·  Escuchar la reflexión de algunos de los estudiantes.

·  Teniendo en cuenta la matriz de valoración evaluar el trabajo realizado y entregar a los estudiantes    el resultado.

·  Junto con los estudiantes seleccionar los proyectos para publicar en la web.


Labor del Estudiante:

Sesión No. 1

·  El estudiante presta atención a la explicación dada por el maestro.

·  Observar el video y registra información en su cuaderno.

·  Realizar preguntas acerca del video.

·  Leer la situación problemica y presentar inquietudes.

·  Leer la matriz de valoración y presentar sus inquietudes referentes a ésta.

·  Comprender y reconocer cada uno de los aspectos a evaluar.

·  Elaborar  la plantilla de solución de problemas en la cual presenta las secuencias lógicas que le          permiten imaginar y crear el producto final.

·  De manera individual  el estudiante debe imaginar, crear o reinventar el prediseño del trabajo que      realizará en scratch.

·  Escribir en sus cuadernos los pasos a seguir según la espiral de la  creatividad.

· Tomar  los espacios asignados  por el maestro para expresar sus emociones  frente a la realización   del trabajo a través de diferentes objetos (caritas).

Sesión No. 2

·  El estudiante que decidió  socializar su trabajo, lo  hace claramente,  los demás escuchan                  atentamente y realizan las correcciones pertinentes.

·  Presentar  la plantilla de análisis y prediseño del trabajo a realizar en Scratch.

Sesión No. 3

·  Teniendo como base el prediseño  y reconociendo que se pueden realizar cambios para corregir o      mejorar  el estudiante inicia su trabajo en Scratch,

Sesión No. 4

·  Continuar con  la creación de la presentación,  y durante su desarrollo debe compartir, explicar y        apoyar sus compañeros.

·  Sesión No. 5

·  Después de finalizada su presentación el estudiante debe reunirse con los compañeros que han          tenido dificultad, compartir sus  bloques y explicar claramente la manera como soluciono el                problema, para si ayudar a que todos cumplan el objetivo propuesto.

Sesión No. 6

·  Desarrolla y socializa la plantilla de reflexión.

·  Socializa la presentación  realizada.

·  Recibir nota valorativa de su proyecto.

·  Apoyar al maestro en la selección de proyectos para publicar en la web.

Evaluación:

ASPECTOS SUPERIOR

10. 0

ALTO

8.5

BÁSICO

7.5

BAJO

3.0

 

Plantilla de análisis

Identifican y definen problemas a resolver, comprendiendo las restricciones y operaciones necesarias. Identifican y definen problemas a resolver, comprendiendo las restricciones u  operaciones necesarias. Identifican y definen problemas a resolver. No identifica ni define el problema
Presentación en Scratch Crea una presentación con 8 eventos donde   todos están organizados cronológicamente en la línea de tiempo. Crea una presentación con 8 eventos donde no todos están organizados cronológicamente. Crea una presentación  por lo menos con 5  eventos que dan respuesta a la línea de tiempo. No crea la presentación.
Participación en la actividad Participa activamente durante el desarrollo del actividad en el aula. Participa esporádica durante el desarrollo de la actividad en el aula. No participa durante el desarrollo de la actividad en el aula
Sonido Narra de manera clara y coherente el trabajo realizado. No realiza  narraciones durante la presentación.
Computador El estudiante con la presentación demuestra comprensión y reconoce los avances tecnológicos del computador. La presentación no demuestra comprensión

 

González Barros, C. “La biología del scratch”. [en linea] (2012) http://www.eduteka.org/ProyectosClase.php

Tutorial de scrath

Scratch nos ofrece un escenario virtual que podemos hacer interaccionar con el mundo físico, vamos a aprovechar esto para representar la llegada del vehículo a la barrera, además presentaremos información por pantalla de las lecturas del sensor de distancia.
Debemos tener en cuenta que, aunque fácil e intuitivo, este lenguaje de programación gráfica tiene muchísimas posibilidades, por lo que tendremos que estar atentos para no perdernos.

Esta es la interfaz de programación de Scratch

pantalla Scratch

A la izquierda los menús de funciones o bloques, en el centro las configuraciones de los objetos (programas, comportamientos, etc…) y a la derecha el escenario virtual y la lista de objetos que forman parte de nuestro proyecto.

Para este proyecto necesitaremos 2 objetos:

  • Vehículo
  • BarreraCada uno de estos objetos estará controlado por su programa o programas, pero pueden interactuar entre ellos.

    El programa del vehículo (Objeto 1) es el siguiente

    programa Scratch Explicado

    NOTA: Las señales Open y Close serán usadas para controlar el Objeto 2

    Como veis el programa es relativamente sencillo de seguir, voy a explicar un poco mejor la parte del final (marcada con un óvalo). Mientras que no hayamos llegado a la barrera, si queremos que lo que ocurre en la realidad – se está acercando un objeto a la barrera – quede representado en el escenario virtual, debemos hacer que el vehículo virtual avance en función de las mediciones del sensor de distancia.
    Para ello, teniendo en cuenta que el escenario no es más que una representación encoordenadas x, y, dejaremos fija la Y y nos desplazaremos por el eje X en dirección a la barrera.
    Como el sensor de distancia mide de 0 a 100 tendremos que movernos a la posición

     (100-Medida del Sensor) – restamos porque el coche se mueve hacia la izquierda –

    Además de controlar que, si el vehículo se para en la realidad (la medición del sensor no varía), el vehículo virtual no debe moverse.
    Para eso utilizamos la condición “Esperar hasta que NO(Valor Anterior= Nuevo Valor)” es decir, esperamos hasta que Valor Anterior y Nuevo Valor son distintos

    Y el programa de la barrera (Objeto 2) es este

    programa Scratch Objeto 2

    Al iniciar el programa nos aseguramos de la barrera sea visible, si recibimos “Open”, la ocultamos, si recibimos “Close” la volvemos a mostrar.

    A continuación podéis ver el vídeo del proceso de programación paso a paso.

    Esto es lo que muestra el escenario virtual en las distintas fases del programa

    Al inicio

    programa Scratch Inicio

    Cuando nos pide contraseña

    programa Scratch

    Introducimos contraseña

    programa Scratch 2

    La barrera desaparece

    programa Scratch 3

    Electricbricks. “Tutorial de Scratch y WeDo” [en linea] Agosto (2010) http://blog.electricbricks.com/series/scratch/

Programación en la Educación Escolar

“La competencia digital” debe hacer referencia a diseñar, crear y remezclar; no simplemente a navegar, comunicar e interactuar.

Cuando Moshe Y. Vardi, Editor en Jefe de Comunicaciones, nos invitó a escribir este artículo recordó cómo conoció Scratch: “Uno de mis colegas, Profesor de ciencias de la computación [1], había intentado sin éxito que su hija de 10 años se interesara en programación, con lo único que pudo captar su atención fue con  Scratch”.

Es esto precisamente lo que queríamos lograr cuando decidimos desarrollar Scratch hace seis años;  desarrollar un acercamiento a la programación de computadores que atrajera a la gente que previamente no había imaginado que podía ser programador. Queríamos facilitar la programación a todas las personas, independientemente de su edad, experiencia previa e intereses, para que pudieran programar sus propias historias interactivas, juegos, animaciones y simulaciones y además, compartir sus creaciones con otros.

Desde su lanzamiento al público en Mayo de 2007, el sitio Web de Scratch (http://scratch.mit.edu) se ha convertido en una vibrante comunidad en línea, integrada por personas que comparten, intercambian ideas y remezclan programas propios con los de otros. Se ha llamado a Scratch “el YouTube de los medios interactivos”. Cada día, los “Scratchers” alrededor del mundo, suben al sitio más de 1.500 proyectos nuevos, con el código fuente de acceso libre para permitir compartir y remezclar. La colección de proyectos del sitio es muy diversa e incluye juegos de video, boletines de noticias interactivos, simulaciones de ciencias, tures virtuales, tarjetas de cumpleaños, concursos de animaciones de bailes y tutoriales interactivos, todos programados en Scratch.

La edad del grueso de la audiencia del sitio se ubica entre los 8 y los 16 años (con un pico en los 12 años) aunque un grupo considerable de adultos participa  también. A medida que los “Scratchers” programan y comparten proyectos interactivos, aprenden importantes conceptos matemáticos y de computación; además de aprender a pensar creativamente, razonar sistemáticamente y trabajar colaborativamente: todas estas, habilidades esenciales para el Siglo XXl. De hecho, nuestro objetivo principal no es preparar a las personas para hacer carrera como programadores profesionales sino cultivar una nueva generación de pensadores creativos y sistemáticos que se sientan cómodos programando para expresar sus ideas.

En este artículo nos referimos tanto a los principios de diseño que sirven de guía a nuestro desarrollo de Scratch como a nuestras estrategias para hacer la programación accesible y enganchadora para todos. Pero primero, queremos dar una idea más clara de cómo se está usando Scratch describiendo  una serie de proyectos desarrollados por una niña de 13 años que se registró en el sitio Web de Scratch con el nombre de “BalaBethany”.

A “BalaBethany” le gusta dibujar personajes animados. Así que, cuando comenzó a utilizar Scratch, programó historietas animadas en las que aparecían estos personajes. Comenzó a compartir sus proyectos en el sitio Web de Scratch y otros miembros de la comunidad respondieron positivamente a sus publicaciones, escribiendo comentarios halagadores a sus proyectos. Decían, “Sorprendente” y “OMG I LUV IT!!!!!!”), acompañados por preguntas sobre cómo había logrado ciertos efectos visuales. Por ejemplo, ¿cómo logras que un Objeto se vuelva transparente? Estimulada, “BalaBethany” comenzó a crear y a compartir regularmente nuevos proyectos de Scratch, tales como episodios de series de Televisión.

Periódicamente agregaba nuevos personajes a sus series y en un momento dado se preguntó ¿por qué no involucrar a toda la comunidad de Scratch en el proceso? Ella creó y subió un nuevo proyecto en el que anunciaba un “concurso” en el que solicitaba a otros miembros de la comunidad, diseñar una hermana para alguno de los personajes (Ver Figura 1). El proyecto listaba una serie de requerimientos para el nuevo personaje, incluyendo “debe tener el pelo de color rojo o azul, favor escoger” y “debe parecer un gato o tener cachos de carnero o una combinación de ambos”.

El proyecto recibió más de 100 comentarios. Uno de ellos de un miembro de la comunidad que deseaba concursar pero decía no saber cómo dibujar personajes animados. Entonces BalaBethany generó otro proyecto de Scratch, con un tutorial paso a paso, indicando un conjunto de 13 pasos para dibujar y colorear personajes animados.

En el lapso de un año BalaBethany programó y compartió más de 200 proyectos de Scratch, cubriendo con ellos una serie de temas (cuentos, concursos, tutoriales y más). Sus habilidades tanto de programación como artísticas se acrecentaron y sus proyectos claramente tuvieron eco dentro de la comunidad de Scratch pues recibieron más de 12.000 comentarios.

Figura 1: Imágenes de pantalla de la serie animada, el concurso y el tutorial de “BalaBethany”.


¿POR QUÉ PROGRAMAR?

Se ha vuelto lugar común referirse a las personas jóvenes como “nativos digitales” debido a su aparente fluidez con las tecnologías digitales (TIC) [2]. En realidad muchos jóvenes se sienten muy cómodos enviando mensajes de texto, interactuando con juegos en línea y navegando la Web. ¿Pero los hace esto realmente competentes en TIC? Aunque interactúan con los medios digitales todo el tiempo, pocos son capaces de crear sus propios juegos, animaciones o simulaciones. Es como si pudieran “leer” pero no “escribir”. Desde nuestro punto de vista, la competencia digital requiere no solamente tener habilidad para chatear, navegar o interactuar sino también la habilidad de diseñar, crear e inventar con los nuevos medios [3], tal como lo evidencia “BalaBethany” con sus proyectos.

Para hacer lo anterior usted necesita aprender algún tipo de programación. La habilidad para programar ofrece importantes beneficios. Por ejemplo, expande considerablemente el rango / posibilidades de lo que usted puede crear (y las posibilidades de auto expresión) con el computador. También expande el rango de lo que usted puede aprender. En particular, programar apoya el “pensamiento computacional”, que ayuda a las personas a aprender estrategias importantes de solución de problemas y de diseño (tales como, modularización y diseño iterativo) que conducen a dominios externos a la programación [4]; Además, como programar involucra el crear representaciones externas de procesos para solucionar problemas, la programación ofrece oportunidades para reflexionar sobre el propio pensamiento y aún para pensar en el proceso mismo de pensar [5].

INVESTIGACIÓN PREVIA
Cuando se introdujeron los computadores personales al final de la década de los años 70 y 80, hubo un entusiasmo inicial por enseñar a todos los niños a programar. Miles de colegios enseñaron a millones de estudiantes a escribir programas sencillos en Logo o en Basic [6]. En el  libro “Mindstorms” [7]  publicado en 1980 por Seymour Papert, se presentaba a Logo como la piedra angular para repensar los enfoques tanto para la educación como para el aprendizaje.

Aunque algunos niños y maestros se animaron y transformaron con esas nuevas posibilidades, la mayoría de las Instituciones Educativas pronto redireccionaron los  computadores hacia otros usos. Desde entonces, los computadores se han vuelto omnipresentes en la vida de los niños, pero pocos de ellos aprenden a programar. Hoy en día muchas personas ven la programación de computadores como una actividad técnica puntual, apropiada solo para un pequeño segmento de la población.

¿Qué pasó con el entusiasmo inicial para que los niños aprendieran a programar? ¿Por qué Logo y otras iniciativas no cumplieron sus promesas iniciales? Hubo varios factores:

  • Los primeros lenguajes de programación eran muy difíciles de usar y muchos niños simplemente no pudieron dominar la sintaxis de la programación;
  • Con frecuencia, la programación se presentaba con actividades como, generar listas de números primos y hacer dibujos lineales sencillos, que no tenían conexión con los intereses y experiencias de los jóvenes; y
  • En muchos casos, la programación se presentaba en contextos en los que nadie podía u ofrecer orientación cuando se presentaban problemas o estimular una exploración más profunda cuando las cosas marchaban bien.

Papert argumentaba que los lenguajes de programación debían tener un “piso bajo” esto es ser fáciles de iniciar y un “techo alto” (ofrecer oportunidades para crear en el tiempo proyectos cada vez más complejos). Además, el lenguaje necesitaba “paredes amplias” que le permitieran soportar gran cantidad de proyectos diferentes de manera que las personas con distintos intereses y estilos de aprendizaje quisieran utilizarlo. Satisfacer esta tripleta de piso bajo, techo alto y paredes amplias, no ha sido fácil [8].

En años recientes, nuevos abordajes han buscado interesar en programación a niños y jóvenes [9]. Algunos se han enfocado en lenguajes de programación profesionales como el ActionScript de Flash; otros utilizan lenguajes nuevos como Alice [10] y  Squeak Etoys [11], desarrollados especialmente para programadores jóvenes. Estos han inspirado e influido en nuestro trabajo con Scratch. Pero no estábamos satisfechos con las opciones existentes. En particular, sentíamos que era importante bajar aún más el piso y hacer que las paredes fueran todavía más amplias pero que al mismo tiempo que se siguiera apoyando el desarrollo del pensamiento computacional [12].

Para lograr estas metas, establecimos para Scratch tres principios fundamentales: Hacerlo más “tinkerable” [13], es decir flexible, significativo y con mayor interacción social que otros entornos de programación [Nota de Eduteka: la traducción más cercana en español del término tinkerable, para darle el sentido con que se usa en este documento, es ser flexible o elástico entendido como “que no se sujeta a normas estrictas, a dogmas o a trabas”, “susceptible de cambios o variaciones según las circunstancias o necesidades”, “acomodaticio, que puede ajustarse a muy distintas circunstancias”, “que admite muchas interpretaciones”]. En las secciones siguientes, explicaremos cada uno de estos principios que guiaron nuestro diseño de Scratch.

MÁS FLEXIBLE “TINKERABLE” [13]
Nuestro grupo de investigación en el “Life Long Kindergarten” (Kindergaden para toda la vida) del Laboratorio de Medios de MIT (http://llk.media.mit.edu) viene trabajando desde hace muchos años con la compañía Lego (http://www.lego.com/), ayudando a desarrollar el “Lego Mindstorms” y otros conjuntos de herramientas (kits) [14]. Siempre nos ha intrigado e inspirado la manera en que los niños juegan y construyen con las fichas/bloques/ladrillos de Lego. Si tienen una caja llena de estos, inmediatamente comienzan a experimentar sin restricciones (tinkering), ensamblando al azar unos pocos bloques y la estructura resultante les da inmediatamente nuevas ideas. A medida que juegan y construyen, evolucionan orgánicamente planes y metas y simultáneamente lo hacen estructuras e historias.

Quisimos que el proceso de programar computadores con Scratch ofreciera una experiencia similar. La gramática de Scratch se basa en un conjunto de “bloques gráficos de programación” que los niños ensamblan para crear programas (ver Figura2). Tal como con las fichas/bloques de LEGO, conectores en los bloques sugieren de qué manera pueden estos ensamblarse. Los niños pueden comenzar simplemente a experimentar con los ladrillos, ensamblándolos en diferentes secuencias y combinaciones para observar qué pasa. No hay nada de la oscura sintaxis o de la puntuación de los lenguajes de programación tradicionales. El piso es bajo y la experiencia lúdica.

Figura 2: Ejemplo de secuencias de comandos de Scratch

Los bloques de Scratch se diseñan para que solamente encajen de maneras que hagan sentido sintácticamente. Las estructuras de Control tales como, por siempre repetir, tienen forma de C y con ella se quiere sugerir que los bloques deben ponerse dentro de estas. Los bloques con valores de salida tienen formas acordes con el tipo de valor que retornan: óvalos para valores numéricos y hexágonos para valores Boleanos. Los bloques condicionales tales como si y repetir hasta que, tienen espacios de forma hexagonal, para indicar que se requiere poner en ellos un Boleano.

El nombre mismo de “Scratch” resalta la idea de la experimentación flexible, pues provienen de la técnica de “rayar” (Scratching) utilizada por los “disc jockeys” de hip-hop que experimentan con la música, girando con sus manos para adelante y para atrás, discos de vinilo, para mezclar clips de música que juntan de maneras creativas. Al programar con Scratch, la actividad es similar pues mezcla gráficas, animaciones, fotos, música, sonido.

Scratch se diseñó para ser altamente interactivo. Simplemente con hacer clic en una pila de bloques (guión) esta inmediatamente empieza a ejecutar su código. Usted puede además hacer cambios en la pila cuando se está ejecutando, de manera que sea fácil experimentar con nuevas ideas de manera incremental e iterativa. ¿Quiere crear hilos paralelos? Simplemente genere múltiples pilas de bloques. Nuestra meta es hacer la ejecución paralela tan intuitiva como la ejecución secuencial.

Figura 3: Interfaz de usuario de Scratch

El área de programas en la interfaz de Scratch está pensada para usarse como un escritorio físico (ver Figura 3). Usted puede hasta dejar en él bloques o pilas extras que puede necesitar más adelante. El mensaje implícito es que es aceptable ser un poco desordenado y experimentar.

La mayoría, tanto de lenguajes de programación, como de clases de ciencias de la computación, privilegian la planeación de arriba hacia abajo versus la experimentación flexible de abajo hacia arriba. Con Scratch queremos que los cacharreros (experimentadores) se sientan tan confortables como las personas que planean.

El énfasis en diseño iterativo, incremental se alinea con nuestro propio estilo de desarrollo al crear Scratch. Escogimos “Squeak” como lenguaje de implementación ya que se adapta bien para realizar prototipos rápidos y diseños iterativos. Antes de lanzar Scratch en el 2007, continuamente hicimos ensayos de campo con prototipos en entornos del mundo real, revisándolo una y otra vez en base a retroalimentación y sugerencias provenientes de pruebas de campo [15].

MÁS SIGNIFICATIVO 
Nosotros sabemos que las personas aprenden mejor y disfrutan más, cuando trabajan en proyectos que tienen para ellas significado personal. Así que en el desarrollo de Scratch le dimos prioridad alta a dos criterios de diseño:

  • DiversidadPara que pudiera usarse en proyectos muy diversos (historias, juegos, animaciones, simulaciones), de manera que las personas dentro de un rango de intereses muy variado pudieran todas trabajar en proyectos que les interesaran; y
  • PersonalizaciónFacilitarque las personas personalizaran sus proyectos de Scratch importando fotos y clips de música, grabando voces y creando gráficas [16].

Estas prioridades influenciaron muchas de nuestras decisiones de diseño. Decidimos por ejemplo enfocarnos en imágenes 2D en lugar de las de 3D, pues es mucho más fácil para las personas crear, importar y personalizar trabajos artísticos en 2 dimensiones (2D). Aunque algunas personas puedan considerar el estilo 2D de los proyectos de Scratch como algo pasado de moda, colectivamente los proyectos de Scratch exhiben una diversidad visual y una personalización, ausentes de los ambientes de autor para 3D.

El valor de la personalización está muy bien expresado en la siguiente entrada de blog hecha por un Científico de la Computación (computer scientist) quién presentó Scratch a sus dos hijos: “debo admitir que al principio no entendí por qué un lenguaje de programación para niños debía estar centrado en medios (audio, video, texto), pero después de ver a mis hijos interactuando con Scratch esto se hizo para mi mucho más claro. Una de las mejores cosas que observé con Scratch es que personalizaba la experiencia de desarrollo de nuevas maneras pues facilitaban a mis hijos agregar contenido personalizado y participar activamente en el proceso. No solamente, podían desarrollar programas abstractos para hacer cosas sencillas como un gato, una caja, etc. Sino que podían agregar sus propias fotografías y voces al entorno de Scratch; esto les ha dado muchas horas de diversión y los ha llevado a aprender”.

Nos continúa sorprendiendo la diversidad de los proyectos que se suben al sitio Web de Scratch. Era de esperarse que hubiera muchos juegos, que fueran desde recrear con mucho esfuerzo versiones de los videojuegos favoritos, tales como “Donkey Kong”, hasta otros totalmente originales. Pero también se encuentran proyectos de muchos otros tipos (ver Figura 4). Algunos de ellos documentan experiencias de vida, tales como vacaciones en familia; otros, documentan experiencias imaginarias que se desearía tener, como hacer un viaje para conocer a otros “Scratchers”. Algunos de los proyectos, tales como tarjetas de cumpleaños y mensajes de aprecio, tienen por objeto cultivar relaciones. Otros se diseñan para aumentar la conciencia sobre temas sociales tales como calentamiento global o maltrato animal. Durante la elección presidencial norteamericana en el 2008, un gran número de proyectos tuvieron como personajes a Barack Obama y a John McCain. Posteriormente, otra serie de proyectos promovieron algunos miembros de la comunidad de Scratch en línea para el cargo, no bien definido, de “Presidente de Scratch”.

Figura 4: Imágenes de ejemplos de proyectos Scratch

Algunos de los proyectos atendieron actividades escolares. Para una clase de Ciencias de la Tierra, un muchacho Indio de 13 años, creo un proyecto en el cual un personaje animado viajaba al centro de la tierra, con una grabación de voz sobrepuesta (voz en off) que describía las diferentes capas que iba encontrando en su camino. Cómo parte de una clase de Ciencias Sociales, un joven de 14 años de New Jersey (USA), creó una simulación de la vida en la isla de Pascua (Rapa Nui), con el objeto de ayudar a otros a aprender sobre la cultura y la economía locales.

A medida que los “Scratchers” trabajan en proyectos con significado personal, encontramos que estaban listos y motivados para aprender conceptos matemáticos y de computación importantes, relacionados con sus proyectos.

Veamos el caso de Raúl, un joven que estaba creando un juego interactivo en un centro de jornada escolar complementaria [17]. Generó  las gráficas y las acciones básicas para este pero no sabía cómo llevar el puntaje del resultado. Cuando uno de los investigadores de nuestro equipo visitó ese centro, Raúl le pidió ayuda. El investigador le indicó cómo crear una variable en Scratch y él inmediatamente entendió cómo podía usarla para llevar el puntaje del juego. Comenzó a jugar con los bloques para incrementar las variables y luego lo buscó emocionado y le estrechó la mano diciendo: “¡Gracias, gracias, gracias!!”. El investigador se preguntó ¿cuántos profesores de álgebra de octavo grado reciben un agradecimiento tan efusivo de sus estudiantes por enseñarles variables?.

Figura 5: Ejemplo de de una secuencia de comandos (del juego Pong), en el que se resaltan conceptos matemáticos y de computación.

MÁS SOCIAL
Los desarrollos en el lenguaje de programación Scratch van de la mano con el desarrollo de su sitio Web [18]. Para que Scratch tuviera éxito, el lenguaje necesitaba enlazarse con una comunidad en la que las personas pudieran apoyarse, colaborar y criticarse, además de construir usando el trabajo realizado por otros [19].

El concepto de compartir, hace parte integral de la interfaz de usuario de Scratch la cual tiene, en la parte superior de la página, tanto un menú como un icono de “Compartir” claramente visibles. Si se da clic sobre el icono de Compartir, su proyecto sube al sitio Web de Scratch y se muestra en el primer lugar de la sección de “Proyectos más Recientes” de la página. Una vez subido el proyecto al sitio Web, cualquiera puede ejecutarlo en un navegador, usando un reproductor basado en Java, hacerle comentarios, votar por él (presionando el botón “¿Me encanta?”) o descargarlo para mirarlo y revisar sus códigos. (Todos lo proyectos compartidos en el sitio están amparados por licencia Creative Commons).

Tres principios básicos del diseño de Scratch: hacerlo más flexible (tinkerable), más significativo y más social que otros entornos de programación

Figura 6: Sitio Web de Scratch

En los 32 meses siguientes al lanzamiento de Scratch, se compartieron más de 665.000 proyectos en el sitio Web [20]. Para muchos “Scratchers” la oportunidad de tener una audiencia amplia para sus proyectos y recibir tanto retroalimentación como consejos de otros “Scratchers”, es una motivación fuerte. La extensa librería de proyectos con la que cuenta el sitio, sirve también de inspiración. Explorando los proyectos en ella existentes los “Scratchers” tienen ideas para nuevos proyectos y aprenden nuevas técnicas de programación.

Marvin Minsky dijo una vez que Logo tenía una magnífica gramática pero no mucha literatura [21]. Así como los escritores jóvenes se inspiran muchas veces con la lectura de obras maestras de la literatura, no existía el equivalente para proyectos de Logo excelentes que sirvieran de inspiración a los jóvenes programadores. El sitio Web de Scratch constituye el inicio de esa “literatura” para Scratch.

El sitio es también tierra fértil para la colaboración. Los miembros de la comunidad constantemente prestan, adaptan y construyen con las ideas, imágenes y programas de otros. Más del 15% de los proyectos son re-mezclas de otros proyectos que están en el sitio. Por ejemplo, hay docenas de ejemplos del juego “Tetris”, pues los “Scratchers” continúan adicionándole nuevas funcionalidades y tratando de mejorar su “Jugabilidad”. También hay docenas de proyectos de muñecas para vestir, solicitudes y concursos, todos adaptados de proyectos ya existentes.

Inicialmente, algunos “Scratchers” se molestaron cuando otros re-mezclaron sus proyectos, quejándose de que se los estaban “robando”. Esto generó discusiones en los foros del sitio Web sobre el valor de compartir y sobre las ideas subyacentes en las comunidades que usan código abierto. Nuestra meta es generar una cultura en la que los “Scratchers” (usuarios de Scratch) se sientan orgullosos y no molestos, cuando otros adaptan y re-mezclan sus proyectos. Continuamente le estamos adicionando al sitio nuevas funcionalidades que apoyen y estimulen esta forma de pensar. Ahora, cuando alguien re-mezcla un proyecto, el sitio automáticamente adiciona un enlace al proyecto original, para darle crédito al autor original. Además, cada proyecto incluye enlaces a sus “derivados” (proyectos re-mexclados de este) y los mejores proyectos resultantes de estas “Re-mezclas” se ubican en lugar destacado de la página de inicio de Scratch.

Algunos proyectos se enfocan en el sitio mismo, comentan y analizan otros proyectos que existen en él. Uno de los primeros ejemplos se denominó SNN, sigla en inglés para Red de Noticias de Scratch. Usando el gato, imagen por defecto de Scratch, se daban noticias sobre Scratch de manera muy parecida a como las da un presentador de CNN. Inicialmente nos pareció que “se estaba simulando un noticiero” pero pronto nos dimos cuenta que era un verdadero noticiero que ofrecía noticias de interés a una comunidad real, la comunidad de Scratch en línea.

Este proyecto inspiró otros y generó la proliferación de Boletines en línea, revistas y programas de Televisión, todos ellos programados en Scratch y dirigidos a la comunidad formada en torno de este.

Otros “Scratchers” conformaron “compañías” en línea para crear en conjunto proyectos, que individualmente ninguno de sus miembros hubiera podido hacer. Una de estas compañías se inició cuando una joven Inglesa de 15 años, con el seudónimo de BeeBop, creó un proyecto lleno de objetos programables (sprites) y animó a otros a usarlos en sus proyectos o a hacerle pedidos especiales de objetos animados específicos. Estaba iniciando un negocio gratuito de consultoría. A una niña de 10 años, también inglesa y con el seudónimo de “MusicalMoon”, le gustaron las animaciones de BeeBop y le solicitó crear un fondo para uno de sus proyectos.

Esta colaboración dio nacimiento a “Mesh Inc.” compañía auto catalogada como “compañía miniatura” para producir juegos de “alta calidad” en Scratch. Unos días después, un muchacho de 14 años de New Jersey, USA, con el seudónimo de “Hobbit” descubrió la galería de esa compañía y ofreció sus servicios diciendo “Soy bastante buen programador, puedo ayudarles a depurar los programas y a otras cosas” . Más adelante un niño Irlandés de 11 años, con el seudónimo de “Marty”, se incorporó al staff de Mesh Inc. aportando su experticia en dar movimiento a los escenarios.

Este tipo de colaboraciones ofrecen oportunidades para muchos y diferentes tipos de aprendizaje. A continuación una muchacha de 13 años de California (USA), que comenzó una compañía de Scratch llamada “Blue Elk Productions” describe su experiencia:

“Lo que es divertido tanto de Scratch como de organizar una compañía para hacer con otros guiones para juegos, es que he conocido mucha gente y he aprendido una cantidad de cosas nuevas. He aprendido mucho sobre diferentes tipos de programación mirando juegos de otros que tienen efectos interesantes, bajándolos y modificándoles los códigos y los objetos programables. Realmente me gusta la programación! Además, cuando comencé a usar Scratch yo no pensaba que era una buena artista. Pero desde eso, con solo mirar los proyectos de arte de otros, hacerles preguntas y practicar dibujo con programas como Photoshop y el editor de pinturas de Scratch he mejorado mucho como artista…. y otra cosa que he aprendido al organizar Blue Elk es cómo mantener a un grupo de personas motivadas y trabajando en equipo… A mi me gusta más Scratch que los blogs o los sitios de redes sociales como Facebook porque con el creamos juegos y proyectos interesantes con los que es divertido jugar, mirar y descargar. A mi no me gusta simplemente hablar en línea con otras personas, a mi me gusta hablar sobre algo nuevo y creativo”.

El sitio Web de Scratch se ha convertido en una comunidad en línea vibrante, con personas que comparten, dialogan y re-mezclan proyectos de otros

Para estimular el compartir y colaborar internacionalmente, le damos prioridad alta a traducir Scratch a múltiples idiomas. Creamos una infraestructura que permite que los bloques de programación de Scratch se traduzcan a cualquier idioma sin importar el tipo de caracteres que este tenga. Una red de voluntarios a nivel global ha realizado la traducción a más de 40 idiomas.

Los niños, alrededor del mundo, comparten ahora unos con otros programas de Scratch y cada uno puede ver los bloques de programación en su propio idioma.

DIRECCIONAMIENTO FUTURO
Un número creciente de Instituciones Educativas de Básica y Media (K – 12) de todas partes del mundo y aún algunas universidades, incluyendo a Harvard y a la Universidad de California en Berkeley (USA) [22], utilizan Scratch como introducción a la programación más formal. La pregunta que surge entonces es ¿qué se sigue? En los foros de discusión de Scratch, se dan debates permanentes respecto al lenguaje de programación que debe usarse después de Scratch. Recibimos solicitudes permanentes para adicionarle funcionalidades más avanzadas tales como “Herencia” y “Listas de estructuras recursivas”, con el ánimo de que Scratch mismo sea el “paso siguiente”.

Sin embargo, nosotros pensamos mantener nuestro enfoque inicial de un bajo umbral de inicio (fácil de comenzar) y posibilidades amplias para realizar gran diversidad de proyectos, sin aumentar la complejidad. Para algunos “Scratchers”, en especial aquellos que piensan hacer carrera en ciencias de la computación, es importante moverse a otros lenguajes. Pero para muchos otros “Scratchers”, que ven a la programación como medio de expresión y no como un camino o carrera, Scratch es todo lo que necesitan. Con el pueden seguir experimentando nuevas formas de auto-expresión, produciendo un amplio rango de proyectos a medida que profundizan su comprensión de un núcleo fundamental de ideas computacionales. Con un poquito de programación se puede llegar muy lejos.

A medida que desarrollamos versiones futuras, nuestra meta es hacer Scratch todavía más flexible [13], significativo y social. Con nuestro Tablero de Sensores de Scratch (Scratch Sensor Board), las personas pueden crear proyectos de Scratch que sienten y reaccionan a eventos que ocurren en el mundo físico. También estamos desarrollando una versión de Scratch que corre en dispositivos móviles y otra basada en la Web que permite a las personas acceder datos y programar actividades en línea.

Probablemente, los mayores retos que enfrente Scratch no son tecnológicos sino culturales y educativos [23]. Scratch ha sido un éxito entre los primeros que lo adoptaron pero tenemos que ofrecer un mejor apoyo educativo para que llegue a más personas  [24]. Recientemente lanzamos una nueva comunidad en línea llamada Scratch-Ed en la que los educadores comparten sus ideas experiencias y proyectos de clase en los que usan Scrach. Mirando más ampliamente, debe haber un cambio en lo que la gente piensa respecto a la programación y a los computadores en general. Es necesario expandir la noción de “Fluidez o competencia digital” para que incluya diseñar y crear, no solamente navegar e interactuar. Solo en ese momento tendrán iniciativas como Scratch la posibilidad de desplegar todo su potencial.

Resnick, M. y otros. Programación para todos. Communications of the ACM. Vol. 52 No. 11, Páginas 60-67.

SCRATCH PARA LOS FUTUROS CIENTÍFICOS DE LA COMPUTACIÓN

A primera vista, muchos lenguajes de programación parecen “escritos en griego” para el ojo del neófito, son una amalgama de inglés y una sintaxis inusual. Considere por ejemplo el programa siguiente, escrito en lenguaje Java.

class Hello
{
    public static void main(String [] args)
    {
        System.out.println(“hola, mundo!”);
    }
}

Todo lo que hace este programa, cuando se ejecuta, es escribir “hola mundo” en la pantalla del usuario. Usted podría haberlo adivinado con solo echarle un vistazo al código e ignorar todo lo que no le hacía sentido! Pero ¿qué son todos esas llaves, paréntesis y corchetes {([])}? ¿Qué quiere decir System.out? ¿Qué significa class Hello? y ¿public static void main(String [] args)? Ni sigamos.

Basta con decir que, cuando se trata de aprender a programar, la curva de aprendizaje con lenguajes como Java es muy plana. Antes de comenzar a resolver problemas, usted tiene que aprender primero a leer y escribir en un nuevo lenguaje, aún si la tarea que tiene por delante es sencilla, por ejemplo: “Hola mundo”. Aunque usted entiende a un forastero cuando pronuncia mal alguna palabras en Inglés, este no es el caso con los computadores que son intolerantes cuando de errores se trata. Y no hablemos de un punto y coma, porque sin este el programa anterior ni siquiera va a correr!

Aprender a programar tiene que ver, en últimas, con aprender a pensar lógicamente y aprender a abordar los problemas metódicamente. Sin embargo, los bloques de construcción sobre los que se apoyan los programadores para construir soluciones, son relativamente simples.

Por ejemplo, son comunes en programación tanto los “ciclos” (loops), por medio de los cuales un programa hace algo repetidamente, como las “condicionales”, por medio de las cuales un programa hace algo solo bajo ciertas circunstancias. También son comunes las “variables”, para que un programa, al igual que un matemático, pueda recordar ciertos valores.

Para muchos estudiantes, la que parece una sintaxis críptica de lenguajes como Java, pone obstáculos en su camino para dominar estructuras tan sencillas como estas. Por lo que antes de abordar un lenguaje como Java, con sus paréntesis y puntos y comas, dirijamos nuestra atención aScratch, “nuevo lenguaje de programación que le permite crear sus propias animaciones, juegos y producciones artísticas interactivas”. Aunque originalmente el grupo de investigación del MIT Media Lab, “Lifelong Kindergarten” (Jardín Infantil para toda la vida), lo desarrolló para que lo usaran los niños, Scratch también es útil y divertido para los futuros Científicos de la Computación [1].

Mediante la representación de los bloques de construcción de los programas por bloques con códigos de color (similares a las piezas de un rompecabezas), Scratch le baja la “exigencia” a la programación, permitiendo a los futuros científicos de la computación enfocarse en los problemas, en lugar de hacerlo en la sintaxis. La sintaxis, por supuesto, vendrá más tarde. Pero, por ahora, nos vamos a enfocar en la programación misma. De manera que por ahora, la programación va a parecerse más a armar un rompecabezas que a escribir en griego.

Este tutorial inicia a los futuros científicos de la computación [1] en programación mediante bloques constructivos utilizando Scratch. Se supone que usted ya esta familiarizado con el uso de Scratch y por lo tanto tiene una idea general de cómo programar con el.

Este tutorial pretende formalizar su comprensión de la programación, enmarcando algunas construcciones básicas de programación en el lenguaje de Scratch. 

Fijemos nuestra atención para empezar, en las instrucciones

INSTRUCCIONES
En programación, una instrucción simplemente es la indicación o directiva que le dice al computador que haga algo. Piense en ella como un comando o sentencia. En Scratch, cualquier bloque cuya etiqueta se lea como una orden, es una instrucción.

Uno de esos bloques le da instrucciones a un objeto (sprite) para que diga algo:

d

Otro bloque de instrucciones le indica que vaya a algún sitio:

i

A veces, usted quiere que una instrucción se ejecute solo bajo ciertas condiciones. Esas condiciones se definen en términos de expresiones Boleanas, en las que nos fijaremos a continuación.

EXPRESIONES BOOLEANAS

En programación, las expresiones Boleanas, son expresiones que son o ciertas o falsas. En Scratch, cualquiera de los bloques que tiene forma de diamante alargado es una expresión Boleana. Uno de esos bloques es:

r

Después de todo, es cierto o es falso que el botón del ratón (mouse) está presionado.

Otro de esos boques es:

m

Después de todo, es cierto o es falso que un número dado es menor que otro numero. Con expresiones Booleanas podemos construir estructuras condicionales, en las que fijamos ahora nuestra atención.

CONDICIONALES

En programación, una condición es algo que debe ser cierto para que algo pueda pasar. Una condición es entonces decir que “se evalúa para verdadero” o “se evalúa para falso”. En Scratch, cualquier bloque cuya etiqueta diga “si”, “al presionar” o “hasta que” es un tipo de constructo condicional.

Uno de esos bloques es:

s

El constructo anterior se conoce generalmente como un “si constructo”. Con este podemos darle instrucciones a un objeto para que por ejemplo, diga “hola” únicamente cuando el usuario presione el botón izquierdo del ratón (mouse):

s2

Un constructo relacionado es “si – si no” constructo

s

Con el constructo anterior damos instrucciones al objeto para que diga “hola” o “adiós”, dependiendo de que el usuario haya presionado el botón izquierdo del ratón (mouse):

s2

Tenga en cuenta de que estos constructos pueden anidarse para permitir, por ejemplo, tres condiciones diferentes:

s3

El constructo anterior podría llamerse “si-si no”, “si-si no” constructo
Otro bloque condicional es:

a

Y otro más de este tipo es:

e

Algunas veces, usted quiere que una o varias de estas instrucciones se ejecuten repetidamente de manera continua. Para implementar esta conducta, debemos dirigir nuestra atención a los “ciclos(loops).

CICLOS
En programación, un ciclo puede causar la ejecución de múltiples instrucciones. En Scratch cualquier bloque cuya etiqueta comience con “por siempre” o “repita” es un constructo repetitivo o cíclico
Uno de esos bloques es:

ps

Este constructo nos permite, por ejemplo, dar instrucciones a un objeto para que indefinidamente diga “Miau” durante un segundo, con intervalos de un segundo:

p2

Otro bloque le permite hacer el ciclo un número específico de veces:

r

Y otro bloque le permite repetir un ciclo hasta que una condición sea verdadera:

r2

Algunas veces, usted quiere ejecutar una instrucción muchas veces, cada una de ellas variando ligeramente su comportamiento. Por lo que ahora nos fijaremos en las variables

VARIABLES

En programación una variable es un “sitio” para almacenar valores, de la misma manera en que x y yson variables populares en álgebra. En Scratch, las variables se representan con bloques que tienen forma de círculos alargados, que solo puede etiquetar usted. Las variables, generalmente hablando, pueden ser locales o globales. En Scratch, una variable local solo la puede usar un objeto; una global la pueden usar todos los objetos.

 Las variables nos permiten, por ejemplo, dar instrucciones a un objeto para que cuente de manera ascendente desde 1:

v

Una variable que solo toma dos valores posibles; por ejemplo, 1 para verdadero o 0 para falso, se llama variable Booleana

Con instrucciones, expresiones Booleanas, condicionales, ciclos y variables, ahora en su acervo como bloques de construcción, podemos explorar ya dos constructos de programación de mayor nivel, comencemos por los hilos.

HILOS 

En programación, un hilo es como un mini código dentro de un programa que se puede ejecutar al mismo tiempo que lo hacen otros hilos. Entonces, un programa con múltiples hilos, puede hacer muchas cosas al mismo tiempo. En Scratch, cualquier bloque cuya etiqueta comience con “al presionar”, esta indicando o demarcando esencialmente el inicio de un hilo: piense de lo que Scratch llama “programas” como un hilo (técnicamente los “programas” corren en hilos, bueno pero eso no importa).

Uno de esos bloques es:

a2

Como sugiere la etiqueta del bloque anterior, este hilo se comienza a ejecutar cuando el usuario hace clic en la bandera verde ubicada en la esquina superior derecha de Scratch. Entonces, un programa con dos de estos bloques, tiene “dos hilos de ejecución” que comenzaran a ejecutarse simultáneamente cuando el usuario presione la bandera verde.

Con frecuencia, es útil utilizar hilos separados para tareas conceptualmente diferentes. Por ejemplo, usted quiere hacerle seguimiento a si el usuario en algún momento presiona una tecla determinada durante la ejecución de un programa para, por ejemplo, implementar un interruptor que prenda (1) y apague el sonido (0).

a3

Tome nota, que en este par de códigos, el hilo ubicado a la izquierda es el encargado de generar el maullido, si la variable “sonido” tiene almacenado el valor 1 (on); mientras que el hilo de la derecha constantemente chequea y recuerda si el usuario ha enmudecido o prendido el sonido, presionando la tecla “m”.

Relacionados con los hilos están los eventos, en los que á continuación fijaremos nuestra atención.

EVENTOS

En programación, múltiples hilos puedan comunicarse unos con otros mediante invocación y manejo de eventos. Un evento, entonces, es como un mensaje que un hilo envía a otro. En Scratch, los bloques cuyas etiquetas comienzan con “enviar a todos” invocan eventos, así como los bloques cuyas etiquetas comienzan con “al recibir” manejan eventos.

Un bloque que invoca un evento es:

e

Un bloque que maneja un evento es:

a

Un evento no solo puede ser invocado por un bloque, sino que las acciones de un usuario puedeninvocarlo también. Por ejemplo, al hacer clic en la bandera verde de Scratch, efectivamente se invocaun evento que se maneja por:

a

En Scratch, no solo los eventos permiten la comunicación entre hilos, sino que también permiten a los objetos comunicarse unos con otros. Por ejemplo, dos objetos pueden querer jugar Marco Polo entre ellos, con el comportamiento de uno de ellos definido por el hilo que se encuentra abajo, a la izquierda y el comportamiento del otro objeto definido por el hilo que se encuentra abajo a la derecha:

a

Además de instrucciones, expresiones Booleanas, condicionales, ciclos, variables, hilos y eventos usted puede construir programas divertidos e interesantes. De hecho, exploremos el funcionamiento interno de lo que a primera vista parece ser un programa muy complejo pero que en realidad, es solamente una aplicación de estos bloques de construcción.

Fijemos nuestra atención en Oscartime!

OSCARTIME

Pues bien, este es Oscartime!. Oscartime es un juego, escrito en Scratch, que reta al jugador a arrastrar la mayor cantidad de basura que está cayendo, al bote de basura de Oscar, antes de que este termine de cantar una canción clásica. Acá tenemos una impresión de pantalla:

o

Prosiga, si todavía no lo ha hecho, descargue en su computador el archivo  Oscartime.sb. A continuación, ábralo en Scratch. Haga clic en la bandera verde, lea las instrucciones del juego y disfrute un poco más de dos minutos de diversión! (Los verdaderos fanáticos pueden inclusive ponerle un marcador a la versión que se ofrece en línea en el sitio de Scratch).

Oscartime se implementa con nueve objetos, cada uno de los cuáles utiliza entre uno y tres hilos. Exploremos este tutorial de constructos programados en el contexto de Oscartime para que usted entienda no solo cómo jugar el juego sino como puede usted implementarlo!.

Analicemos primero el objeto Instrucciones de Oscartime

OBJETO INSTRUCCIONES DE OSCARTIME

El objeto instrucciones (Instructions) de Oscartime es responsable de la breve aparición de las instrucciones del juego cuando este se inicia:

o2

Este objeto utiliza un solo hilo para mostrar las instrucciones del juego, que se implementan como un disfraz, que aparece centrado en la pantalla durante cuatro segundos:

a

Cosa bastante simple. Examinemos ahora el primero de los objetos que caen, el objeto Basura de Oscartime.

OBJETO BASURA DE OSCARTIME.
Este objeto está diseñado para caer al azar desde una ubicación en la parte superior de la pantalla y hacia el piso:

o

Una vez lo toma el jugador y lo arrastra con el ratón al bote de basura, el objeto cae desde una nueva posición, burlándose del jugador. El proceso se repite permanentemente. Por supuesto, cada eliminación del objeto vale un punto!

Examinemos el primero de los hilos de este objeto:

h

Este hilo es bastante complicado por lo que propongo examinar las partes que lo componen. Sobra decir que este hilo se comienza a ejecutar en el momento en que el usuario, hace clic en la bandera verde. Las primeras instrucciones básicamente direccionan al objeto hacia abajo, lo ubican al azar y de manera invisible en algún sitio en la parte superior de la pantalla y, después de 4 segundos, lo muestran:

h2

Consideremos ahora el primer constructo condicional en este ciclo del hilo:

h3

Básicamente, el constructo anterior pregunta:

  1. Está el jugador oprimiendo el botón izquierdo del ratón (mouse) (Si esto es cierto, el jugador posiblemente esté haciendo clic en algo)
  2. El ratón (mouse), ¿está tocando este objeto? (Si esto es cierto, podemos suponer que es en este objeto que el jugador está haciendo clic)
  3. ¿Acaba el jugador de hacer clic sobre el objeto? (Si esto es cierto, necesitamos activar el modo arrastre. Si no, el jugador ya está en modo arrastre!)
  4. Cerciórese de que el jugador, en el momento, no este haciendo clic sobre algún otro objeto (Queremos asegurarnos de que el jugador solo pueda tomar un objeto a al vez, así los objetos se estén sobreponiendo en el monitor).

Si las cuatro condiciones se cumplen, los objetos establecen una variable Boleana global llamada good_click y la hacen verdadera, de manera que el programa recuerde un objeto – y no  una ubicación al azar en el monitor – en realidad se le ha hecho clic para arrastrarlo; también establece una variable local – llamada my_click y la hace verdadera, así el objeto sabe que es en el en el que se hizo clic para arrastrarlo; y se el transmite a si mismo un evento llamado trash_click, de manera que un hilo separado pueda manejar el arrastre del objeto.

Si no se cumplen todas las cuatro condiciones y el objeto todavía no se está arrastrando, el segundo condicional del ciclo del constructo induce al objeto a “caer” un paso hacia abajo, a no ser que ya haya llegado al piso:

h4

El constructo condicional con que termina el ciclo determina si el objeto se dejó caer muy cerca del bote de basura de Oscar para que pueda considerarse como depositado en él y en ese caso merecedor de un punto:

h5

En esencia, el constructo anterior pregunta:

  1. ¿Todavía se está desarrollando el juego? (De todas maneras, una vez termina Oscar su canción, no queremos aceptar más basura)
  2. ¿Esta ubicado el objeto dentro de una distancia de 20 pixeles del bote de basura de Oscar? (si esto es así, esta suficientemente cerca para que se pueda considerar depositado)
  3. ¿No está presionando el jugador el botón izquierdo del ratón (mouse)? (La basura no se depositará hasta que usted lo suelte!)

Si todas las tres condiciones anteriores se cumplen, el objeto se esconde (como si se hubiera depositado en el bote), comunica un evento –llamado conteo (scored) – a uno de los hilos del objetoOscar, espera un par de segundos, se mueve a una nueva ubicación en la parte superior de la pantalla y la muestra comenzando una nueva caída.

Como todos estos tres constructos condicionales están anidados dentro de un bloque que tiene la etiqueta “por siempre”, el objeto se comporta como se le indica hasta que termina el juego.

De oto lado, la parte estética del arrastre la maneja un segundo hilo:

h6

Básicamente, durante el tiempo que después de hacer clic en el objeto el jugador mantenga el botón izquierdo del ratón presionado, el objeto va a seguir los movimientos del ratón, creando así la apariencia de ser arrastrado. Tan pronto como el jugador suelte el botón del ratón, el hilo toma nota de que por el momento, ni este objeto ni ningún otro, está ya recibiendo clic. Entonces el hilo “muere”, para ser “tejido nuevamente” cuando se recoja otro objeto para el bote de basura.

Los objetos: zapato, periódico, reloj, teléfono, paraguas y trombón de Oscartime, básicamente se comportan tal como este objeto Basura, las únicas diferencias consisten en los tiempos en los que aparecen por primera vez. (La aparición de estos se sincroniza con la primera mención que de ellos hace Oscar en su canción).

Entonces finalicemos mirando al último de los objetos de Oscartime, el objeto Oscar.

EL OBJETO OSCAR DE OSCARTIME.
El objeto Oscar de Oscartime usa tres hilos para llevar la cuenta del puntaje del jugador y su anuncio. El primero de estos hilos provee el marco general del juego:

h7

En esencia, este hilo viste al objeto con su disfraz predeterminado– el de un bote de basura tapado -; mueve el objeto a su ubicación permanente; establece la variable Boleana global (llamada playing) como verdadera (1), de manera que los otros objetos sepan cuando un juego está en desarrollo; y luego toca la canción de Oscar (soundtrack) mientras el jugador juega el juego. Cuando termina al canción (después de 134 segundos). El objeto establece la variable Booleana global llamada playing como falsa (0), para que los otros objetos sepan que el juego terminó; anuncia el puntaje del jugador y luego mata todos los hilos.

El segundo hilo lleva en todo momento el registro  del puntaje del jugador:

h8

Básicamente, cada vez que algún otro objeto invoca un evento llamado puntaje, el hilo de arriba maneja ese evento estableciendo una variable Booleana local (llamada puntaje) como verdadera, para que los otros hilos de los objetos sepan que no deben cambiar el disfraz de Oscar mientras ese hilo este acumulando el puntaje, de allí en adelante hace saltar a Oscar fuera de su bote de basura para anunciar el puntaje actual del jugador.

El tercer hilo del objeto hace que se levante la tapa del bote de basura de Oscar cada que alguna basura se arrastra cerca de él:

h9

En esencia, la tapa del bote se levanta durante todo el tiempo que el juego esté activo, el objeto cambia el disfraz de Oscar con el fin de anunciar el puntaje del jugador, y también cuando algún objeto esté dentro de 40 pixeles de distancia, del bote de basura.

Es de esta manera como funciona Oscartime. Con seguridad la implementación involucra muchos bloques. Pero en últimas, el juego es solamente el resultado de unir piezas de bloques constructivos de programación.

Ahora, así Scratch soporte constructos comunes a muchos lenguajes de programación, no lo hace todo. Para concluir de este tutorial, revisemos algunos constructos de programación que no tiene Scratch.

CONCLUSIÓN

Aunque Scratch soporta muchos constructos, no los soporta a todos. Comunes a muchos lenguajes de programación pero ausentes en Scratch tenemos:

  • métodos, que le permitan a usted pasar el control de la ejecución de una secuencia de bloques a otra;
  • parámetros, que le permiten a usted influenciar el comportamiento de los métodos;
  • valores de retorno, que permiten a una secuencia de bloques “devover” información a otra;
  • herencia y polimorfismo, que permiten la existencia de relaciones entre estructuras de datos.

Sin embargo, para un científico de la computación en ciernes, nos parece valioso Scratch porque omite el soporte para características o aspectos como esos. Lo que ciertamente ofrece Scratch es un ambiente intuitivo y divertido en el que los principios básicos de la programación se pueden explorar y desplegar sin las complicaciones de la sintaxis.

Es posible que en últimas la ayuda de Scratch para el futuro científico de la computación, es que se centre menos en las comas y los corchetes y más en la solución de problemas.

 

Malan, D. (2007). Scratch for Budding Computer Scientists. Simposio técnico de ACM, Kentucky, marzo.