A área de computação está em alta há alguns anos e com ela os cursos de tecnologia. Nesses cursos, o primeiro contato com a parte técnica costuma ser com alguma disciplina de introdução à programação, como Programação 1 ou Lógica de Programação. Após uma introdução aos conceitos de algoritmos, o ensino dessas matérias costuma ser com uma linguagem de programação como C, Pascal ou o Portugol (usando a IDE VisuAlg). As duas primeiras linguagens são bem difíceis para quem está iniciando, já a última é mais fácil por ser em português. Contudo, todas carecem de um grande problema, são desmotivantes, pois para o aluno criar algo interessante, é necessário muito conhecimento e bibliotecas externas.

Devido a isso, os professores ficam limitados e pedem trabalhos chatos, como sistema de controle de funcionários ou outro tipo de sistema de controle de dados que não é nada legal de se criar. E, como consequência, os alunos se sentem ainda mais desmotivados e a reprovação aumenta.

Além de tudo isso, a lógica de programação não é fácil, pois engloba um conhecimento totalmente novo e um uso grande de raciocínio lógico, que nós não desenvolvemos muito ao longo da vida, principalmente em nossas escolas públicas (estaduais e municipais). Assim, os alunos necessitam de motivação e uma forma mais fácil para não assustarem e desistirem cedo.

Para resolver esse tipo de problema, os professores precisam inovar, sair da zona de conforto e entender que no início de um curso os alunos precisam se sentirem motivados em vez de serem bombardeados com conteúdos.

Visando isso, podemos iniciar o ensino da programação com o Scratch (Figura 1), que é desenvolvido pelo MIT e que consiste em um sistema para programação em blocos. A linguagem em blocos é muito mais simples que a linguagem tradicional, textual com sentenças. É como brincar de Lego, e, assim, é fácil, intuitiva e motivadora.

Scratch

Introdução ao Scratch.
Figura 1. Introdução ao Scratch. Para ver a apresentação completa acesse: https://scratch.arthurassuncao.com/.

No Scratch, temos diversos conceitos de lógica de programação, como variáveis, comandos de entrada e saída, desvio condicional, estruturas de repetição e mais. A partir disso, podemos dizer que o Scratch é uma ferramenta completa para o ensino dessas disciplinas introdutórias a programação.

Ainda, temos o Scratch como uma ferramenta que permite a criação de animações e jogos de forma simples e com visual bastante bonito, dependendo apenas da criatividade e dons com softwares de edição de imagens.

Em resumo, o Scratch permite o ensino de forma simples e motivador, algo que as linguagens não costumam permitir. Contudo é importante lembrar que ele pode ser usado nas primeiras aulas, umas 8 aulas são mais que suficiente e depois pode-se iniciar o ensino das linguagens tradicionais, seja Portugol, Python ou C, por exemplo, esta última apenas se for realmente necessário neste momento, devido a sua dificuldade.

Pensando nisso, este ano, ao iniciar a primeira turma do curso Técnico em Automação, começamos a disciplina de programação com uma aula motivando os alunos sobre a área de programação, a explicação de algoritmos e depois o ensino do Scratch. Essas aulas de Scratch podem ser encontradas no seguinte endereço https://scratch.arthurassuncao.com/. Essas aulas foram feitas com o RevealJS com CSS que criei para ficar responsivo. O ensino de lógica costuma ser com os seguintes conteúdos na ordem que estão:

  1. Variáveis;
  2. Entrada e Saída de dados;
  3. Operações aritméticas;
  4. Operadores lógicos;
  5. Operadores relacionais;
  6. Estrutura condicional;
  7. Estrutura de repetição;

E mais. No Scratch, temos tudo isso e vamos mostrar agora. Para iniciar com Scratch, é possível realizar o download ou usar a interface web. Vamos usar a versão Web e, para isso, acessar o site http://scratch.mit.edu/ e clicar em Comece a Criar. Isso nos leva a interface web do Scratch, como a Figura 2 apresenta.

Figura 2. Tela do Scratch web.

Como Começar

Podemos começar de várias formas, nos slides do link que postei, começo apresentando o que o Scratch permite fazer e vou incrementando as funções ensinando cada comando a medida que é necessario, chamo isso de aprendizado por demanda. Considero ótima forma de se aprender uma linguagem ou tecnologia de forma rápida e mais interessante, pois remove o excesso de teoria e se aprende com base no que é necessário a cada momento, o ponto negativo é que não se aprende tudo, pois se limita ao que foi necessitado. Mas imagine, em vez de ler um livro ou fazer um curso de React (tecnologia para desenvolvimento de sistemas web no front end) você pode lerum código base e então comece a montar seu site e a cada necessidade você pesquise como fazer, assim você aprende e faz o que precisa, tudo por demanda e sem ter que esperar dias/mês para começar a montar algo de verdade. E num momento posterior você pode estudar mais a fundo seja com livro ou curso.

Contudo, neste texto vamos seguir a ordem tradicional apresentada mais acima no texto. As variáveis para quem está iniciando, são regiões de memória (lembre da memória Ram) que são identificadas por um nome(identificador) e armazenam algum valor, seja número, letra, texto etc. É como se você tivesse um envelope, este envelope seria identificado por um nome e dentro dele poderia haver um número de telefone ou um texto. Estas variáveis são muito úteis em jogos para armazenar a pontuação de um jogo, por exemplo. Todas as categorias com seus comandos podem ser vistos na Figura 3.

Categorias do Scratch
Figura 3. Categorias presentes no Scratch web.

No Scratch, cada categoria representa um tipo diferente de conjunto de blocos onde os comandos em azul são referentes à Movimento, os roxos são referentes à Aparência, magenta à Som, amarelo à Eventos, laranja à Controle, ciano à Sensores, verde à Operadores, laranja escuro à Variáveis e ainda é possível criar os seus próprios blocos que ficam em um tom de vermelho.

Variáveis

Você pode usar criar uma variável na categoria Variáveis, de cor laranja. Basta clicar em Criar uma variável e criar com um nome (identificador) que melhor represente a informação que ela guardará. Essas variáveis, normalmente quando numéricas, podem ser somadas, subtraídas, divididas, multiplicadas etc a valores ou, mesmo, a outras variáveis. Por conta dessa necessidade, temos os operadores aritméticos e, no Scratch, temos diversos na categoria Operadores, de cor Verde. Os principais são, soma, subtração, divisão, multiplicação e módulo.

Operadores Aritméticos, Relacionais e Lógicos

Além disso, podemos comparar variáveis, se uma é maior que outra, se um valor é diferente de outro e assim por diante. Essas comparações são feitas com os operadores relacionais, pois relacionam valores, variáveis etc. No Scratch temos poucas opções, apenas maior, menor e igual. Para formar uma expressão com maior ou igual precisamos ou inverter a ideia usando menor ou usar um operador lógico que será visto no próximo parágrafo. Essas expressões resultam sempre em um valor booleano, afinal a comparação de duas coisas sempre é verdadeiro ou falso. 1 é maior que 2? Falso. 3 é menor que 5? Verdadeiro. E assim por diante…

Por fim, na categoria Operadores, temos os operadores lógicos que são usados quando precisamos aplicar uma lógica sobre expressões relacionais, como juntar comparações para formar uma nova, por exemplo quando se quer que uma primeira expressão e uma segunda expressão sejam verdadeiras para que algo aconteça ou quando tanto faz se a primeira ou a segunda é verdadeira, contanto que uma delas seja verdadeira. No Scratch temos três operadores lógicos, o E, Ou e o Não. O Não é a negação de algo, por exemplo Não 1 é maior que 3. Se 1 é maior que 3 resulta em Falso, então a negação dele é Verdadeiro. Confuso neh?!!

Estruturas Condicionais

Com o que vimos até aqui podemos iniciar nas partes mais complicadas, as estruturas de condição e de repetição. As estruturas de condição ou desvios condicionais são baseadas na ideia de realizar alguma ação caso algo seja verdadeiro ou não. Por exemplo, ir ao trabalho de carro se estiver chovendo. Perceba que a palavra Se tem um papel importante, pois é nela que começa a condição. Este então é o principal comando desse tipo de estrutura.

No Scratch temos o Se <expressão> então e Se <expressão> então Senão. É possível ter comandos Se dentro de comandos Se, criando comandos aninhados. Infelizmente no Scratch não há um comando do tipo Escolha/Caso presente em na maioria das linguagens.

Estruturas de Repetição

Por fim, as estruturas de repetição são úteis quando se quer repetir alguma ação, como escrever 100 vezes no quadro a frase: Não devo atrapalhar a aula. Ou quando se quer contar até 10, parece estranho pois são números diferentes. Mas contar até 10 representa dizer um número e em seguida dizer o número anterior acrescido de 1 e fazer isso novamente até chegar no número 10. Percebe que estamos repetindo ações? Além disso, podemos usar repetição para repetir uma conjunto de ações infinitamente, como a execução de um jogo que só acaba quando você desliga o jogo.

No Scratch, temos os comandos Repita N vezes, Sempre e Repita até que. A partir de todo esse texto você consegue perceber que o Scratch é uma ótima ferramenta para iniciar os estudos em programação? Percebeu que é fácil entender sua estrutura, montar um código com seus blocos? E ensinar conceitos de lógica de programação? Tente aí e me diga o que acha.

Fim…

Aconselho a quem está lendo e que estão iniciando a abrirem o link das minhas aulas de Scratch e a acompanharem meus textos. Caso tenha gostado do Scratch sugiro o post Desenvolvendo o jogo Flappy Bird no Scratch onde desenvolvemos o jogo Flappy Bird, a animação abaixo mostra como ficou, e que foi baseado em outros tutoriais para criação do jogo Flappy Bird usando o Scratch, e, claro, passei isso para os alunos e eles perceberam o potencial não só da ferramenta, mas deles mesmos, isso com certeza foi motivador para eles.

Flappy Bird desenvolvido no Scratch.
Flappy Bird desenvolvido no Scratch.

Se você tiver alguma contribuição, dica de forma de ensino, de linguagem, software ou qualquer outra coisa que ajude os iniciantes em progrmação, por favor, deixe sua mensagem nos comentários, precisamos difundir ainda mais a área de tecnologia e programação.

--

--

Arthur Assuncao
Arthur Assuncao

Written by Arthur Assuncao

Mestre em Computação e Professor no IF Sudeste MG, esteve no Hackathon da Globo 2016 e publicou artigo na Sensors (A1). Entusiasta front-end, usando React e TS.

Responses (1)