Olá. Meu nome é Mikhail Kapelko. Estou envolvido no desenvolvimento profissional de software há mais de 10 anos. Destes, os últimos anos estão associados ao iOS. No meu tempo livre, desenvolvo jogos e ferramentas para sua criação.
Revisão
Hoje, quero falar sobre minha experiência no ensino de programação infantil, em particular, consideraremos:
- organização do processo de aprendizagem
- programa de treinamento
- jogo da memória
- ferramenta de programação
- as lições
- resultados e planos
Organização do processo de aprendizagem
O treinamento ocorre como parte da responsabilidade social do negócio: a empresa fornece equipamentos às instalações e também une os funcionários que desejam experimentar a si mesmos como professores, com os funcionários que desejam educar seus filhos. Tudo isso é exclusivamente de forma voluntária.
Os professores em potencial são divididos em grupos para que um grupo de três professores seja composto por um experiente e dois recém-chegados. Um grupo de professores lidera um grupo de estudantes. Os alunos são divididos por idade e habilidade.
Em 2018, pela segunda vez, participei de um programa de treinamento para crianças com cerca de dez anos. Nosso grupo trabalhou de outubro a dezembro de 2018 aos sábados, das 10h às 12h. Aproveitando minha posição oficial, também arrastei minha esposa para os cursos.
Programa de treinamento
Quando participei pela primeira vez, nosso grupo ensinou as crianças a programar sem rumo: criamos tarefas simples para a lição, para explicar os operadores. Como resultado, no final do treinamento, não tínhamos nada concreto para avaliar, o que nos gabar e o que analisar.
Na segunda vez, decidi que meus filhos e eu implementaríamos o chamado jogo da memória. Como critério para o sucesso do treinamento, determinei a seguinte condição: no final do curso, cada aluno cria independentemente um jogo de memória simples do zero em 1 hora.
Para atingir esse critério, decidi verificar a afirmação “Repetição é a mãe da aprendizagem”, por isso criamos tudo do zero a cada lição. Enfatizo que não salvamos nada na conta dos alunos. A tarefa era preservar a habilidade de criar um jogo na cabeça, não no computador.
Jogo da memória
Vejamos o que é um jogo de memória.
1) No caso mais simples, temos 16 cartas e apenas 8 são únicas, as 8 restantes são seus pares.

Na imagem apresentada, temos apenas duas cartas com um gato, um cachorro etc.
2) No início do jogo, embaralhamos as cartas e as colocamos com a face para baixo.

3) O primeiro dos participantes do jogo revela duas cartas.

4) Se os cartões forem diferentes, retorne-os à sua posição original: coloque-os com a face para baixo.

5) O próximo participante do jogo abre outro par de cartas.

6) Se as cartas coincidirem, remova-as do campo de jogo.

O objetivo do jogo é remover todas as cartas do campo. O jogo nesta forma não inclui competição, portanto você pode jogar uma pessoa.
Por um lado, o jogo da memória é bastante simples, por outro lado, a implementação do jogo afeta a funcionalidade básica necessária para criar qualquer jogo mais ou menos complexo:
- criando elementos
- sua colocação no campo
- seleção de itens
- comparando itens selecionados
- ocultar itens correspondentes
Ferramenta de programação
Como ferramenta, usamos o meio de rascunho . Ele é projetado para ensinar programação a crianças, para que cada ação, cada operador, seja representado graficamente.
Por exemplo, com o seguinte script, você pode girar um gato 360 graus por segundo:

Aqui está o resultado:

Observo que esta é uma solução bastante bem-sucedida para apresentar código graficamente. Por exemplo, uma solução paga, agora promovida pela SAP, envolve o uso dos chamados cubos para programação:

Aqui você só pode inserir os valores desejados nos campos obrigatórios. Se você precisar de algo fora do padrão, apenas o script ajudará, que é novamente apresentado com um cubo.
Por experiência pessoal, direi que a solução Scratch não diminui a velocidade, o que não pode ser dito sobre a solução SAP.
Primeira lição
A primeira lição foi introdutória, portanto não usamos computadores.
O plano era o seguinte:
- Conheça
- Jogue um jogo de memória
- Aprenda o conceito de um algoritmo
- Escreva um algoritmo de jogo
- Analise a lição
1) Conhecimento
Os professores com os alunos estão em círculo. Isso iguala a todos e faz com que todos sejam membros da equipe.
O primeiro participante chama seu nome e fala sobre por que ele decidiu participar deste curso. O segundo e os participantes subsequentes primeiro repetem o nome e a história de cada participante anterior, após o qual nomeiam o nome e contam.
Parece algo como isto:
- Vasya: "Meu nome é Vasya, quero aprender Scratch porque meu pai me fez"
- Dima: "Este é Vasya, papai o força a fazer Scratch. Meu nome é Dima, e este é meu quarto ano de Scratch"
- Olya: "Este é Vasya, seus pais o forçam. Este é Dima, ele é praticamente um veterano do Scratch. Meu nome é Olya, eu ensino desde o primeiro ano, estarei estudando com todo mundo."
Esse formato de namoro tem os seguintes objetivos:
- Conhecimento
- Cada membro da equipe deve saber pelo nome dos outros membros da equipe
- Espaço comum
- Todos os participantes do círculo, e não atrás de trabalhos, o que reduz a distração dos jogos no computador
- Igualdade
- Professores e alunos em um círculo, que equilibra todos como membros da equipe sem hierarquia
- Cuidado
- Cada membro da equipe deve ouvir atentamente o resto da equipe para repetir corretamente o que disse.
- Comentários
- Cada membro da equipe deve expressar seus pensamentos da maneira mais clara possível, caso contrário, o resto simplesmente não será capaz de repeti-lo.
- Diversão
- Problemas ao lembrar nomes fazem todo mundo rir
2) jogo de cartão de memória
- Pegamos dois baralhos e selecionamos 8 idênticos
- Colocamos as cartas em uma grade 4x4 com a face para baixo na mesa
- Os alunos estão em volta da mesa
- Cada aluno se revezam lançando um par de cartas
4.1 Se os cartões corresponderem, remova-os do campo
4.2 Se as cartas forem diferentes, vire-as com a face para baixo
Os alunos realmente gostam de jogar jogos de tabuleiro. Durante o jogo, os professores pronunciam o que está acontecendo.
Depois de algumas partes, passamos ao estudo do conceito de algoritmo.
3) O conceito de um algoritmo
- Primeiro pedimos aos alunos, damos a oportunidade de falar, descobrimos o nível de cada aluno
- Se necessário, corrija as afirmações se estiverem próximas da resposta esperada
- Sugerimos escrever um algoritmo para transferir uma pessoa do estado "do lado de fora da porta do escritório" para o estado "trabalhando no computador no escritório"
Os alunos realmente gostam de ir para o quadro e escrever nele, por isso chamamos cada aluno para escrever um parágrafo do algoritmo. Usamos o aluno mais ativo como executor de algoritmos.
4) O algoritmo do jogo
Sugerimos escrever um algoritmo de jogo, mais uma vez chamamos todos para adicionar um ponto no tabuleiro. Depois de completar a descrição do algoritmo, jogamos novamente com as cartas, mas desta vez, cada aluno deve pronunciar o passo do algoritmo.
Parece algo como isto:
- Vasya: "Estamos dobrando 16 cartas com a face para baixo"
- Dima: "Vire duas cartas"
- Paxá: "Se duas cartas forem diferentes, vire-as com a face para cima"
- Philip: "Virando duas cartas"
- Misha: “Se duas cartas coincidirem, remova-as do campo”
5) Análise da lição
Isso encerra a primeira lição, e os professores têm a oportunidade de discutir suas impressões sobre a lição e os alunos, desenvolver abordagens para acalmar pessoas e ativistas e concordar com planos adicionais para as próximas lições.
Tivemos as seguintes soluções:
- Plantar silêncio e ativistas através de um, a fim de manter um equilíbrio de barulho e silêncio. Caso contrário, um grupo de ativistas cria um centro da tempestade, e um grupo de silenciosos cria um centro do deserto, o que atrasa o processo de aprendizado.
- Exija precisão dos alunos ativistas gostam de fazer caretas, o que tem um efeito ruim na disciplina.
Segunda e terceira lições
Começamos as lições subseqüentes novamente com um aquecimento: nos levantamos em círculo, chamamos um nome e contamos quem fez o quê. E se você não fez, então por quê. Como antes, cada participante repetiu primeiro o que foi dito pelos anteriores e só depois falou sobre si mesmo.
Na segunda lição, criamos requisitos para um elemento do campo de jogo e tentamos criar esse elemento no Scratch. Foi completamente bem sucedido.
Na terceira lição, tentamos criar 16 elementos e organizá-los em uma grade 4x4. Aqui nós paramos, porque os alunos não conseguiam entender o sistema de coordenadas para organizar 16 elementos na grade. Tornou-se evidente que os planos de aula são apenas planos, e a realidade está fazendo suas mudanças.
Tínhamos duas maneiras de resolver o problema com o sistema de coordenadas:
- Continue ensinando o sistema de coordenadas com o risco de não ter tempo para criar um jogo antes do final do curso
- Altere os requisitos do jogo para que o sistema de coordenadas não seja necessário
Decidimos seguir o segundo caminho, porque ainda não somos uma escola e nosso objetivo era ensinar a criar um jogo, ou seja, aplicar conhecimento na prática, não na teoria. Portanto, decidimos substituir a grade 4 x 4 de elementos por um círculo de 16 elementos.
Essa decisão me levou às seguintes conclusões:
- Para resolver o problema, muitas vezes você pode encontrar uma maneira mais fácil.
- Esse caminho é mais fácil de entender, embora menos flexível.
- Você pode seguir um caminho difícil para aumentar a flexibilidade posteriormente, quando for realmente necessário.
- A simplificação se aproxima do objetivo final, a complicação se afasta dele
Quarta e subsequentes lições
A partir da quarta lição, cancelamos o estágio de redação dos requisitos, porque ela começou a pegar a maior parte da lição: voltamos a praticar, e não a teoria, para cumprir os prazos. Desta vez, todos os requisitos foram escritos com antecedência e emitidos "de cima". Mas ainda assim ninguém os leu.
A quarta e quinta lições que gastamos na criação de 16 elementos na forma de um círculo, selecionaram um par de elementos e verificaram sua coincidência.
Da sexta lição até a nona, inclusive, recriamos o jogo todas as vezes do zero. Cada vez que isso acontecia cada vez mais rápido, então, a partir da oitava lição, apresentamos uma classificação, onde registramos as etapas de criação do jogo e o tempo de cada aluno.
Última lição
Na última lição, todo mundo lidou com a criação de um jogo do zero de maneira mais ou menos independente em uma ou duas horas.
Esta é a classificação da última lição (os nomes estão ocultos):

E abaixo, você pode criar um jogo de memória no Scratch para o aluno que criou o jogo mais rápido: em 30 minutos.
Resultados e planos
O resultado do treinamento superou minhas expectativas:
- três alunos fazem em cerca de uma hora ou mais rápido
- dois em cerca de uma hora e meia ou mais rápido
Este ano, planejo realizar um treinamento não usando o Scratch, mas usando o kit de ferramentas Opensource Game Studio: os alunos trabalharão com as páginas Lua, Git e GitHub.

A versão em inglês do PS está disponível aqui
ATUALIZAÇÃO: um artigo sobre treinamento em 2019