Os ambientes de programação baseados em blocos estão se tornando cada vez mais a primeira experiência de codificação para muitos estudantes1, à medida que mais e mais escolas começam a introduzir e expandir cursos e currículos de ciência da computação. Uma das linguagens de programação baseadas em blocos mais populares é chamada Scratch2(scratch.mit.edu). Todos os dias, mais de 1.500 novos projetos de programação são carregados no site Scratch3. O próprio VEXcode é alimentado por blocos Scratch.
Uma das principais motivações por trás da criação do Scratch é que muitos jovens estudantes acham a programação com linguagens de programação baseadas em texto muito difícil4, pois esses alunos acham difícil dominar tanto a digitação quanto a sintaxe. Como resultado, as linguagens de programação baseadas em blocos foram projetadas para alunos desde a idade pré-escolar, mas a maioria é projetada para alunos com idades entre 8 e 16 anos. A programação baseada em blocos, incluindo VEXcode, apresenta diversas vantagens para programadores iniciantes5.
- Legibilidade:Linguagens de programação baseadas em blocos possuem comandos que são muito mais fáceis de ler do que comandos baseados em texto.
- Memorização:Linguagens de programação baseadas em blocos têm todos os seus comandos visíveis para o usuário. Com linguagens de programação baseadas em texto, os comandos geralmente precisam ser memorizados. Além disso, os usuários devem memorizar a sintaxe associada aos comandos de texto. Não há sintaxe associada a comandos baseados em blocos.
- Digitação/Ortografia:Os alunos mais jovens têm dificuldade em usar o teclado. Erros ortográficos tornam-se erros de compilador com uma linguagem de programação baseada em texto. Linguagens de programação baseadas em blocos usam arrastar e soltar. Portanto, não é necessária digitação e domínio da ortografia.
Embora esteja provado que é mais fácil para usuários novatos começarem a programar com uma linguagem de programação baseada em blocos, ainda é importante perguntar se as linguagens baseadas em blocos são eficazes no ensino de conceitos de ciência da computação. A resposta curta é sim. A pesquisa mostrou que as linguagens de programação baseadas em blocos têm sido eficazes no ensino de conceitos de ciência da computação, como algoritmos, variáveis, lógica condicional e compreensão de código6.
É claro que existem algumas desvantagens no uso de linguagens de programação baseadas em blocos. Por exemplo, os alunos podem por vezes sentir que a utilização de blocos não é uma experiência de aprendizagem “autêntica”7. Em outras palavras, os verdadeiros programadores não usam blocos. Este é um aspecto importante a ter em mente, mas também é importante ter em mente os desafios bem documentados que as linguagens de programação baseadas em texto apresentam aos programadores novatos.
Como educadores, sabemos que as ferramentas que utilizamos para ensinar conceitos mudam à medida que os alunos mudam. Matemática é ensinada K - College. As ferramentas usadas para ensinar um aluno da primeira série são muito diferentes das ferramentas usadas para ensinar um aluno do primeiro ano na faculdade. A pesquisa mostrou que as linguagens de programação baseadas em blocos são mais fáceis de usar para iniciantes e são um meio eficaz de ensinar tópicos importantes da ciência da computação. Isso não significa, entretanto, que os alunos devam ou precisem permanecer sempre em um ambiente de programação baseado em blocos. Em vez disso, uma conclusão melhor a tirar é que uma modalidade de programação, blocos ou texto, não é inerentemente melhor que a outra8. O que for mais adequado para sua sala de aula dependerá do seu nível de conforto como educador e da preparação de seus alunos. Assim como os alunos dominam os fatos de multiplicação em ritmos diferentes, alguns alunos dominarão a programação com blocos mais rapidamente do que outros. A oportunidade de começar com uma programação baseada em texto irá mantê-los envolvidos e desafiados. Ferramentas como VEXcode e Text permitem que você conheça cada aluno em seu nível de ensino individual.