Scratch (lenguaje de programación)

De Wikipedia, la enciclopedia libre
Scratch
Desarrollador(es)
MIT Media Lab Lifelong Kindergarten Group
https://scratch.mit.edu
Información general
Extensiones comunes .scratch Scratchsprite (Scratch 1.x)
.sb2, .s2b, .sprite2 (Scratch 2.x)
.sb3, .s3b, .sprite3 (Scratch 3.x)
Paradigma Programación dirigida por eventos, imperativo
Apareció en (test)
(oficial)
(pública)
9 de mayo de 2012 (11 años, 11 meses y 10 días) (Scratch 2)
Diseñado por Mitchel Resnick
Última versión estable Scratch 3.29.1 (2024) (2021)
Influido por Logo, Smalltalk, HyperCard, StarLogo, AgentSheets, Etoys
Ha influido a Scratch Jr, Snap! Blocky
Sistema operativo Windows, OS X, Linux
Licencia GPLv2 y Scratch Source Code License

Scratch es un motor de videojuegos desarrollado por MIT Media Lab.[1]​ Su principal característica consiste en que permite el desarrollo de habilidades mentales mediante el aprendizaje de la programación sin tener conocimientos profundos sobre el código. Sus características ligadas al fácil entendimiento del pensamiento computacional han hecho que sea muy difundido en la educación de niños, adolescentes y adultos.

Origen del lenguaje[editar]

En el ámbito de la ingeniería informática, scratch quiere decir reutilizar código, el cual puede ser usado de forma beneficiosa y efectiva para otros propósitos y fácilmente combinado, compartido y adaptado a nuevos escenarios, lo cual es una característica clave de Scratch. De esta forma, cualquier usuario puede descargarse y trabajar sobre proyectos públicos subidos y desarrollados por otros usuarios. También se reconoce a los participantes que construyeron y crearon el programa original. El nombre es un derivado de la técnica de turntablism, scratching,[2][3]​ es decir, mezclar sonidos, relacionando de este modo la facilidad de mezclar sonidos con la facilidad de mezclar proyectos creados con Scratch.

El uso de Scratch en estos clubes sirvió de modelo para otros centros post - educacionales demostrando cómo los entornos de aprendizaje pueden apoyar el desarrollo de la tecnología, permitiendo a los jóvenes diseñar y programar proyectos que son importantes para ellos y sus comunidades.

La primera versión de Scratch, disponible solo en versión de escritorio, fue desarrollada y publicada en 2003 conjuntamente por el MIT Media Lab, dirigido por Mitchel Resnick, y la compañía Playful Invention Company [1], con sede en Montreal y cofundada por él junto a Brian Silverman y Paula Bonta. El propósito fue ayudar a la gente joven, principalmente con edades a partir de los ocho años, a aprender a programar.[4]

Scratch 2.0 se publicó en mayo de 2013.[1]​ A partir de esta versión, se permite definir "bloques personalizados" dentro de los proyectos.[5]

Uso educativo[editar]

Scratch se volvió popular en Reino Unido a través de los Code Clubs. Estos empezaron a usar Scratch como lenguaje introductorio por su relativa facilidad para desarrollar programas y porque las habilidades adquiridas mediante Scratch, se pueden aplicar a otros lenguajes básicos de programación como Python y Java. Code Clubs, fundado en 2013, es una iniciativa formada por una extensa comunidad de voluntarios, profesores y compañeros, para el desarrollo de clubs de codificación gratuitos, donde los niños de entre 9 y 13 años pueden construir y compartir sus ideas, conocimientos importantes y creaciones, de manera extraescolar.[6]​ La empresa ha acabado expandiéndose internacionalmente, existiendo más de 13,000 Code Clubs en todo el mundo. Además, la mayoría de sus proyectos han sido traducidos en 28 idiomas diferentes.[7]​ Los voluntarios, ya sean programadores o desarrolladores de software, invierten su tiempo ejecutando sesiones de Code Clubs, transmitiendo sus habilidades de programación y asesorando a los jóvenes estudiantes,a través de un entrenamiento en línea. Los niños crean sus propios videojuegos, animaciones y sitios web, y además, aprenden a usar la tecnología de manera creativa y lúdica, para ampliar su conocimiento.[8]

Una manera de empezar a usar el programa en clase, es aprender basándose en retos con juegos y pequeños proyectos, donde los niños puedan desarrollar su creatividad. A través de tutoriales del MIT (Instituto de Tecnología de Massachusetts), se puede aprender desde cero a programar con Scratch, utilizando la guía de iniciación creada por el mismo Instituto.[9]​ También existen otros tutoriales de iniciación a la programación para niños como por ejemplo: Cartoon Network o CSfirst de Google. La edad ideal para iniciarse en su programación en niños es entre 8 y 16 años, aunque también hay una versión para los más pequeños de 5 a 8 años, llamada Scratch Junior, en formato tableta.[10]

Con esta aplicación, los niños aprenden conceptos relacionados con los ordenadores y otras habilidades relacionadas con las nuevas tecnologías u otras asignaturas. Hay que tener en cuenta que Scratch no sirve solo para la creación de programas.Puesto que proporciona muchos componentes visuales, los programadores pueden crear historias animadas o minivideojuegos como por ejemplo The Pizza Dude[11]Haiku,[12]​ o Gemclan. Los estudiantes que quieren especializarse en matemáticas pueden usar Lemonade Stand, Dino Odd and Even,[13]Data Workshop, o The Ellipserator[14]​ el cual se orienta principalmente a la geometría.La flexibilidad que ofrece Scratch permite a los docentes crear lecciones conceptuales muy visuales, ya que es una herramienta para crear animaciones que ayudan a visualizar conceptos difíciles como podrían ser la mitosis celular, el ciclo del agua, el Termómetro de Galileo o un experimento sobre la Ley de elasticidad de Hook. En el ámbito de las ciencias sociales, los docentes pueden crear concursos, juegos y tutoriales que estimulen la mente e interactúen con el estudiante.El uso de Scratch permite a las personas jóvenes a entender la lógica básica de la programación, y colaborar y construir proyectos creativamente.[15]​ Scratch también permite a los estudiantes desarrollar proyectos con carácter educativo y a la vez con interés personal para ellos, lo que les proporciona una herramienta práctica para auto expresarse después de aprender a usarlo.[2]

El profesor David J. Malan de la Universidad de Harvard prefiere usar Scratch sobre los lenguajes de programación de uso general, como Java o C, en su curso introductorio de ciencias de la computación. Sin embargo, hay un beneficio limitado en una educación de nivel universitario. Malan cambia el lenguaje de su curso a C después de la primera semana.[16][17]

Para trabajar con Scratch, hay dos formas de hacerlo: en línea y fuera de línea.

En la modalidad en línea, el usuario puede acceder desde el ordenador conectándose a Internet. Por su parte, en la versión fuera de línea se debe descargar el programa y se podrá usar sin conexión a Internet. Además, la página web permite compartir proyectos creados por uno mismo y también se pueden ver proyectos realizados por otras personas, lo que puede facilitar el desarrollo de nuevas ideas o contenidos. Respecto a cuál, la versión en línea se encuentra actualizada, además permite compartir y modificar los programas con otros usuarios.[18]

Por otra parte, Scratch propone recursos tanto para los docentes como para los alumnos. Entre ellos destacan:[19]

  1. Recursos para docentes: ofrece una guía donde se explica cómo programar las clases y talleres con Scratch así como actividades, estrategias y técnicas para incluir la programación en las aulas.
  2. Recursos para alumnado: proporciona diversos tutoriales para introducirse en el manejo de la plataforma, tarjetas de programación, así como páginas webs para el visionado de experiencias educativas con Scratch.

La comunidad de Scratched para docentes permite a estos seguir aprendiendo y colaborando con otros docentes de otras partes del mundo.[20]

Experiencia educativa con Scratch[editar]

Scratch con su lenguaje de programación visual nos permite desarrollar el pensamiento computacional (PC), cuya utilización ha ido creciendo en los últimos años, siendo cada vez de mayor interés para los jóvenes, debido a la motivación que supone el poder crear entre otras cosas, sus propios videojuegos o animaciones.

Un ejemplo de ello, se aprecia con la creación del Club de los Jóvenes Programadores de la universidad de Valladolid[21]​ entre los que se encuentra Antonio García Vicente, un niño de 11 años que ha programado más de 100 videojuegos y realizado varias charlas sobre programación, como la de TEDxYouth Valladolid[22]​ donde presenta algunas experiencias educativas para las que utiliza el programa Scratch, mostrando con ello cómo el programa permite desarrollar contenidos curriculares y experiencias educativas muy interesantes. Entre ellas se encuentra un juego de preguntas y respuestas con el que se pretenden trabajar los huesos del cuerpo humano; otro sobre los planetas del sistema solar con sensor de vídeo, con el que los alumnos (jugadores) pueden aprenden los nombres de estos, donde aparecen los aciertos y fallos que se suceden o incluso es posible la creación de instrumentos a gran escala que cobran vida.[23]

Beneficios del aprendizaje de programación con Scratch en los niños[editar]

La utilización de la aplicación Scratch mediante la programación, permite sobre todo desarrollar las habilidades mentales. Favorece la comprensión de los fundamentos de programación sin profundizar en el código y el pensamiento lógico y algorítmico.[24]

Permite la construcción de proyectos creativos que conectan los intereses educativos y personales del alumnado. Por tanto, se trata de una herramienta muy efectiva para desarrollar la capacidad de expresión, una vez que saben utilizarlo. También consigue que se comparta, concepto fundamental en el ámbito de las redes sociales: aprenden a compartir sus producciones, programaciones y aplicaciones con el resto de compañeros y compañeras de clase.[25]

Pero el uso de Scratch no se ciñe exclusivamente a contenidos informáticos, también permite al alumnado asimilar otro tipo de habilidades como son:

  • Pensamiento crítico y solución de problemas: aprender a programar desarrolla el razonamiento crítico y el pensamiento sistémico. Así mismo, diseñar un proyecto consiste en partir de una idea, establecer unos pasos y ponerlo en marcha. En este camino se enfrentarán a diversos problemas que podrán solucionar de manera experimental.[26]
  • Expresión y comprensión oral y escrita: estas habilidades lingüísticas tan esenciales en todas las etapas de nuestros sistema educativo podrán ser desarrolladas con Scratch.[27]
  • Creatividad y autonomía: este lenguaje pone énfasis en el desarrollo de la creatividad permitiendo al alumnado crear sus propias historias y proyectos. Además, con el tiempo el alumnado será más autónomo en su aprendizaje.[28]
  • Regulación de las emociones: la programación con Scratch es efectiva para ayudar al estudiante a aprender a controlar diversas emociones. Durante el diseño de proyectos y su programación se desencadenan numerosas emociones como alegría, miedo, sorpresa o interés.[29]

Interfaz de usuario[editar]

Hola mundo en bloques de Scratch 2.0

De izquierda a derecha, en la zona superior izquierda de la pantalla hay un escenario, que muestra los resultados del proyecto actual (animaciones, gráficos tortuga, etc., en tamaño reducido o normal, estando también disponible un modo a pantalla completa) y todas la miniaturas de los sprites (llamados "objetos" en la versión en castellano de Scratch) listadas en la zona inferior. El escenario usa coordenadas x e y, siendo el punto (0,0) el centro del mismo.[1]

Existen muchas formas de crear objetos y fondo personalizados. Por un lado, los usuarios pueden dibujar sus propios objetos manualmente con el propio editor de Scratch.[1]​ Es posible también elegir un objeto desde la biblioteca de objetos de ejemplo que contiene Scratch, de creaciones pasadas del usuarios, desde una imagen, vía webcam o desde un clip art.[30]

Lo mismo pero en español y en la versión 3.0

Una vez seleccionado un objeto en la parte inferior izquierda de la pantalla, se le pueden aplicar bloques de instrucciones simplemente arrastrándolos desde la paleta de bloques hacia el área derecha de la pantalla, que contiene todos los pasos asociados con el objeto seleccionado. Bajo la pestaña "Programas" se listan todos los bloques de instrucciones disponibles en las siguientes categorías: Movimiento, Apariencia, Sonido, Lápiz, Datos, Eventos, Control, Sensores, Operadores y Más Bloques, como se ve en la tabla a continuación. Cada instrucción se pueden probar individualmente simplemente haciendo doble clic sobre ella.

Categoría Notas    Categoría Notas
  Movimiento Mueve objetos y cambia ángulos.      Eventos Contiene manejadores de eventos situado al principio de cada grupo de instrucciones.
  Apariencia Controla el aspecto visual del objeto, añade bocadillos de habla o pensamiento, cambia el fondo, ampliar o reducir.   Control Sentencian condicionales "Si-sino", "Por siempre", "repetir" y "detener programa".
  Sonido Reproduce ficheros de audio y secuencias programables.   Sensores Los objetos pueden interactuar con el ambiente que ha creado el usuario.
  Lápiz Control del ancho, color e intensidad del lápiz.   Operadores Operadores matemáticos, generador aleatorio de números, sentencias "y" y "o" que comparan posiciones de los objetos.
  Datos Creación de variables y listas. Hay variables de la nube, pero aún no hay listas de nube. Se podrían implementar en la tercera versión de Scratch.   Más Bloques Control de bloques y dispositivos externos.

Además de la pestaña "Programas", hay dos pestañas adicionales: "Disfraces" y "Sonidos". Una barra expandible de la derecha es el área de Ayuda.

Al lado de la pestaña Procesos, está la pestaña Disfraces, donde el usuario puede cambiar la apariencia del sprite con el fin de crear diversos efectos, incluyendo la animación.[1]​ Y la última pestaña es la pestaña Sonidos, donde los usuarios insertan sonidos y música para un objeto.[30]

En comparación con las versiones anteriores de Scratch, en la versión 2.0 las áreas se han reorganizado, ya que previamente la paleta de bloques estaba en la zona izquierda, el área de sprites seleccionada y el área de scripts asociada con un sprite seleccionado se encontraban en el centro de la pantalla, y el área del escenario con sprites en miniaturas estaban enlistadas abajo, en la zona derecha de la pantalla.[31]

Hay que tener en cuenta que los archivos generados con Scratch con bastantes elementos son muy pesados por lo que el programa puede no responder con rapidez, esto dependerá siempre del equipo con el que se está trabajando, las condiciones de la Red si estás trabajando en línea, etc.

Nueva versión de Scratch[editar]

En 2018 se publicó la versión 3.0 de Scratch. Presenta variadas novedades, pero se sigue manteniendo la esencia de Scratch 2.0. La nueva interfaz de Scratch 3.0 ha abandonado Adobe Flash para basarse en HTML5. Esto permite que esta versión sea compatible para cualquier tipo de dispositivo. Otro de los principales cambios en la interfaz del programa es el aumento de tamaño de los bloques de colores que hace más fácil su movimiento en la pantalla.[32]​ Respecto a la versión anterior, Scratch 3.0 presenta algunas modificaciones en cuanto a su organización. El menú de opciones se ha simplificado y el editor se ha cambiado a la zona derecha de la pantalla. Así, toda la parte inferior de la pantalla se reserva para la paleta de bloques. Además, esta versión ha sustituido los mapas de bits por los gráficos vectoriales permitiendo así que los objetos no aparezcan pixelados si se amplían.[33]

Entre las novedades que presenta Scratch 3.0 podemos destacar la introducción de nuevos personajes y objetos para los diseños y la amplia variedad de sonidos incorporados, con la nueva posibilidad de poder silenciarlos. Los disfraces y la edición de personajes funcionan de la misma manera pero se ha innovado su estética.[34]

Así quedaría la nueva distribución de grupos de bloques en la versión de Scratch 3.0:[35]

Categoría Notas    Categoría Notas
  Movimiento Permite mover y girar el objeto.      Sensores Detecta cuándo el objeto interacciona con el entorno.
  Apariencia Permite al objeto hablar, pensar o cambiar su apariencia.   Operadores Operadores matemáticos (+, -, *, /), generador aleatorio de números, comparadores, sentencias «y», «o» y negaciones.
  Sonido Todo lo relacionado con efectos de sonido del programa.   Variables Creación de variables y su asignación en el programa.
  Eventos Permite comenzar una secuencia de acciones cuando ocurre un evento determinado (por ejemplo pulsar la tecla «A»).   Mis bloques Permite crear funciones propias
  Control Son los condicionantes. «Si-sino», «Repetir x veces», «Esperar», «Detener»…

Instalación de Scratch 3.0[editar]

La versión Scratch 3.0 permite utilizar dicha aplicación en prácticamente cualquier dispositivo. Funciona a través de un navegador web, por lo que se utiliza en tableta, pc o incluso teléfono inteligente. Solamente basta con acceder a la web y ponerse manos a la obra. Para windows y Mac existe una “versión de escritorio” que permite utilizarse sin conexión a internet, en el caso de que no se disponga de esta.[36]

Respecto la instalación de la versión fuera de línea de Scratch, en Windows y MacOS, solo habría que descargar Scratch Desktop y ejecutar el archivo.[37]

La versión en línea de Scratch permite crear una cuenta gratis mediante la cual se podrá guardar los proyectos y compartirlos con otros usuarios. Para ello, solo hay que registrarse en la página web de Scratch, crear el proyecto y guardarlo.[38]

Inicios[editar]

Para comenzar desde cero en este lenguaje de programación, el alumnado podría visualizar los tutoriales del MIT que son considerados una herramienta muy completa para iniciarse en Scratch. La nueva versión 3.0 potencia este recurso, el cual permite practicar mientras se visualiza el vídeo o las imágenes animadas. Además, es necesario iniciar al alumnado en el conocimiento de la interfaz y de sus opciones. Para ello, desde el MIT se ofrecen proyectos simples de diferentes áreas en los que el alumnado puede modificar libremente ese proyecto o añadir elementos.[36]

Además existen varios medios para aprender y comenzar con Scratch como:

  • La Hora del Código: se trata de tutoriales de una hora que permiten aprender a programar y comprender los fundamentos básicos de programación.[39]
  • CSFirst, un proyecto de Google gratuito, que favorece la enseñanza-aprendizaje de programación de forma divertida.[40]
  • Cards o tarjetas de Scratch: estas tarjetas gráficas nos presentan el código que debemos utilizar para obtener ciertos movimientos o efectos. Permiten apoyar visualmente el aprendizaje de nuestro alumnado.[41]
  • Youtube es ofrece una cantidad de recursos para aprender programación con Scratch. Existen muchos tutoriales y canales de Youtube para aprender este lenguaje de programación.[42]
  • ProgramoErgoSum: es una iniciativa sin ánimo de lucro para acercar la programación informática a todas las edades. Presenta una sección dedicada a Scratch con recursos como tutoriales y vídeos para el aprendizaje.[43]
  • Dr. Scratch: esta aplicación web supone una herramienta poderosa para analizar y evaluar los proyectos Scratch, así como obtener retroalimentación que permita mejorarlos.[44]

Comunidad de usuarios[editar]

Scratch se utiliza en muchos entornos diferentes: escuelas,[45]museos,[46]bibliotecas,[2]centros comunitarios y hogares. Sus usuarios son en su mayoría niños de edades comprendidas entre 9-16 años.[47]​ Scratch también se utiliza en algunas clases de introducción de la informática (incluyendo la clase de informática introductoria de Harvard).[48][49]

Hay un denominado "Día de Scratch" anual declarado en mayo de cada año. Los miembros de la comunidad se les anima a realizar un evento, grande o pequeño, en o cerca de ese día, que celebra Scratch. Estos eventos se llevan a cabo en todo el mundo, y se puede encontrar una lista en el sitio web del Día de Scratch.[50]

El Centro de la Juventud Talentosa (CTY) de la Universidad Johns Hopkins ofrece un curso en línea sobre la programación Scratch para los estudiantes de grado 6 y superior a través del programa CTY Online.[51]

Se hicieron estudios empíricos de varias características[cita requerida] y fueron descartados los que interfirieron con el aprendizaje intuitivo, mientras que fueron guardados los que animaron a principiantes y le hicieron fácil para que exploren y aprendan. Algunos de los resultados son sorprendentes, haciendo Scratch bastante diferente de otros lenguajes de enseñanza (como BASIC, Logo, o Alice).

Comunidad en línea[editar]

El lema de la comunidad en línea de Scratch "Imagina, Programa, Comparte" indica que el compartir y los aspectos sociales de la creatividad son partes importantes de la filosofía detrás de Scratch.[52]​ Algunos miembros influyentes de la comunidad en línea de Scratch hicieron grandes progresos personales en métodos innovadores con la programación de scratch.

Los proyectos Scratch no se ven como "cajas negras", sino como objetos a remezclar para hacer nuevos proyectos. Los proyectos se pueden cargar directamente desde el entorno de desarrollo al sitio web de Scratch y cualquier miembro de la comunidad puede descargar su código fuente completo para estudiarlo o remixarlo en nuevos proyectos.[53][54]​ Los miembros también pueden crear proyectos de estudio, comentar, etiquetar, favoritos y "amar" proyectos de otros, seguir a otros miembros para ver sus proyectos y actividades y compartir ideas. El rango de proyectos van desde juegos animaciones hasta herramientas prácticas. No se permiten salas de chat. Todos los proyectos del sitio web se comparten bajo una licencia de Creative Commons y una licencia compartida y pueden ser reproducidos en un 100% navegador web con HTML5 que soporta de forma nativa reproducción flash y de videos.

El sitio web recibe más de 125 millones de páginas vistas por mes[55]​ y al 12 de julio de 2016, tenía 12 561 189 miembros registrados y más de 15 700 000 proyectos y creciendo rápidamente.[55]​ En 2017 se puso a disposición un conjunto de datos longitudinales de los cinco años de actividad pública en la comunidad.[56]

El sitio web establece con frecuencia desafíos "Scratch Design Studio" para fomentar la creación y el intercambio, proporcionándole a los usuarios un concepto básico de diseño. Hay páginas de inicio personalizadas para México e Israel que muestran contenido local en algunas secciones de la página principal. Scratch ha participado en varias horas de Código. También hay sitios web Scratch locales independientes en países como Portugal[57]​ y Emiratos Árabes Unidos. En 2008, la plataforma comunitaria Scratch en línea (denominada "ScratchR") recibió una mención honorífica en el Ars Electronica Prix.[58]​ También hay una comunidad en línea para los educadores, llamada ScratchEd.[59]​ Esta comunidad intercambia recursos, coordina encuentros grupales y permite a los educadores conectarse entre sí.[60]

En abril de 2020, Scratch se convirtió en el primer lenguaje de programación creado para niños en entrar al top 20 del índice TIOBE, que mide la popularidad de los lenguajes de programación.[61]

Derivados[editar]

La versión actual de Scratch no trata a los procedimientos como estructuras de primera clase y con Scratch 2.0 Extension Protocol tiene opciones limitadas de archivos de E/S; una característica experimental de extensión que permite la interacción entre Scratch 2.0 y otros programas.[62]​ El protocolo de extensión permite la interfaz con placas de hardware como Lego Mindstorms[63]​ o Arduino.[64]​ Además, Scratch 2 solo admite vectores unidimensionales, conocidas como "listas". A partir de la versión 1.4 se admiten variables de puntos flotantes y cadenas de punto flotante, pero con capacidad limitada de manipulación de cadenas. Existe un fuerte contraste entre las poderosas funciones multimedia y el estilo de programación multihilo y el limitado alcance del lenguaje de programación Scratch. El 6 de mayo de 2013, Scratch cerró durante tres días para actualizar a Scratch 2.0. La actualización cambió la apariencia del sitio e incluyó un editor de proyectos en línea. A la fecha marzo de 2017 está disponible una nueva versión beta del editor en línea de Scratch 2. Esta versión reemplazará al antiguo Scratch 2.0.[65]

Se han creado una serie de derivados Scratch[66]​ denominados Scratch Modifications (Modificaciones de Scratch), utilizando el código fuente de Scratch versión 1.4. Estos programas son una variante de Scratch que normalmente incluyen algunos bloques adicionales[67]​ o cambios en la GUI.

En julio de 2014, fue lanzado un programa llamado Scratch Jr para iPad. Aunque fue muy inspirado por Scratch y codirigido por Mitch Resnick, el creador original de Scratch, es sin embargo una reescritura completa diseñada para niños más pequeños.[68]

Algunos de ellos, además, introducen cambios en el enfoque subyacente a la informática, como el lenguaje Snap!, con procedimientos de primera clase (sus fundamentos matemáticos se denominan también cálculo lambda), listas de primera clase (incluidas listas de listas) y primera clase realmente orientada a objetos Sprites con prototipos de herencia, y sprites nestable, que no son parte de Scratch.[69]​ Snap! (su versión anterior fue llamada BYOB) fue desarrollado por Jens Mönig[70][71]​ con la documentación proporcionada por Brian Harvey[72][73]​ de la Universidad de California en Berkeley y se ha utilizado para enseñar un curso de introductorio "la belleza y la alegría de la computación" de CS dirigido a los estudiantes no principales de la CS.[74]

El código fuente de Scratch y sus derivados se basan en Squeak, que a su vez se basa en Smalltalk-80. La versión 2 de Scratch está implementada en ActionScript, con un intérprete experimental basado en JavaScript siendo desarrollado en paralelo.[75]

Catrobat es un lenguaje de programación visual para teléfonos inteligentes y tabletas inspirado en Scratch. Pocket Code es una aplicación con la que se puede crear, descargar y cargar programas creados en Catrobat. Catrobat y Pocket Code se publican bajo licencias de código abierto.[76][77]

Ventajas e inconvenientes[editar]

A nivel educativo, encontramos una serie de ventajas en relación con esta herramienta que vamos a puntualizar a continuación:

  • Permite el desarrollo de los procesos de pensamientos y habilidades mentales en los educados.
  • Ayuda a introducirse en la programación.
  • Los programas se ejecutan en el propio PC o sobre el navegador de internet.[78]
  • Dispone de una web social en la que participa un amplio número de personas que a su vez, proporciona soporte .[79]
  • Educativamente hablando, los beneficios son una gran cantidad pero se podría destacar el desarrollo del pensamiento lógico en el alumnado, fomenta la creatividad, mejora la habilidad de comprensión de los niños, facilita el pensamiento sistémico y, en general, mejora el rendimiento escolar.

Entre los inconvenientes que existen en el uso de Scratch, encontramos los siguientes:

  • En algunas ocasiones, la velocidad para ejecutar algunas funciones no es la deseada. Si se programa añadiendo órdenes muy complejas el archivo final puede presentar demasiado peso.[80]
  • Algunos estudios apuntan que aprender Scratch no significa necesariamente adquirir pensamiento computacional. Algunos alumnos que utilizan con facilidad la herramienta, muestran dificultades para realizar tareas de programación fuera de ella cuando desaparecen los bloques. Saber programar tiene dos componentes: saber resolver un problema en los términos que el ordenador comprende (pensamiento computacional) y saber expresar esa solución con la sintaxis adecuada. Con respecto a la sintaxis, los bloques de Scratch tienen una lógica propia que podría no ser fácilmente trasladable a otros lenguajes[81][82]

Véase también[editar]

Otros lenguajes de programación educativos incluyen:

Referencias[editar]

  1. a b c d e Marji, Majed (2014). Learn to Program with Scratch (en inglés). San Francisco, California: No Starch Press. pp. xvii, 1-9, 13-15. ISBN 9781593275433. 
  2. a b c Lamb, Annette; Johnson, Larry (abril de 2011). «Scratch: Computer Programming for 21st Century Learners». Teacher Librarian 38 (4): 64-68. Consultado el 18 de julio de 2015. 
  3. Schorow, Stephanie (14 de mayo de 2007). «Creating from Scratch». MIT News Office (en inglés). Consultado el 25 de enero de 2014. 
  4. Shapiro, Jordan. «Your Five Year Old Can Learn To Code With An IPad App». Forbes. 
  5. «Updated Scratch 2.0 Offline (Beta) is now available!». Scratch. 29 de agosto de 2013. Consultado el 25 de enero de 2014. 
  6. «Raspberry Pi Foundation merges with Code Club (Wired UK)». www.wired.uk. Consultado el 16 de octubre de 2019. 
  7. «Code Club World – A worldwide network of coding clubs for children». www.codeclubworld.org. Consultado el 16 de octubre de 2019. 
  8. «Enseñar programación con Scratch desde cero». www.xayaka.com. Consultado el 30 de octubre de 2019. 
  9. «Scratch: un espacio perfecto para enseñar programación desde la creatividad». www.eligeeducar.cl. Consultado el 29 de octubre de 2019. 
  10. «Aprendiendo a programar con Scratch». www.inspiratics.org. 14 de octubre de 2019. 
  11. «Scratch - The Pizza Dude». scratch.mit.edu. Consultado el 4 de diciembre de 2017. 
  12. «Scratch - Haiku». scratch.mit.edu. Consultado el 4 de diciembre de 2017. 
  13. «Scratch - Dino Odd and Even». scratch.mit.edu. Consultado el 4 de diciembre de 2017. 
  14. «Scratch - The Ellipserator». scratch.mit.edu. Consultado el 4 de diciembre de 2017. 
  15. Martin, Neil (25 de junio de 2015). «What is Scratch? Is it AV or IT?». AV Magazine (en inglés). Consultado el 18 de julio de 2015. 
  16. Young, Jeffrey R. (20 de julio de 2007). «Fun, Not Fear, Is at the Heart of Scratch, a New Programming Language». The Chronicle of Higher Education. ISSN 0009-5982. Consultado el 9 de mayo de 2015. 
  17. «CS50 Syllabus» (en inglés). Consultado el 17 de mayo de 2015. 
  18. Pascual, J.A. (13/12/15). ««Scratch, programación sencilla y gratis para niños y mayores.»». Consultado el 1 de octubre de 2019. 
  19. ««Recursos para educadores»». Consultado el 13/10/19. 
  20. «El uso de Scratch en las aulas». www.inspiratics.org. Consultado el 23 de octubre de 2019. 
  21. «SCRATCH UVa». El Club de Jóvenes Programadores de la UVa (CJP). Consultado el 17 de octubre de 2019. 
  22. «TEDx Youth @Valladolid». Consultado el 30 de octubre de 2019. 
  23. «Porque le enseño a niños como yo a programar». TED Ideas worth spreading. Consultado el 17 de octubre de 2019. 
  24. The Green Monkey Pinto. ««Beneficios de Scratch para el aprendizaje.»». Consultado el 14 de octubre de 2019. 
  25. De Gracia, Elvia R. (2016). ««La importancia de la utilización de Scratch en la Educación.»». Eduteka. Consultado el 14 de octubre de 2019. 
  26. Rusk, N; Mitchel, R. y, Maloney, J. ««Desarrollando con Scratch habilidades de aprendizaje para el Siglo XXI»». Eduteka. Consultado el 14 de octubre de 2019. 
  27. Zerbitzuak, Sormenezko. «Guía Didáctica para Profesores». Isuri. Consultado el 13 de octubre de 2019. 
  28. ««Scratch, Stem y robótica para el aula.»». Educando. 2014. Consultado el 15 de octubre de 2019. 
  29. Hernández,J; Penessi,M;, Sobrino,D. y Vázquez, A. (2012). ««Tendencias emergentes en Educación con TIC.»». Espiral. Consultado el 16 de octubre de 2019. 
  30. a b «Science Buddies: Scratch User Guide: Installing & Getting Started with Scratch». www.sciencebuddies.org. Consultado el 9 de mayo de 2015. 
  31. Resnick, Mitchel; Maloney, John; Hernández, Andrés; Rusk, Natalie; Eastmond, Evelyn; Brennan, Karen; Millner, Amon; Rosenbaum, Eric; Silver, Jay; Silverman, Brian; Kafai, Yasmin (noviembre de 2009). «Scratch: Programming for All». Communications of the ACM (en inglés) 52 (11): 60-67. doi:10.1145/1592761.1592779. Consultado el 25 de enero de 2014. 
  32. ««Scratch 3.0, novedades de la nueva versión.».». 1 de agosto de 2018. 
  33. Moreno, Marta (14 de enero de 2019). ««LLega Scratch 3.0...¡y puede usarse en smartphones y tabletas!»». 
  34. ««La estructura de Scratch 3.0»». Consultado el 17 de octubre de 2019. 
  35. ««¿QUÉ ES SCRATCH?»». Consultado el 20 de septiembre de 2020. 
  36. a b Penalva, Javier (2019). ««Enseñar programación a un niño con Scratch desde cero: consejos, tutoriales y vídeos.»». 
  37. ««Scratch Desktop: cómo descargar el nuevo scratch 3.0 offline»». Consultado el 18 de octubre de 2019. 
  38. ««Crear con Scratch. Materiales de inicio a la programación creativa.»». Fundación Esplai. Consultado el 18 de octubre de 2019. 
  39. ««La Hora del Código»». INTEF. 30 de noviembre de 2017. Consultado el 19 de octubre de 2019. 
  40. Lázcoz, P. (1 de marzo de 2019). ««CS First: la plataforma de Google para enseñar programación.»». Código 2. Tecnologías creativas. Consultado el 18 de octubre de 2019. 
  41. Badiola, M.J. (2017). ««Las tarjetas de Scratch»». En la nube TIC. Consultado el 20 de octubre de 2019. 
  42. ««10 canales de youtube en español para aprender a programar.»». 16 de enero de 2017. 
  43. Abellán, M. A. (16 de agosto de 2017). ««Plataformas para aprender Programación y Robótica Educativa en el Aula.»». Procomún. Archivado desde el original el 29 de octubre de 2019. Consultado el 19 de octubre de 2019. 
  44. Moreno-León, J.; Robles, G. y, Román-González, M., RED- Revista de Educación a Distancia. ««Dr Scratch: análisis automático de Proyectos Scratch para Evaluar y Fomentar el Pensamiento Computacional.»». 15 de septiembre de 2015. Consultado el 17 de octubre de 2019. 
  45. «Canadian schools starting to teach computer coding to kids» (en inglés). CTV.ca. 30 de abril de 2014. Consultado el 30 de abril de 2014. 
  46. «Scratch Day». Science Museum of Minnesota (en inglés). Archivado desde el original el 8 de abril de 2013. Consultado el 25 de enero de 2014. 
  47. «Scratch statistics». Scratch (en inglés). Consultado el 11 de abril de 2016. 
  48. «Scratch for budding computer scientists». ACM SIGCSE Bulletin 39 (1): 223-7. marzo de 2007. ISBN 1-59593-361-1. doi:10.1145/1227310.1227388. 
  49. David, Malan. «Scratch for Budding Computer Scientists». Harvard School of Engineering and Applied Sciences (en inglés). Consultado el 25 de enero de 2014. 
  50. «May 14 2016 Scratch Day». Scratch Day (en inglés). Consultado el 11 de abril de 2016. 
  51. «Scratch Programming». Johns Hopkins Center for Talented Youth (en inglés). 
  52. Monroy-Hernández, A.; Resnick, M. (Marzo de 2008). «Empowering kids to create and share programmable media» (PDF). ACM interactions (en inglés) 15 (2): 50-53. doi:10.1145/1340961.1340974.  (enlace roto disponible en Internet Archive; véase el historial, la primera versión y la última).
  53. Monroy-Hernandez, Andres; Hill, Benjamin Mako; Gonzalez-Rivero, Jazmin; Boyd, Danah (2011). «Computers Can't Give Credit: How Automatic Attribution Falls Short in an Online Remixing Community». Proceedings of the 29th International Conference on Human Factors in Computing Systems (CHI '11) (en inglés). ACM. pp. 3421-30. doi:10.1145/1978942.1979452. 
  54. Hill, B. M.; Monroy-Hernández, A.; Olson, K. R. (2010). «Responses to remixing on a social media sharing website». ICWSM 2010 : Proceedings of the Fourth International Conference on Weblogs and Social Media, 23-26 de mayo de 2010 (en inglés). Washington, D. C.: AAAI Press. ISBN 9781577354451. OCLC 844857775. Archivado desde el original el 12 de octubre de 2012. Consultado el 5 de marzo de 2017. 
  55. a b «Scratch Statistics». Scratch (en inglés). Consultado el 10 de abril de 2016. 
  56. Hill, Benjamin Mako; Monroy-Hernández, Andrés (2017). «A longitudinal dataset of five years of public activity in the Scratch online community». Scientific Data (en inglés) 4. doi:10.1038/sdata.2017.2. Consultado el 5 de marzo de 2017. 
  57. «Scratch». Scratch (en portugués). Consultado el 7 de marzo de 2017. 
  58. «Prix Ars Electronica». Ars Electronica (en inglés). Archivado desde el original el 6 de julio de 2011. Consultado el 25 de julio de 2014. 
  59. «ScratchEd». ScratchEd (en inglés). Consultado el 6 de mayo de 2016. 
  60. «ScratchEd». ScratchEd (en inglés). Consultado el 25 de enero de 2014. 
  61. Pérez-Tejada, J. P. «Un lenguaje de programación para niños, entre los más populares en 2020». Developerz Software. 
  62. «Scratch Extension Protocol (2.0)» (en inglés). MIT. 
  63. «EV3+Scratch Extension». Scratch extension GitHub (en inglés). Code & Circuit. 
  64. «Preliminary Scratch extension for talking to Arduino boards running Firmata». Scratch extension GitHub (en inglés). Damellis. 
  65. «Updated Scratch 2 Offline Editor». Scratch Announcement homepage (en inglés). MIT. 
  66. «Scratch Modification». Scratch Wiki (en inglés). Lifelong Kindergarten Group at the MIT Media Lab. 
  67. «Blocks». Scratch Wiki (en inglés). 
  68. «ScratchJr - About». www.scratchjr.org (en inglés). Consultado el 11 de abril de 2016. 
  69. «Snap! (Build Your Own Blocks) 4.0». BYOB homepage (en inglés). University of California, Berkeley. 
  70. Mönig, Jens (junio de 2007). «Jens on Scratch». Scratch (en inglés). Consultado el 25 de enero de 2014. 
  71. «Mönig's blog postannouncing BYOB as bringing protypal inheritance to Scratch». Chirp (en inglés). 31 de mayo de 2011. Consultado el 25 de enero de 2014. 
  72. «HomePage for Brian Harvey». Electrical Engineering and Computer Sciences (en inglés). Consultado el 25 de enero de 2014. 
  73. Harvey, Brian (julio de 2008). «Brian Harvey user contributions page». Scratch (en inglés). Consultado el 25 de enero de 2014. 
  74. «The Beauty and Joy of Computing course homepage». EECS Instructional Support Group Home Page (en inglés). Consultado el 25 de enero de 2014. 
  75. «We're seeking contributors to help finish our HTML5 Scratch player (now open sourced!)». Scratch (en inglés). Consultado el 25 de enero de 2014. 
  76. Slany, Wolfgang; Koitz, Roxane: "Using Catrobat, a Scratch-like visual programming language for smartphones, in a middle school physics course", SPLASH Portland 2014. (en inglés)
  77. Catrobat developer site. (en inglés)
  78. Vázquez-Cano, E. y, Ferrer, D. (2015). ««La creación de videojuegos con Scratch en Educación Secundaria.»». Communication Papers. Archivado desde el original el 29 de octubre de 2019. Consultado el 18 de octubre de 2019. 
  79. López-Escribano, C. y, Sánchez-Montoya,R. (30 de noviembre de 2012). ««Scratch y Necesidades Educativas especiales: Programación para todos.»». RED. Consultado el 18 de octubre de 2019. 
  80. De Gracia, Elvia. ««La importancia de la utilización de Scratch en la Educación»». Consultado el 15 de octubre de 2019. 
  81. Alonso, D; Conde, R; Cuesta, J; Martínez; I. (2017). «La comunicación interactiva como medio para la adquisición de las competencias del futuro¿es adecuado aprender a programar con scratch?». Nuevas tecnologías audiovisuales para nuevas narrativas interactivas digitales en la era multidispositivo. Consultado el 4 de junio de 2020. 
  82. Urbano, David Alonso (2017). Scratch como herramienta para la enseñanza de la programación en la educación primaria. Análisis de usabilidad en la escuela pública de la comunidad de Madrid. Universidad Camilo José Cela. Consultado el 4 de junio de 2020. 

Enlaces externos[editar]