<Direto ao Ponto 36> A linguagem Scratch
- #Informática Básica
Artigos desta série: ( < ) Anterior | Índice | Seguinte ( > )
Olá, dev!
Este é mais um artigo da série DIRETO AO PONTO, que eu estou escrevendo para a DIO. Ele vai tratar da linguagem Scratch, usada para ensinar programação de forma lúdica até a crianças.
Sumário
1. Introdução
2. Os algoritmos computacionais
3. A linguagem Scratch – um resumo
4. A linguagem Scratch – exemplos
5. Considerações finais
6. Referências
1 – Introdução
Eu criei a série de artigos DIRETO AO PONTO com o objetivo de apresentar, de forma simples e direta, conhecimentos básicos da programação e de computação, principalmente, para os iniciantes.
Aqui, são tratados temas como lógica de programação, linguagens, hardware dos computadores, história da computação e assuntos relacionados à plataforma da DIO, como a escrita de artigos e os desafios de código.
Neste artigo, será tratada a linguagem Scratch, usada para ensinar programação de forma lúdica a crianças.
No meu artigo anterior desta série, em que tratei de visualização de algoritmos, eu mostrei os blocos de comandos do Scratch e da sua semelhança com os blocos de comandos de uma linguagem estruturada e da facilidade de usá-los para a codificação de algoritmos. A ideia deste artigo era detalhar mais estes blocos do Scratch, mas depois vi que seria uma boa oportunidade de tratar da linguagem e do ambiente do Scratch.
A escolha deste tema se deu porque eu acho que os blocos usados para a implementação de código de forma visual são muito intuitivos para quem não conhece programação, como as crianças.
Os blocos são encaixados sequencialmente, como peças de Lego, e tem blocos para praticamente todos os comandos oferecidos por linguagens de programação estruturada.
Existem comandos para entrada/saída de dados, criação, manipulação e atribuição de variáveis, operadores aritméticos, relacionais e lógicos, estruturas de decisão, repetição, procedimentos etc.
Além disso, de forma lúdica, os usuários aprendem a criar animações 2D interativas, jogos etc.
Para as crianças, acredito que este pode ser um primeiro caminho para o aprendizado da programação; para os iniciantes, é uma forma de aplicar conceitos de algoritmos e vê-los funcionar com aplicações simples e divertidas.
2 – Os algoritmos computacionais
Um algoritmo é uma sequência ordenada de ações que orientam, passo a passo, como realizar uma determinada atividade. Eles podem ser usados no nosso cotidiano, como em uma receita de bolo, ou trocar o pneu de um carro etc.
Um algoritmo reduz a complexidade de uma tarefa, pois a divide em passos menores e mais gerenciáveis. No caso de algoritmos computacionais, eles podem ser facilmente implementados por uma linguagem de programação por simples identificação de cada passo com instruções oferecidas pelas linguagens.
Um algoritmo pode ser representado por texto (tipo Portugol), pseudocódigo ou por gráficos. No caso de visualização gráfica, os mais comuns são os gráficos com blocos geométricos e setas para determinar os fluxos, mas após o surgimento das primeiras linguagens estruturadas (como FORTRAN) surgiu um novo tipo de fluxograma (Nassi-Sneiderman), mais adequado aos blocos e comandos oferecidos por linguagens com este paradigma.
A visualização de algoritmos foi tratada no artigo anterior desta série. E nele eu falei sobre os blocos do Scratch, por isso surgiu o tema deste artigo.
3 – A linguagem Scratch – um resumo
O que é o Scratch?
Segundo [1], o programa Scratch foi criado pelo grupo Lifelong Kindergarten do MIT Media Lab (”Massachusetts Institute of Technology”), com o objetivo de ensinar programação a crianças e jovens, para que eles pudessem se expressar criativamente por meio da programação.
Ele é uma ferramenta totalmente gratuita, disponível no site https://scratch.mit.edu e pode ser usada online ou offline. Podem ser criados projetos de vários tipos, simples e até complexos, para criar aplicações como:
· Histórias;
· Jogos;
· Projetos artísticos;
· Animações;
· Tarefas da escola;
Além de ser uma linguagem de programação o Scratch é uma comunidade online na qual pessoas do mundo todo podem compartilhar seus projetos e ver os projetos publicados por outros usuários.
Você pode interagir no Scratch com os colegas que adicionou, começar a seguir novos colegas, tornando a experiência de aprendizado mais rica para todos!
Um dos criadores do Scratch, e diretor do Grupo Lifelong Kindergarten, Mitchel Resnick, fez uma palestra no TEDx - Beacon Street, na qual ele deu uma visão geral do projeto do Scratch. Ele falou da sua motivação para ter criado o Scratch e de como a programação pode ser usada como forma de expressão criativa.
Esta palestra está disponível no link:
https://www.youtube.com/watch?v=Ok6LbV6bqaE
Como funciona o Scratch
O Scratch é um sistema ”no-code” que permite a criação de animações simples de figuras e formas geométricas, que podem ser programadas visualmente por blocos funcionais, que são arrastados e encaixados como peças de Lego.
A tela principal apresenta o menu principal, horizontal, e os painéis principais (ver figura a seguir):
· Painel da aplicação;
· Painel dos atores;
· Painel da aplicação;
· Painel de comandos.
No painel de personagens (parte inferior, à direita), são escolhidos os desenhos (chamados de atores) que vão ser associados aos comandos do programa da aplicação. Cada um deles pode ser manipulado individualmente.
Os atores são mostrados no painel da aplicação (parte superior, à direita, acima do painel de atores), bem como seus movimentos, modelos, cores, interações com os outros personagens etc.
O painel do programa (área maior, no centro) mostra, para cada ator, os blocos de comando que serão executados para aquele personagem.
O painel de comandos (à esquerda) possui 3 abas. A primeira (código) oferece todos os comandos individuais que podem ser encaixados nos outros comandos. A segunda (fantasia) tem comandos para editar um ator e a terceira (sons) permite realizar edições dos sons usados na aplicação.
Como criar um projeto
Em primeiro lugar, depois de fazer login no site, deve-se usar o botão “Criar” para iniciar um projeto, como mostra a figura abaixo:
Para criar um projeto, primeiro, deve-se escolher os personagens que farão parte da aplicação, embora possa ser usado o personagem padrão oferecido – o gato Scratch.
Depois, deve-se selecionar um personagem e arrastar os blocos de comando que vão criar a programação que será aplicada àquele ator. Isso é feito para cada um dos atores.
Os blocos de comandos devem ser encaixados uns abaixo dos outros de forma a resultar na implementação do algoritmo que governará as ações de cada ator.
Os blocos são selecionados pela sua categoria, que pode ser:
· Movimento – oferece movimentos, rotações, contato entre personagens;
· Aparência – permite efeitos visuais como escala, fala, pensamento, fantasias, ocultação, cenário de fundo etc.;
· Som – controla o tipo de som, volume, duração, “muting” etc.;
· Eventos – controle de interação com mouse, teclado, mensagens, mudança de cenário, som etc.;
· Controle – controle de tempo, repetições, decisões, parada etc;
· Sensores - controle de colisão entre personagens, saída de texto, posição do mouse etc.;
· Operadores – operadores aritméticos, relacionais e lógicos;
· Variáveis –criação de variáveis pessoais e interação com elas;
· Meus blocos – para criação de blocos personalizados e interação com eles, como procedimentos e funções;
A figura abaixo mostra uma parte da área dos comandos.
Veja como criar uma aplicação bem simples (ver figura abaixo).
O programa pode começar com uma ação para iniciar a execução, como o comando “quando for clicado”, por exemplo.
Depois, podem ser usados comandos para mover o personagem, como “mova x passos”, onde esse x pode ser configurado para um valor numérico, por exemplo, 20.
Depois, outro comando pode retornar o personagem para sua posição original, por exemplo “mova -20 passos”.
Continuando, pode ser encaixado um comando para o personagem falar alguma coisa por algum tempo, por exemplo “diga Olá! por 2 segundos” e ter seu tamanho reduzido por “defina o tamanho como 50%”.
Depois, pode selecionar um bloco de som, por exemplo “toque o som miau”
Para iniciar a aplicação, usa-se o ícone da bandeira verde e para encerrar, o ícone vermelho de parada da área de aplicação, como mostra a figura.
Comandos básicos
As figuras seguintes mostram alguns dos comandos básicos oferecidos em cada categoria.
Veja que a maioria deles é um bloco com um formato que se encaixa perfeitamente no bloco anterior e pode encaixar o bloco seguinte, sequencialmente.
Os blocos que juntam outros blocos sequenciais dentro deles já tem seus limites superior e inferior definidos, representando o contexto de comandos que fazem parte deles. É o caso de blocos de seleção e de repetição, por exemplo, da categoria de Controle (REPITA-VEZES, SE-ENTÃO, SE-ENTÃO-SENÃO, REPITE-ATÉ QUE).
Alguns blocos têm formatos diferentes, só podendo se encaixar em blocos específicos. É o caso dos blocos de comparações (>, <, =), cujo formato só se encaixa no interior de blocos de decisão ou de repetição (SE-ENTÃO, SE-ENTÃO-SENÃO, REPITE-ATÉ QUE) e os de operações lógicas (E, OU, NÃO), que só aceitam blocos de comparações e de outras operações lógicas.
Da mesma forma, blocos com formatos circulares só se encaixam em blocos de condições, que têm um operador aritmético, relacional ou lógico ou então em blocos de atribuições de variáveis e expressões aritméticas. É o caso dos valores numéricos e das variáveis.
Veja exemplos de encaixe de comandos na figura abaixo:
4 – A linguagem Scratch – exemplo de uso
Para exemplificar o uso do Scratch, eu criei uma aplicação do conhecido joguinho de adivinhar um número secreto, em no máximo, 5 tentativas.
Um possível algoritmo bem básico para este jogo é:
Gere um número secreto aleatório entre 1 e 100.
Defina o número máximo de tentativas (5).
Repita até o jogador acertar ou o número de tentativas ultrapassar 5:
_____Solicite ao jogador que informe um número (entre 1 e 100);
_____Se o palpite for incorreto, informe se o palpite é maior ou menor que o número secreto;
_____Se o palpite estiver correto, informe ao jogador que ele acertou e encerre o jogo.
_____Se o número máximo de tentativas for atingido, informe que ele não acertou e mostre o número secreto.
O jogo que eu criei no Scratch (ver figura abaixo) apresenta blocos de comandos bem parecidos com a sequência de passos deste algoritmo.
Aqui está a tela da aplicação do jogo:
Explicação dos blocos de comandos
Inicialização – fase em que o bloco que inicia a execução é selecionado (clique do mouse na bandeira verde da aplicação; a placa vermelha para o programa) e as variáveis criadas são inicializadas (ver figura abaixo).
Note que os blocos são encaixados um abaixo do outro, sequencialmente. No caso da inicialização da variável segredo, o valor inicial é um comando que se encaixa na área depois da palavra “para” e os números inteiros são colocados em áreas circulares específicas. Todo bloco é encaixado onde só se espera o tipo dele.
Interação inicial – pede ao usuário para informar um número inteiro como chute inicial, para usar na condição inicial do teste do loop do jogo.
O comando de saída “pergunte...” indica a mensagem que será mostrada ao usuário e espera por sua digitação, que fica armazenada na variável específica “resposta”, usada na atribuição.
Loop de teste da resposta do usuário – o loop é do tipo REPEAT-UNTIL, que se repete até o usuário acertar o número secreto ou o número de tentativas ultrapassar o limite de 5 tentativas. Veja que o teste envolve 2 condições separadas, conjugadas por um conectivo OU e cada condição é mostrada dentro de um elemento na forma de um retângulo com laterais angulares, pois só elas podem ser encaixadas na parte de condição de um comando condicional (REPITA, SE etc.).
Em seguida, tem um comando SE-SENÃO, que testa se o chute é menor que o número secreto, escrevendo uma mensagem para informar ao usuário desta situação. Na parte do senão, é testado se o chute é maior que o número secreto, informando o caso para o jogador.
Ao final do loop, tem outro pedido ao usuário para informar um número inteiro como o chute seguinte, para atualizar a condição do teste do loop do jogo.
Parte final – ao final do loop, é testado se ele foi encerrado com o acerto do número secreto, informa ao jogador do acerto e toca o som do “miau” (do gato Scratch), para alertar do acerto, ou se a saída do loop foi por ter passado o limite de tentativas (5), informando ao usuário e mostrando qual era o número secreto.
Veja o encaixe dos blocos na condição do SE-SENÃO, com o teste de igualdade das variáveis “chute” e “segredo”, também encaixadas na condição.
Este projeto foi implementado no site do Scratch e compartilhado com o link
https://scratch.mit.edu/projects/1057549073, podendo ser acessado no site.
Para quem tiver interesse, no site do Code IOT [2] (www.codeiot.org.br), existe um curso (Aprendendo a Programar), online e gratuito, que ensina como usar o Scratch. Este site é uma iniciativa da Samsung, desenvolvido pelo Laboratório de Sistemas Integráveis Tecnológico (LSI-TEC), da USP. Além deste curso, o site oferece outros, nas áreas de Eletrônica, IOT e desenvolvimento de apps, por exemplo.
5 – Considerações finais
Este é mais um artigo da série DIRETO AO PONTO, que eu estou escrevendo para a DIO.
Desta vez, foi apresentada a linguagem Scratch, criada pelo MIT para ensinar programação a crianças de forma lúdica e divertida.
Primeiro, resumi o tema algoritmos, assunto do atrigo anterior e que me levou a usar os blocos de comandos do Scratch para implementar os passos de algoritmos estruturados, o que motivou a escrita deste artigo.
Depois, foi descrito o que é a linguagem (e o site) Scratch, mostrada a forma de programar (no-code) por meio de blocos visuais, que são arrastados e encaixados como peças de Lego, e foram mostrados seus comandos principais.
Por fim, foi criada uma aplicação, baseada em um algoritmo do jogo clássico de adivinhar um número secreto por meio de palpites. Para isso, foi usada a linguagem Scratch, e cada passo foi explicado em detalhes.
Se você quer indicar um início para a programação para alguma criança, jovem ou alguém que não saiba nada de programação, o Scratch pode ser um caminho bom e divertido!
Nos próximos artigos, eu ainda vou falar sobre os algoritmos, pois falta falar de alguns temas importantes sobre eles.
6 – Referências
[1] Scratch, Disponível em <www.scratch.mit.edu>. Acessado em: 19/08/2024.
[2] CodeIOT, Disponível em <www.codeiot.org.br>. Acessado em: 19/08/2024.
[3] Mitchel Resnick, Palestra no TEDx - Beacon Street sobre o Scratch. Disponível em: <https://www.youtube.com/watch?v=Ok6LbV6bqaE>. Acessado em: 19;08/2024.
Artigos desta série: ( < ) Anterior | Índice | Seguinte ( > )