Responsável
Victor Giraldo
Instituto de Matemática –UFRJ

 



PROGRAMAÇÃO DE COMPUTADORES VIA SCRATCH

 

Leonardo Barichelo

“PROGRAMAÇÃO DE COMPUTADORES” COMO UMA NOVA DISCIPLINA

Nos últimos anos, diversas iniciativas que visam difundir a programação de computadores entre jovens e crianças têm ganho espaço na mídia. Esse movimento parece se basear na percepção não apenas de que o mercado de trabalho em áreas correlatas é grande e deve continuar aumentando (ver [2]), mas também de que se trata de habilidades e conhecimentos cada vez mais presentes em todas as áreas acadêmicas e profissionais (ver [5]) e mesmo no nosso dia a dia (ver [4]).

Grandes projetos internacionais, como o CodeAcademy.com e o Code.org (que recentemente ganhou a versão brasileira no endereço Programae.org.br), oferecem opções para que qualquer pessoa interessada seja capaz de aprender as habilidades e conhecimentos relacionados à programação de computadores, normalmente com foco nos estudantes, por meio de ambientes on-line que permitam a aprendizagem autodidata. Por outro lado, em diversos países há movimentos que buscam trazer esse universo para dentro das escolas e aí surgem a preocupação com a formação de professores e propostas curriculares bem-definidas.

Em consonância com essas tendências, o objetivo deste texto é relatar uma experiência de uso do software Scratch com alunos de ensino fundamental, buscando mostrar uma possibilidade para o ensino de programação de computadores nesse nível de ensino e motivar professores interessados no assunto.

UM BREVE HISTÓRICO

As primeiras tentativas de trazer a programação de computadores para o universo escolar, ou pelo menos de torná-la acessível a crianças, ocorreram na década de 1960, assim que começaram a surgir os primeiros computadores pessoais. A precursora dessas tentativas foi a linguagem Logo, desenvolvida no Massachussets Institute of Technology (MIT). A linguagem Logo se baseava no controle de uma tartaruga, sendo que seus comandos mais básicos se referiam a sua movimentação em um plano.


Figura 1: Imagem típica de uma sequência de comandos em
uma das versões mais antigas do Logo
.

 

O Logo gerou uma enorme família de derivados. Um exemplo é o software Kturtle, disponível nativamente no sistema operacional brasileiro Linux Educacional e que tem potencialidades interessantes para o ensino de Matemática (ver [1]). O Scratch (http://scratch.mit.edu/), em certo sentido, também não deixa de ser um descendente do Logo. Ele foi desenvolvido no MIT, seguindo a mesma filosofia do Logo. Seu objetivo é trazer a programação de computadores para estudantes do ensino básico e crianças. Seus maiores avanços em relação ao Logo são os recursos visuais muito mais ricos, ampliação das possibilidades de interação com o usuário, possibilidade de compartilhamento on-line de projetos e uso de blocos de encaixe (em vez de comandos por escrito) para criação dos algoritmos. Com esses recursos, o Scratch se tornou uma opção muito atraente e prática para todos que querem se iniciar no universo da programação de computadores.



Figura 2: Tela principal do Scratch: à esquerda, o cenário onde as ações do código se realizam; ao centro, os blocos encaixáveis com comandos; à direita, a região onde os algoritmos são criados.

 

A MINHA EXPERIÊNCIA COM O SCRATCH

Por três anos, fui responsável por oficinas extra-curriculares em uma escola particular do interior de São Paulo. O foco dessas oficinas, por escolha minha, foi a programação de computadores. No primeiro ano, foi formado apenas um grupo de estudantes do ensino médio e as oficinas giraram em torno de robótica através da plataforma Arduino. Por não se tratar do foco deste texto, não entrarei em detalhes sobre essa fase.

No segundo ano, houve demanda para expansão das oficinas para estudantes do final do Ensino Fundamental II. Para atender a essa demanda, decidi oferecer aos alunos oficinas sobre o Scratch, com ênfase na elaboração de jogos. Foram um total de 7 jogos desenvolvidos, ao longo de 24 aulas (com 50 minutos de duração cada), com um grupo de estudantes que variou de 12 a 5 membros ao longo do ano. O relato completo dessa experiência, incluindo links para todos os jogos que foram desenvolvidos, está disponível em http://scratched.gse.harvard.edu/stories/programming-through-games-middle-school-students.
Por fim, no terceiro ano, essas oficinas de

Scratch foram expandidas para os alunos do início do Ensino Fundamental II. Dessa vez, não enfatizei nenhum tipo específico de construção (como jogos), pelo contrário, fui definindo as atividades de acordo com o retorno que recebia dos alunos. Essa oficina ocorreu de março a agosto. Nesse período, desenvolvemos primeiramente uma série de projetos no estilo de histórias não interativas, como a disponível em http://scratch.mit.edu/projects/22146793/.

Após alguns projetos similares a esse, iniciei uma série de projetos que culminaram com o que será descrito em detalhes na seção UM EXEMPLO deste texto. No link
http://scratch.mit.edu/projects/23029590/
estão disponíveis mais alguns projetos que foram desenvolvidos por esse grupo de alunos.

E A MATEMÁTICA?

Verifica-se recentemente uma crescente demanda pela constituição da programação de computadores como uma nova disciplina, independente daquelas já existentes no currículo. Apesar de ser, naquela época, professor regular de Matemática, essa foi a visão que adotei nas oficinas. Por isso, ao longo das atividades, não dei especial ênfase a projetos que estivessem relacionados diretamente com Matemática.

Por outro lado, não é incomum associar as habilidades e conhecimentos envolvidos na programação de computadores com a Matemática. Assim sendo, é natural que os professores de Matemática sejam aqueles mais aptos a lecionar programação de computadores na educação básica. Entretanto, cursos de licenciatura em Matemática raramente abordam a programação de computadores como um conteúdo curricular, ou discutem as habilidades que os alunos da educação básica podem desenvolver a partir do exercício de programação de computadores. Tendo isso em mente, escolhi um exemplo que dialoga com Matemática para ser apresentado em detalhes na seção a seguir.



Figura 3: Esse projeto conta a história de dois amigos fugindo
de um morcego. Do ponto de vista do software, esse tipo
de projeto enfatiza comandos de movimentação, aparência
e tempo.

 

UM EXEMPLO

Esse projeto foi proposto aos alunos do início do Ensino Fundamental II quando eles já estavam familiarizados com os comandos básicos do Scratch. A ideia surgiu de um exemplo clássico para a introdução de álgebra para esse nível: “truques” que permitem adivinhar um número escolhido por outra pessoa (ver [3]). Antes de começarmos a desenvolver o projeto em si, apresentei o truque aos alunos e expliquei por que ele “funcionava”. Em seguida, pedi que cada um criasse um truque novo e testasse com os colegas.

Na aula seguinte, começamos a construção do projeto do Scratch. O resultado do projeto deveria ser um personagem que “conversasse” com o usuário, pedindo que o usuário pensasse em um número, dando instruções e perguntando, ao final delas, qual foi o resultado obtido, para então “adivinhar” o número pensado inicialmente pelo usuário. Uma versão está representada na figura abaixo.



Figura 4: Recomendo fortemente que você acesse o link
http://scratch.mit.edu/projects/53684084/
para interagir com esse projeto
antes de prosseguir na leitura do texto.

 

Ao abrir o Scratch ou criar um novo projeto diretamente no site (clique em Criar após acessar
http://scratch.mit.edu), você verá uma tela como a anterior, porém, sem os blocos coloridos na parte direita. Você tem um ator (o gato) inserido no seu cenário (lado esquerdo). Abaixo do cenário, você pode inserir outros atores, mas isso não será necessário para este projeto. Na parte central da tela, você tem os blocos com os comandos disponíveis na linguagem de programação do Scratch. Eles são agrupados por tipo (Movimento, Aparência, Som, Caneta, Variáveis, Eventos, etc.) e você pode identificá-los pelas cores. Para utilizar um comando, você deve arrastá-lo para o espaço da direita e encaixá-los.

Essa é, na minha opinião, uma das grandes potencialidades do Scratch: a possibilidade de programar sem precisar escrever os comandos. A disponibilidade visual aliada às descrições e aos formatos dos blocos torna a experimentação muito intuitiva para os alunos.


figura 5: Comandos do projeto mostrado na imagem anterior.

 

Agora, vamos entender os comandos.

Primeiramente, veja que a sequência de comandos encaixados começa com o comando quando clicar em (disponível no grupo Eventos). Note que o formato da sua parte superior é diferente da dos demais. Isso ocorre porque nada pode ser encaixado acima dele, uma vez que ele é responsável por iniciar a execução de um bloco de comandos. Caso um comando não seja encaixado em um bloco que começa com um Evento, ele não poderá ser acionado pelo usuário.

Os quatro comandos seguintes (roxos) apenas dão as instruções. O próximo comando (azul) faz uma pergunta ao usuário, espera pela digitação da resposta e armazena o valor na variável “resposta”, que é usada no comando seguinte (laranja).

Para os professores de Matemática, essa é a linha interessante. O comando mude é capaz de alterar o conteúdo de uma variável (nesse caso, ela se chama “número pensado”), que deve ter sido criada anteriormente no grupo de comandos Variáveis. Veja que a expressão que calcula o valor que será guardado em “número pensado” é a sequência de operações inversas às que foram dadas nas instruções. No Scratch, as operações não precisam de parênteses, pois dependem da ordem em que os blocos foram encaixados um no outro.

Para terminar, temos uma sequência de três comandos (dois roxos e um rosa) cuja função é apenas mostrar o resultado da “adivinhação”.

Ao realizar esse projeto, os alunos fizeram muita coisa além desses comandos, como, por exemplo: cenários elaborados, personagens se movimentando pela tela, botões para mostrar a próxima instrução etc. Ao todo, foram necessárias 3 aulas de 45 minutos para concluir todo o projeto (incluindo a aula inicial de introdução).

MUITO LEGAL! MAS E AGORA?

Normalmente, essa é a pergunta que passa pela cabeça de todo professor quando lhe é apresentada alguma nova proposta de ensino. Seria injusto não reconhecer que, apesar de ter feito Licenciatura em Matemática, eu tenho um histórico significativo em computação. Isso com certeza facilitou a realização das oficinas com Scratch. Porém, se você se interessou pelo Scratch, existem materiais que podem ajudar. O portal http://scratched.gse.harvard.edu/ é direcionado a professores com e sem experiência e oferece muitos recursos, que vão de relatos a tutoriais e propostas curriculares completas. Para isso, basta acessar a aba Recursos. A partir dali, é possível não apenas criar uma rota de aprendizagem para você mesmo, mas também para aulas voltadas para diversos níveis de ensino e focadas ou não nos conteúdos das disciplinas convencionais.

 

REFERÊNCIAS

[1] BARICHELLO, L. (2015). Relato de uma experiência com o software kturtle na simulação de problemas envolvendo probabilidade. In: Professor de Matemática Online, vol. 2. Disponível em http://pmo.sbm.org.br (aguardando publicação).

[2] Code.org (2013). Coding is the new literacy. Vídeo disponível em https://youtu.be/MwLXrN0Yguk.

[3] GUELLI, O (2004). Fazendo mágica com a matemática. In: Explorando o Ensino de Matemática, vol. 1. MEC. Disponível em: http://www.dominiopublico.gov.br/pesquisa/DetalheObraForm.do?select_action=&-co_obra=17169.

[4] RESNICK, M. Let’s teach kids to code. TED Talks, 2012. Disponível em: http://www.ted.com/talks/mitch_ resnick_let_s_teach_kids_to_code.

[5] WING, J. M. Computational thinking. Communications of the ACM, v. 49, n. 3, 2006.