
Muitas pessoas conhecem o Scratch – uma plataforma de programação para crianças, onde o aprendizado geralmente se concentra na criação de projetos criativos seguindo o princípio de "do simples ao complexo". No entanto, a abordagem "clássica" para o aprendizado de programação (variáveis → ramificações → loops → funções → estruturas → objetos → …) é difícil de aplicar no Scratch.
Entretanto, mudar a sequência do aprendizado dos conceitos (vamos chamá-los de conceitos) de programação estrutural, orientada a objetos e orientada a eventos, e escondê-los atrás de sprites coloridos e animações interativas, não significa que os conceitos não devam ser enfatizados. Especialmente se o objetivo for não apenas desenvolver habilidades criativas, mas também ensinar programação. Essa ideia eu procurei refletir em meu .
A primeira coisa com que um iniciante no Scratch se depara são os sprites. Embora não haja programação orientada a objetos propriamente dita no Scratch, os sprites podem ser considerados objetos. Nesta fase, o estudante vê que no programa pode haver muitos objetos, cujo comportamento é controlado por scripts externos a eles. Os sprites recebem comandos ou transmitem informações sobre seu estado quando solicitado, ou seja, a programação se resume a controlar objetos.
O segundo conceito que um jovem programador encontra imediatamente no Scratch é o de multithreading. Cada sprite pode ter vários scripts sendo executados ao mesmo tempo. Vários sprites também podem executar seus programas simultaneamente entre si. Na verdade, é mais complicado organizar a execução sequencial.


Já na primeira lição, não podemos evitar apresentar os loops. Caso contrário, o gato não irá muito longe. Nesta fase, a introdução acaba sendo intuitiva e superficial. Limitamos a ela os loops "repetir sempre" e "repetir ... vezes", que são mais fáceis de entender. O loop condicional é estudado em uma lição especialmente dedicada aos loops. Essa lição pressupõe conhecimento sobre expressões lógicas e variáveis.
Como o Scratch é uma plataforma orientada a eventos, é mais conveniente estudar os blocos de comandos condicionais antes de abordar variáveis. As condições podem ser baseadas em determinados eventos.

Na minha opinião, essa sequência é melhor, pois a cada aula apresentamos um mínimo de conceitos. E não são conceitos abstratos, mas vemos imediatamente sua utilidade prática.
Se começarmos estudando variáveis, é difícil demonstrar seu propósito e utilidade, já que antes não foram estudados os operadores condicionais, a entrada de dados e a geração de números aleatórios.
No Scratch, exceto por listas, o programador lida com três tipos de dados: números, strings e booleanos. E o tipo está vinculado ao valor e não à variável. Não é necessário converter strings em números e vice-versa. Strings não precisam ser colocadas entre aspas.
O bloco que retorna um valor lógico e que tem uma forma angular característica pode ser inserido em campos arredondados. O contrário não é verdade: onde se supõe uma expressão lógica, não se pode inserir uma variável comum.

O Scratch é projetado para que erros críticos não ocorram durante a execução. Provavelmente por isso, se você tentar usar uma string em uma operação aritmética, ela será substituída por zero (veja a primeira captura de tela).
O programador deve saber que as capacidades das linguagens de programação são ampliadas por bibliotecas. Ao trabalhar no Scratch, o aluno pode conectar complementos que introduzem novos comandos ao ambiente.

Funções no Scratch estão localizadas na seção "Outros blocos", onde você, por um lado, cria seu próprio bloco que pode ser inserido em outros scripts. Por outro lado, deve-se reunir a funcionalidade desse bloco, ou seja, o que ele fará.

Não há retorno de valores de uma função do Scratch.
Assim, o estudo dos conceitos de programação em um ambiente orientado a eventos deixa sua marca. Na verdade, primeiro estudamos conceitos mais complexos e abstratos e, ao aprofundar no processo, passamos para os elementos da programação estruturada. Se isso é um ponto positivo ou negativo para o primeiro contato é uma questão controversa.
Fonte: habr.com
