BITÁCORA

Scratch: Educando a los nativos digitales

Abstract

Times have changed. So, too, have the students, the tools, and the requisite skills   and knowledge. Children who raised with the computer are called “digital natives”, ―they think differently from the rest of us. They develop hypertext minds. They are no longer “little versions of us” They are native speakers of technology, fluent in the digital language of computers, video games, and the Internet. Digital natives will continue to evolve and change so rapidly that we won’t be able to keep up. This phenomenon renders traditional  catch-up methods and are becoming essentially useless. We need more radical solutions. Our young people generally have a much better idea of what the future is bringing than we do. They’re already busy adopting new systems for communicating (instant messaging,  twitter and Facebook), sharing (blogs), buying and selling (eBay), exchanging (peer-to-peer technology), creating (Flash),meeting (3D worlds and augmented reality), collecting (downloads), coordinating (wikis), evaluating (reputation systems), searching (Google), analyzing (SETI), reporting (camera phones), programming (modding), socializing (chat rooms and social networks), and even learning (Web surfing).We need to help all our students take advantage of these new tools and systems to educate themselves. How? Programming, giving them the skills for developing their own videogames or their own   iPhone´s application , etc. Programming is perhaps the key skill necessary for 21st century literacy. In this arena, teachers and schools are stuck in ancient times, to prepare   kids for their 21st century lives, we must help them maximize their tools by extending their programming abilities. Scratch is a program developed by Massachusetts Institute of Technology Media Lab in coordination with the Lifelong Kindergarden Group. It is a visual, block-based, computer programming language editor. The code used in Scratch does not use text  , it uses puzzle-like pieces and thus, the learning process is much less frustrating and therefore, easier to learn. Because Scratch is a programming language, it uses computer programming concepts but with an easy way to learn. Most computer languages, like all the object oriented programming such as C++ and Java are text only to communicate commands. The text can be very hard to initially comprehend and makes people to be afraid of programming.

In this article we will   explain the principles of Object Oriented Programming languages and   describe the basic features of Scratch.

Scratch1

Scratch


————————————————————————————————————-

Introducción

“Nativos digitales” es el término que describe a los que han crecido con la tecnología y, por lo tanto, tienen una habilidad innata en el lenguaje y en el entorno digital. Las herramientas tecnológicas ocupan un lugar central en sus vidas y dependen de ellas para todo tipo de cuestiones cotidianas como estudiar, relacionarse, comprar, informarse o divertirse.

La expresión nativos digitales (“digital natives”) fue acuñada por Marc Prensky [1] en un ensayo titulado “Digital Natives, Digital Inmigrants on the Horizon”, donde los identificaba con aquellas personas que han crecido con la Red y los distinguía de los inmigrantes digitales (“digital inmigrants”), llegados más tarde a las TIC´s. (Tecnologías de la Información y Comunicaciones).

Nacieron en la era digital y son usuarios permanentes de las tecnologías con una habilidad consumada. Han desarrollado una mente hipertextual y ya no son unas “pequeñas versiones de nosotros mismos”. Su característica principal es, sin duda alguna, su tecnofilia. Sienten atracción por todo lo relacionado con las nuevas tecnologías. Con las TICs satisfacen sus necesidades de entretenimiento, diversión, comunicación, información y, tal vez, también de formación.

Estos nuevos usuarios enfocan su trabajo, el aprendizaje y los juegos de nuevas formas: absorben rápidamente la información multimedia de imágenes y videos, igual o mejor que si fuera texto; consumen datos simultáneamente de múltiples fuentes; esperan respuestas instantáneas; permanecen comunicados permanentemente (día y noche) y crean también sus propios contenidos. En su capacidad multitarea, buscan pasar el menor tiempo posible en una labor determinada y abrir el mayor número de frentes posibles, provocando pérdidas de productividad, descensos en la capacidad de concentración y períodos de atención muy cortos con una tendencia a cambiar rápidamente de un tema a otro (en lugar de prestar atención de forma continua en un único objeto).

Aparece en ellos una forma de tratamiento de la información mucho más somera y superficial acompañada, en ocasiones, de una ansiedad relacionada con la obsesión de abrir el máximo número de comunicaciones o trabajos.

En el ámbito educativo la incorporación de los nativos digitales ha supuesto la introducción de una serie de desafíos.

Los nativos digitales, estudiantes de hoy en día y del mañana, no son los sujetos para los que los sistemas educativos y sus procesos de aprendizaje fueron diseñados. Sus profesores son, en el mejor de los casos, inmigrantes digitales que han hecho el esfuerzo de acercase a las nuevas tecnologías e intentan enseñar en un lenguaje muchas veces incomprensible para estos nativos digitales, pudiendo producirse cierto rechazo, o pérdida de atención o de interés.

El aprendizaje, el estudio y la educación juegan un papel muy importante en el desarrollo de la sociedad, siendo uno de los motores de su proceso evolutivo. Es por ello que la docencia y los procesos de aprendizaje deben adaptarse permanentemente a las características de los individuos que en cada momento la componen. Actualmente se acepta que se debe superar la enseñanza basada en transmisión de contenidos para apuntarle en su lugar al desarrollo de capacidades. Lo anterior solo se logra mediante el uso en el aula de estrategias de aprendizaje activo en las que el protagonista principal es el estudiante. Investigaciones y estudios recientes proponen diversos conjuntos de habilidades que la educación debe fomentar para que los estudiantes puedan tener éxito en el mundo digital y globalizado en el que van a vivir. Este planteamiento exige, sin dilaciones, implementar estrategias educativas que contribuyan al desarrollo efectivo de esas habilidades planteadas como fundamentales para el siglo XXI.

En la mayoría de esos conjuntos de habilidades propuestos figuran las habilidades de pensamiento de orden superior que incluyen la creatividad [2] y la destreza para solucionar problemas; por esta razón, se deben seleccionar estrategias efectivas y trabajar con ellas en el aula, para que los estudiantes las desarrollen.

Programar computadoras o desarrollar aplicaciones para dispositivos móviles, por ejemplo, constituye una buena alternativa para atender esta necesidad, si se enfoca en desarrollar esas habilidades y no en formar programadores. Es importante insistir en esta orientación pues la mayoría de las metodologías utilizadas en la educación tradicional incluyen cursos heredados de los lenguajes estructurados del siglo pasado. Si no lo hacemos ahora, los nativos digitales permanecerán en una especie de analfabetismo digital, ya que equivaldría a decir que son lectores digitales pero tienen la incapacidad de escribir.

Dada la urgencia actual para que los estudiantes desarrollen estas  habilidades del Siglo XXI, se han desarrollado varios proyectos que atienden desde las edades más tempranas. El grupo de Lifelong Kindergarten del MIT Media Lab ha desarrollado un lenguaje de programación llamado Scratch que intenta llevar un acercamiento fácil y amigable a la programación orientada a objetos haciendo fácil la programación de animaciones, videojuegos, música y arte interactivo.

En este artículo se hará una descripción conceptual de lo que es la Programación Orientada a Objetos y se describirán brevemente las principales características del lenguaje de programación Scratch.

Programación Orientada a Objetos

Es muy importante destacar que cuando hacemos referencia a la Programación Orientada a Objetos (POO u OOP según su sigla en inglés) no estamos hablando de unas cuantas características nuevas añadidas a un lenguaje de programación. La Programación Orientada a Objetos es más bien una nueva forma de pensar, una manera distinta de enfocar los problemas Estamos hablando de una nueva forma de pensar basado en la  descomposición de problemas y de desarrollo de soluciones de programación y surge en la historia como un intento de dominar la complejidad que, de forma innata, posee el software Por lo anterior, la Programación Orientada a Objetos, es una “filosofía”, que permite el diseño de aplicaciones orientadas a objetos. Dicho esto, lo normal es que toda persona que vaya a desarrollar aplicaciones orientadas a objetos aprenda primero la “filosofía” (o adquiera la forma de pensar) y después el lenguaje, porque “filosofía” sólo hay una y lenguajes muchos.

Cuando miramos a nuestro alrededor ¿qué vemos? pues, cosas, objetos, pero podemos reconocer estos objetos porque cada objeto pertenece a una clase, eso nos permite distinguir, por ejemplo, un perro de una bicicleta (porque son de clases diferentes) y también un teléfono celular de otro (porque, aunque sean iguales, cada uno es un objeto distinto). Éste es el modelo que la POO intenta seguir para estructurar un sistema.

En el caso de los lenguajes orientados a objetos, como es el caso de C++ y Java, el elemento básico no es la función (como en los lenguajes estructurados como Pascal y Fortran), sino un ente denominado precisamente objeto. Un objeto  tal cual lo acabamos de describir, es la representación en un programa de un concepto que contiene toda la información necesaria para abstraerlo: datos que describen sus atributos y operaciones que pueden realizarse sobre los mismos.

Pensar en términos de objetos es muy parecido a cómo lo haríamos en la vida real. Por ejemplo vamos a pensar en un piano, y vamos a tratar de modelarlo en un esquema de POO. Diríamos que el piano es el elemento principal que tiene una serie de características, como podrían ser el color, el modelo o la marca. Además tiene una serie de funcionalidades asociadas, como pueden ser electrónico (digital), de media cola, cola, etc.  En un esquema POO el piano sería el objeto, las propiedades serían las características como el color o el modelo y los métodos serían las funcionalidades asociadas como la tecnología que emplea mecánica o electrónica.

Por poner otro ejemplo vamos a ver cómo modelaríamos en un esquema POO una fracción, es decir, esa estructura matemática que tiene un numerador y un denominador que divide al numerador, por ejemplo 5/2. La fracción será el objeto y tendrá dos propiedades, el numerador y el denominador. Luego podría tener varios métodos como simplificarse, sumarse con otra fracción o número, restarse con otra fracción, etc.

Los objetos tienen dos características: Un estado y un comportamiento. Fíjate que por ejemplo tu perro tiene un estado: nombre, color, raza, altura, etc. y un comportamiento: ladrar, correr, llorar, dormir, comer, etc.

Un auto es otro objeto. También tiene un estado: Cantidad de puertas, color, tamaño, etc. y un comportamiento: acelerar, frenar, subir cambio, bajar cambio, girar izq., girar der., etc.

Entonces podemos definir a un objeto en POO[3], como un conjunto de datos y funciones relacionadas. A las funciones de los objetos, tales como acelerar en el caso del auto y dormir, en el caso del perro, se llaman métodos, y a los datos se les denominan  atributos. Los objetos en programación, son modelados observando objetos del mundo real, por ejemplo implementamos el objeto “perro” dentro de nuestro programa definiendo los atributos y métodos del objeto perro real.

scratch2

Atributos

El objeto “Auto” se puede representar gráficamente como sigue:

Scratch3

Fuente: Curso de Java. UNAM. J Segura

Hay varias  características más que definen la POO como son la Abstracción, encapsulación y herencia, pero que serán tema de otro artículo .Lo importante hasta ahora es comprender que estos objetos se podrán utilizar en varios programas, por ejemplo en un programa de matemáticas harás uso de objetos fracción y en un programa que gestione un taller de reparación y afinación de pianos utilizarás objetos pianos. Los Programas Orientados a Objetos utilizan muchos objetos para realizar las acciones que se desean realizar y ellos mismos también son objetos. Es decir, el taller de  pianos será un objeto que utilizará objetos piano, herramienta, músico, afinador, etc.

Actualmente existen numerosos lenguajes de programación  orientados a objetos, pero entre los que destacan son C++, C#, Java, Javascript, Perl, PHP, Python, Ruby on Rails, entre otros.

Scratch

El  “ Media Lab” o Laboratorio Multimedia   del Instituto de Tecnología de Massachussets MIT , ha desarrollado durante los últimos años un interesante proyecto educativo destinado a elaborar una divertida y atractiva herramienta de introducción a la programación orientada a objetos llamada Scratch .Desarrollar herramientas de programación lúdica no es nada nuevo (  como Logo,  e-toys de Squeak y LogoBlocks) ni tampoco su introducción en el entorno educativo, pero creo que lo que al menos a mí me parece estupendo y novedoso es su  sencillez y  originalidad. Scratch es, para Mitchel Resnick y su grupo[4] , un medio de expresión de las ideas de los nativos digitales.

El propósito de Scratch es programar objetos físicos del mismo modo que se programan objetos virtuales en pantalla usando entradas de sensores físicos para controlar los comportamientos de los objetos físicos y creaciones virtuales mediante el tablero (Scratch board) que proporciona herramientas con bloques tipo las del Lego o de un rompecabezas para ir armando diferentes procedimientos. Los bloques de instrucciones de Scratch se pueden cambiar a diferentes idiomas sin ningún problema, incluso en plena ejecución, facilitando su uso en diferentes entornos lingüísticos.

ScratchBoard1

Scratch Board

El escritorio de Scratch , que es el entorno  de desarrollo, se estructura en tres secciones principales,  izquierda, centro y derecha de la pantalla, respectivamente:

Paleta de bloques, Creación  de Guiones (área de scripts) y Escenario. La programación se desarrolla en tiempo real y todas las modificaciones que realicemos en los guiones de los objetos se incorporan de forma automática en su ejecución. La paleta de bloques, situada en la zona izquierda de la pantalla alberga, categorizados por colores y funcionalidad, los bloques de programación arrastrables al área de scripts.

Un botón interesante es el botón Share o Compartir que nos permite  subir nuestros proyectos al espacio que previamente hayamos creado en la página Web del proyecto. Una vez alojados en la Web, los proyectos podrán ser ejecutados, mediante un player de java, sobre la misma página o descargados a nuestra computadora para abrirlos en la plataforma Scratch. De este modo se favorece el intercambio y el aprendizaje compartido de rutinas de programación, estudiando, modificando y mejorando otros programas.

Los proyectos de Scratch están hechos de objetos llamados sprites que resultan fáciles de manipular. Los sprites son los gráficos con los que trabaja Scratch reconociendo los tipos de formatos mas habituales (jpg, gif,bmp y png) .Los sprites pueden ejecutar sonidos seleccionados de la librería de sonidos pregrabados de Scratch, importarlos o realizar grabaciones mediante la grabadora de sonidos de Scratch.

Los aspectos esenciales del diseño de Scratch se resumen en las siguientes características:

  • Menú principal: Ocupa la parte superior de la pantalla y permite realizar las operaciones comunes de crear, abrir y guardar proyectos, deshacer la última acción y proporcionar ayuda.
  • Bloques de construcción: La programación con Scratch se basa en bloques de construcción, parecidos a los de los Lego, donde se van construyendo procedimientos diversos encajando bloques gráficos como ladrillos o piezas de rompecabezas.
scratch4

Bloques de construcción

  • Manipulación de sonido, video e imágenes: La manipulación de archivos multimedia es una de las características más llamativas de Scratch, a las que se le han añadido rutinas de manipulación de imágenes en forma de filtros y control de los mismos.
  • Portabilidad: Además de permitir compartir los proyectos a través de su plataforma en la Web, Scratch facilita el intercambio de gráficos llamados sprites entre diferentes proyectos, autores e, incluso, entre diferentes tipos de dispositivos.

————————————————————————————————————

Conclusiones

Una computadora, por sí misma, es un pasaporte hacia ninguna parte. La visa es imprescindible y ésta es hoy por hoy, la escuela, hasta que algo mejor se descubra. Con sus limitaciones y defectos, con sus carencias pero aun así con la clara misión de formar individuos capaces de pensar, de comprender, de indagar. El aula es el ámbito capaz de hacer de las tecnologías lugares de crecimiento, de desafío de acceso a la dimensión digital. Pitágoras nos enseñó que el conocimiento desinteresado es la mayor forma de purificar nuestras almas.

Scratch , con ese espíritu pitagórico y con su gran simplicidad que lo caracteriza, busca que el usuario, sin conocimientos previos de programación pueda elaborar y ejecutar sus propios proyectos; busca compensar los efectos negativos de la incesante interactividad que constituye uno de los cambios más significativos registrados en el entorno humano, con un desarrollo evolutivo benéfico para el cerebro. Sin duda alguna la tecnología está realambrando nuestros cerebros. Debemos buscar que sus efectos sean positivos.

Para bajar gratuitamente el programa de Scratch, da clic aquí.


[1] Prensky,  M. (2001).” Digital Natives, Digital Immigrants. On the Horizon” Disponible en la Web : http://www.marcprensky.com/writing/ Prensky%20-%20Digital%20Natives,%20Digital%20Immigrants%20-%20Part1.pdf

[2] Citado por  García Felipe, Portillo, Portillo ,  Romo , Jesús y  Benito, Manuel en  “Nativos digitales y modelos de aprendizaje”.Universidad de País Vasco / Euskal Herriko Unibertsitatea (UPV/EHU)

[3] Citado por J Segura en Curso de Java, disponible en la Web:  http://tikal.cifn.unam.mx/~jsegura/LCGII/java1.htm

[4] Mitchel Resnick, John Maloney, Andrés Monroy-Hernández, Natalie Rusk, Evelyn Eastmond,Karen Brennan, Amon Millner, Eric Rosenbaum,Jay Silv er, Brian Silv erman, and Yasmin Kafai.” Scratch Programmingo for all”.disponible en la Web http://web.media.mit.edu/~mres/papers/Scratch-CACM-final.pdf

Imagen: Flickr.com

Un comentario

  1. […] This post was mentioned on Twitter by Sergio Reyes. Sergio Reyes said: RT @ingenet: Scratch: Educando a los nativos digitales – http://bit.ly/auJ85K […]

IMPORTANTE:
Sí: El usuario podrá preguntar, felicitar, realizar críticas constructivas y/o contribuir con opiniones relevantes en el campo de la ingeniería e infraestructura.
No: Molestar, intimidar o acosar de ninguna manera.Tampoco utilizará el espacio para la promoción de productos o servicios comerciales, así como de cualquier actividad que pueda ser calificada como SPAM.

Para saber más consulta los Términos de Uso de INGENET.