# Scratch

Scratch é uma linguagem de programação criada em 2007 pelo Media Lab do MIT. Desde 2019 o Scratch 3 está disponível on-line e como uma aplicação para Windows, MacOS, e Linux. O código-fonte da versão 1.x está sob a licença GPLv2.

## Descrição

Por não exigir o conhecimento prévio de outras linguagens de programação, ele é ideal para pessoas que estão começando a programar e foi desenvolvida para ajudar pessoas acima de 8 anos no aprendizado de conceitos matemáticos e computacionais. Com ele é possível criar animações, jogos e outros programas interativos.
Tendo em vista as experiências do Media Lab com a linguagem LOGO, desenvolvida por Papert, o Scratch visa ir além dessa linguagem em três aspectos: torná-la mais suscetiva à manipulação, mais social e mais significante. Assim a forma como os blocos podem ser manipulados lhe confere uma possibilidade de aprendizagem auto-gerida através da prática de manipulação e teste dos projetos. A plataforma online permite que usuário interajam entre si, critiquem e aprendam com os projetos dos outros (remix). Além disso, o Scratch permite a personalização através da incorporação de imagens e sons externos, bem como a possibilidade de desenhar e gravar som dentro da ferramenta.
O Scratch é considerado mais acessível que linguagens de programação textuais, por se utilizar de uma interface gráfica que permite que programas sejam construídos com blocos encaixados, lembrando o brinquedo Lego. Utiliza uma sintaxe comum a muitas linguagens de programação. É diferente de outras linguagens, não tem nenhum tipo de pontuação obscura.
Cada bloco da linguagem contém um comando em separado, que podem ser agrupados livremente caso se encaixem. E os comandos podem ser modificados através de menus barra de snirks. O Scratch se inspirou na forma como os DJs fazem a mixagem de sons para criarem novas músicas. Mas essa linguagem consegue mixar diversos tipos de mídias, como imagens, sons e outros programas.
No Scratch existe uma comunidade muito pequena de falantes de língua portuguesa em comparação à quantidade total, mas os poucos que se encontram programando e compartilhando esta linguagem de programação, já possuem um conhecimento avançado na ferramenta.
No ano de 2016, o Scratch Foundation anunciou uma parceria com a Google para a nova geração da ferramenta (versão 3.0). Esta nova versão será baseada em tecnologia web nativa (HTML 5) e contará com uma mudança na sua gramática. Os blocos antes montados verticalmente agora serão montados horizontalmente (na versão atual, os blocos ainda encaixam verticalmente), assim como já ocorre no ScratchJr. Seu lançamento foi em 2 de janeiro de 2019.

## Scratch, o que é

O Scratch é uma plataforma de programação visual desenvolvida pelo MIT (Instituto de Tecnologia de Massachusetts) que foi criada com o objetivo de tornar a programação acessível e divertida para pessoas de todas as idades. Desde o seu lançamento em 2007, o Scratch tem sido amplamente utilizado em escolas, clubes de ciência, bibliotecas e em casa para ensinar conceitos fundamentais de programação e promover a criatividade digital. Isso se dá por conta de uma particularidade da plataforma, que é a sua abordagem de programação visual. Em vez de escrever código em uma linguagem de programação tradicional, os usuários criam programas arrastando e encaixando blocos de comandos em uma interface gráfica intuitiva. Cada bloco representa uma ação específica, como mover um personagem, reproduzir um som ou alterar uma variável, e eles se encaixam de forma lógica para criar sequências de ações.

## Como começar a utilizar o Scratch?

Para que o usuário consiga compartilhar seu projeto, salvar em sua pasta pessoal, realizar comentários em projetos de outros usuários ou remixar projetos de terceiros, é preciso se inscrever na plataforma. A plataforma é gratuita e o cadastro, intuitivo. Feito o cadastro, o usuário poderá alterar o idioma da tela para facilitar o manuseio (já que a plataforma inicialmente está em inglês) e utilizá-lo nos computadores ou em qualquer dispositivo móvel.

## Conceito de Computação Plugada e Desplugada

A Programação Plugada é uma técnica de ensino de programação que utiliza o uso de computadores e dispositivos digitais. Essa técnica é baseada no uso de ferramentas de programação, como editores de código, compiladores e depuradores, para ensinar os fundamentos da programação. Dessa forma, o termo “Plugada” se refere à ideia de ter algo conectado à tomada ou bateria, estando assim, se utilizando de ferramentas conectadas a alguma fonte de energia A Programação Desplugada é uma técnica de ensino de programação que não utiliza o uso de computadores ou dispositivos digitais. Essa técnica é baseada em ensinar os fundamentos da programação através de atividades e exercícios que podem ser realizados sem o uso de tecnologia digital, como por exemplo, através de cartões, papel e canetas. A Programação Desplugada é uma técnica muito utilizada para ensinar programação para crianças e jovens, pois permite aos alunos aprender os conceitos básicos da programação de forma lúdica e interativa, sem a necessidade de acesso a tecnologia digital. Além disso, a Computação Desplugada também pode ser utilizada em ambientes onde não há acesso à internet, justamente por não se utilizar de ferramentas de tecnologia digital, permitindo aos alunos aprender programação em qualquer lugar e a qualquer hora.

## Funcionalidades

* Blocos e Personagens: no Scratch, os programas são construídos em torno de "blocos" que representam comandos. Os blocos podem ser agrupados para criar scripts que controlam o comportamento de "personagens" ou sprites na tela. Os sprites podem ser animais, objetos, personagens ou qualquer outra coisa que o usuário deseje criar, além da possibilidade de sua personalização com gráficos, sons e até mesmo interações com o jogador.
* Comunidade e Compartilhamento: uma das características mais importantes da plataforma é a sua comunidade online ativa. Os usuários podem compartilhar os projetos que criaram, explorar projetos criados por outros membros da comunidade e até mesmo remodelar projetos existentes para criar algo novo promovendo a colaboração e o aprendizado compartilhado, tornando o Scratch uma ferramenta poderosa para a educação e a criatividade.
* Utilização de Blocos de Programação: Uma ampla variedade de blocos que representam ações e eventos são implementados no Scratch, estes são classificados com base em seu papel na criação dos jogos. Alguns dos blocos mais comuns incluem:
* Blocos de Movimento: São blocos que controlam o movimento dos sprites na tela, incluindo comandos para mover para frente, girar, posicionar em um lugar específico e muito mais. São essenciais para a animação e o deslocamento dos personagens ou objetos em um projeto.
* Blocos de Aparência: Esses blocos lidam com a aparência visual dos sprites, permitindo que você altere a cor, o tamanho, o estilo de linha e o gráfico do sprite. Também é possível usar esses blocos para mostrar ou ocultar um sprite.
* Blocos de Som: Blocos que controlam sons em um projeto Scratch. Você pode adicionar, reproduzir, pausar, parar e controlar o volume de sons usando esses blocos, sendo são úteis para criar efeitos sonoros e trilhas sonoras em jogos e animações.
* Blocos de Controle: Esses blocos permitem que você controle o fluxo de execução de um programa. Eles incluem blocos de repetição (loops), blocos condicionais (como "se-então-senão") e blocos para aguardar eventos específicos, utilizados para criar lógicas complexas nos projetos.
* Blocos de Eventos: Esses blocos respondem a eventos específicos, como cliques de mouse ou teclas pressionadas. Eles são usados para iniciar a execução de roteiros quando eventos específicos ocorrem.
* Blocos de Sensores: Esses blocos permitem que você obtenha informações sobre o ambiente do projeto. Você pode usar esses blocos para verificar a posição do sprite, verificar se ele está tocando em outro sprite, ler valores de variáveis e muito mais.
* Blocos de Operadores: Esses blocos realizam operações matemáticas e lógicas. Eles incluem blocos para adição, subtração, multiplicação, divisão, comparações, entre outros. São usados para criar expressões e cálculos complexos em projetos.
* Blocos de Variáveis: Esses blocos permitem que você crie, defina e manipule variáveis personalizadas em seu projeto. Variáveis são usadas para armazenar e gerenciar dados que podem ser usados ao longo do programa.
* Blocos de Extensões: Esses blocos adicionam funcionalidades específicas ao Scratch por meio de extensões. Por exemplo, você pode usar extensões para interagir com hardware externo, como sensores e dispositivos de robótica.

## Como Utilizar o Scratch de Forma Desplugada

Por conta da estrutura do Scratch, suas características e funcionalidades podem ser reaproveitadas para o desenvolvimento dos seus conceitos computacionais de forma desplugada, o que é reforçado pela própria plataforma, e já testado em diversos contextos educacionais.
A RBAC (Rede Brasileira de Aprendizagem Criativa) implementou essa aula desplugada em 2022, visando alunos do ensino fundamental I e II, em que foi feito uma atividade seguindo os padrões de inserir blocos de comandos e ter uma representação de elementos de cenário, como personagens, isso construído com recortes de papel, folhas e desenhos construído pelos alunos, tendo assim a mesma possibilidade da versão plugada dos alunos criarem suas histórias e desenvolverem um aprendizado a partir da programação visual.
Outra dinâmica proposta para o uso desplugado da estrutura do Scratch foi apresentado na escola EMEB Maria Therezinha Besana e EMEB Lopes Trovão - SP, em que foi criado um jogo chamado "Programando com as letras", no qual os alunos, em um tapete interativo, participam de uma atividade de caça-palavras que envolvia a busca por palavras ditadas pela professora, utilizando comandos de programação analogicamente a plataforma Scratch. Os alunos, em grupos, programam o caminho da palavra no tapete vazado e, com a assistência de um aluno, executa a programação. Essa atividade visava a construção do aprendizado na alfabetização dos alunos e é importante ressaltar que atividades desplugadas com essa estrutura podem envolver diversos temas educacionais, ou seja, a “desplugação” do Scratch traz a possibilidade de adaptação ao contexto da sala de aula, além de tornar o processo mais lúdico.

## Impactos de sua aplicação em sala de aula

* Desenvolvimento de Pensamento Lógico: O Scratch incentiva o pensamento lógico e a resolução de problemas. Os alunos aprendem a dividir um problema em partes menores e a criar soluções usando blocos de código, desenvolvendo uma linha de pensamento, que as faz raciocinar sistematicamente.
* Criatividade: O Scratch permite que os alunos expressem sua criatividade ao criar jogos, histórias interativas e animações. Eles podem projetar e implementar suas próprias ideias, o que pode aumentar a motivação e o envolvimento, envolvendo temas reais e fictícios.
* Alfabetização Digital: Através do Scratch, os alunos desenvolvem habilidades básicas de programação e compreendem conceitos fundamentais relacionados à computação. Além de as colocar em contato com tecnologia de um jeito incomum. Isso contribui para a alfabetização digital, uma habilidade crucial no mundo moderno.
* Colaboração: O Scratch oferece a oportunidade de colaboração entre os alunos. Eles podem trabalhar juntos em projetos, compartilhar ideias e aprender uns com os outros. Isso promove e ajuda nas habilidades sociais e de trabalho em equipe que serão muito cobradas afrente.
* Transdisciplinaridade: O Scratch pode ser integrado a várias disciplinas, incluindo matemática, ciências e artes. Isso possibilita a abordagem de conceitos de forma interdisciplinar, tornando o aprendizado mais contextualizado e relevante. Além de atrair a atenção dos jovens já totalmente familiarizados com tecnologia, permitindo que eles continuem o aprendizado também fora da sala de aula.
* Acessibilidade: O ambiente visual do Scratch facilita o acesso de alunos com diferentes habilidades e estilos de aprendizado. A interface gráfica reduz a barreira de entrada para a programação, tornando-a mais inclusiva.
* Preparação para o Futuro: Ao aprender a programar desde cedo, os alunos estão melhor preparados para enfrentar desafios futuros em um mundo cada vez mais digital. Eles desenvolvem habilidades que são valiosas em muitos campos profissionais.
* Autoconfiança: O sucesso na criação de projetos no Scratch pode aumentar a autoconfiança dos alunos. Eles percebem que são capazes de criar tecnologia, não apenas consumi-la. E isso traz grandes chances dos alunos se sentirem mais motivados a iniciar novos projetos.
* Avaliação Diferenciada: O Scratch oferece uma variedade de maneiras de avaliar o aprendizado dos alunos. Em vez de se concentrar apenas em testes escritos, os professores podem avaliar os projetos criados pelos alunos, observando sua criatividade, lógica e capacidade de resolver problemas.
* Motivação Intrínseca: A natureza lúdica e interativa do Scratch pode estimular a motivação intrínseca dos alunos para aprender programação. O ato de criar algo tangível e funcional pode ser gratificante e motivador.

## O Scratch como ferramenta educacional

Atualmente, a narrativa digital é uma ferramenta popular na educação, combinando mídias digitais para contar histórias. O Scratch é um software que permite a programação de histórias, jogos e animações interativas, ajudando os alunos a pensar criativamente, raciocinar sistematicamente e colaborar.
Instituições educacionais reconhecem o potencial do Scratch para a aprendizagem baseada em projetos, permitindo que alunos de diversas origens:
* Pensem criativamente e trabalhem de forma colaborativa;
* Criem projetos expressivos;
* Comuniquem ideias em várias áreas;
* Desenvolvam fluência através da exploração;
* Engajem-se em uma aprendizagem mais profunda.
* As características principais do Scratch com impacto educacional incluem:
* Interface simples e amigável;
* Aprendizagem por atividades lúdicas;
* Orientação gráfica, desenvolvendo o pensamento visual;
* Orientação a objetos, com suporte a sprites e clonagem.
No Scratch, histórias digitais podem incluir múltiplos personagens (sprites) e cenas, permitindo fácil programação de diálogos e ações por meio de uma interface de arrastar e soltar.
O Scratch tem um impacto positivo significativo na educação ao proporcionar uma plataforma acessível e intuitiva para o aprendizado de programação e desenvolvimento de habilidades do século XXI. Sua interface amigável e baseada em blocos facilita a compreensão de conceitos complexos de programação, tornando-os acessíveis até mesmo para crianças. Além disso, ao incentivar a criação de projetos interativos, como histórias, jogos e animações, o Scratch promove o pensamento criativo, a resolução de problemas e a colaboração entre os alunos. Essas atividades lúdicas e interativas ajudam a desenvolver habilidades cognitivas importantes, como o raciocínio lógico e o pensamento crítico, enquanto mantêm os alunos engajados e motivados. Ao permitir que os estudantes compartilhem suas criações com uma comunidade global, o Scratch também fomenta a comunicação e a troca de ideias, preparando-os para um mundo cada vez mais digital e interconectado.

## Exemplos Práticos

Por ser uma ferramenta que funciona de forma lúdica, e com um formato que se assemelha muito ao de um quebra cabeça, é possível pensar em algumas formas de utilização do scratch de forma desplugada.
* Quebra cabeças Sequenciado: O scratch já possui uma mecânica de montagem, então a utilização dele em sala como um quebra cabeça é muita fácil de se replicar e trabalhar em uma dinâmica em sala de aula, criando situações problemas para que os estudantes montam as peças para resolvê-los, de modo individual ou em grupos.
* Jogos de Cartas de Programação: Os alunos podem jogar jogos de cartas, onde cada carta representa um bloco de código do Scratch. Eles podem combinar as cartas para criar uma sequência lógica de comandos, simulando a criação de um programa.
* Bingo de Programação: Os alunos podem jogar bingo usando cartelas que representam blocos de código do Scratch. Eles podem marcar as cartelas utilizando números, onde cada número equivale a uma etapa, à medida que ouvem as instruções de programação, simulando a execução de um programa, aqueles que acertarem o sequenciamento lógico ganham.
* Tabuleiro de Programação: Se baseia na utilização de um tabuleiro simples ou complexo que represente um ambiente de programação. Os alunos podem mover peças ou se mover pelo tabuleiro seguindo regras específicas que simulam a criação de um programa no Scratch. Por exemplo, cada espaço no tabuleiro pode representar um bloco de código e os alunos devem mover suas peças ou se moverem de acordo com as regras de lógica de programação para criar um programa funcional.