Ensinar as crianças a programar

Oi Meu nome é Michael Kapelko. Desenvolvo software profissionalmente há mais de 10 anos. Os últimos anos foram dedicados ao iOS. Eu desenvolvo jogos e ferramentas de desenvolvimento de jogos no meu tempo livre.


Visão geral


Hoje, quero compartilhar minha experiência de ensinar crianças a programar. Vou discutir os seguintes tópicos:


  • organização do processo de aprendizagem
  • plano de aprendizagem
  • jogo da memória
  • ferramentas de desenvolvimento
  • lições
  • resultados e planos

Organização do processo de aprendizagem


O processo de aprendizado é conduzido como parte da responsabilidade social corporativa: uma empresa fornece um ambiente com equipamentos e conecta funcionários que desejam se dedicar ao papel de professores com funcionários que desejam que seus filhos sejam educados. Tudo isso é feito voluntariamente.


Os professores em potencial são divididos em grupos para que cada grupo contenha três professores: um experiente e dois novatos. Esse grupo de três professores lidera um grupo de estudantes. Os alunos são divididos em grupos por idade e habilidades.


Eu participei do programa como professor pela segunda vez em 2018. As crianças tinham cerca de dez anos de idade. Nosso grupo esteve ativo de outubro a dezembro de 2018 todos os sábados, das 10h às 12h. Usando minha posição como professora, também trouxe minha esposa como estudante.


Plano de aprendizagem


Na primeira vez em que participei do programa, nosso grupo ensinou as crianças sem pensar: estávamos desenvolvendo tarefas simples para explicar diferentes operadores. No final do curso, não tínhamos nada concreto para avaliar, analisar e compartilhar.


Nesta segunda vez, decidi que vamos criar um jogo de memória com crianças. Decidi considerar o curso bem-sucedido se, no final do curso, cada criança fosse capaz de criar um jogo de memória simples do zero em uma hora.


Para conseguir isso, estávamos recriando o mesmo jogo do zero a cada lição. Gostaria de enfatizar que não usamos contas pessoais para salvar o progresso. Nossa tarefa era salvar a habilidade de criação de jogos na cabeça, não em um PC.


Jogo da memória


Vamos ver o que é o jogo da memória.


1) No caso mais simples, temos 16 cartões, apenas 8 deles são únicos, o restante 8 são duplicados dos únicos.



Como você pode ver, só temos duas cartas com um gato, apenas duas cartas com um cachorro, etc.


2) No início, embaralhamos as cartas e as colocamos com o rosto voltado para baixo.



3) O primeiro jogador joga um par de cartas.



4) Se as cartas diferirem, são novamente viradas para baixo.



5) O próximo jogador vira outro par de cartas.



6) Se os cartões forem iguais, eles serão removidos do campo.



O objetivo do jogo é remover todas as cartas do campo. Não há competição aqui, então o jogo pode ser jogado sozinho.


Por um lado, o jogo da memória é bastante simples. Por outro lado, a implementação do jogo requer funcionalidade essencial que cada jogo mais ou menos complexo possui:


  • criação de itens
  • arranjo de itens
  • seleção de itens
  • comparação de itens
  • remoção de itens correspondentes

Ferramentas de desenvolvimento


Usamos o Scratch como nossa ferramenta de desenvolvimento. O Scratch é uma ótima ferramenta para ensinar as crianças a programar, porque cada ação, cada operação é representada graficamente.


Por exemplo, você pode girar um gato 360 graus em 1 segundo usando o seguinte script:



Veja como fica em ação:



Eu gostaria de enfatizar que o Scratch é uma solução bastante bem-sucedida para representar código graficamente. Por exemplo, uma solução paga da SAP usa um conceito semelhante de cubos para programar a lógica:



Os usuários podem inserir valores apenas em campos predefinidos. Se os usuários desejam mais funcionalidade, precisam recorrer a scripts.


Pessoalmente, nunca presenciei uma desaceleração no Scratch e havia muitos na solução da SAP.


A primeira lição


A primeira lição foi introdutória, não usamos PCs.


O plano era:


  1. Conheça
  2. Jogue o jogo da memória com cartões
  3. Aprenda o conceito de algoritmo
  4. Detalhe o algoritmo do jogo
  5. Analise a lição

1) Reunião


Professores e alunos estão em círculo. Isso iguala todos e faz de todos um membro da equipe.


O primeiro membro da equipe diz seu nome e por que ele decidiu fazer o curso. O segundo membro da equipe e o resto primeiro repetem o nome e a história de cada membro anterior antes de contar seus próprios nomes e histórias.


Veja como fica:


  1. John: "Meu nome é John, vou estudar Scratch porque meu pai me obriga a"
  2. Alex: "Este é John, ele está fazendo Scratch porque seu pai quer que ele faça. Meu nome é Alex, e este é meu quarto ano com Scratch"
  3. Ann: "Esse é John, os pais dele o obrigam a fazer Scratch. Este é Alex, ele é um veterano em Scratch. E eu sou Ann, uma professora iniciante, então vou aprender junto com todos vocês"

Esse formato de reunião tem os seguintes objetivos:


  • Conhecendo um ao outro
    • Cada membro da equipe deve conhecer outros membros da equipe pelo nome
  • Espaço comum
    • Todo mundo está no círculo, não em uma mesa de trabalho, isso evita a distração das crianças pelos jogos para PC
  • Igualdade
    • Professores e alunos estão no mesmo círculo, isso iguala todos como um membro da equipe sem hierarquia
  • Atenção
    • Cada membro da equipe deve ouvir atentamente para poder repetir corretamente o que os outros disseram
  • Comentários
    • Cada membro da equipe deve ser o mais claro possível ao expressar pensamentos, caso contrário ninguém seria capaz de repeti-los
  • Diversão
    • Problemas de memorização produzem muitas risadas

2) jogo da memória com cartões


  1. Pegue 8 pares das mesmas cartas em dois baralhos
  2. Coloque as cartas na grade 4 x 4, com a face para baixo
  3. Os alunos se levantam em torno da mesa
  4. Cada aluno, um por um, vira um par de cartas
    4.1 Se os cartões coincidem, eles são retirados do campo
    4.2 Se as cartas diferirem, são novamente viradas para baixo

Os alunos estão ansiosos para jogar jogos de mesa. Durante o jogo, os professores dizem em voz alta cada passo do algoritmo do jogo.


Depois de algumas partes, é hora de descobrir o que é o algoritmo.


3) O conceito de algoritmo


  1. Peça aos alunos primeiro, ouça-os para descobrir seu nível
  2. Corrija o que os alunos dizem se estavam perto de uma resposta esperada
  3. Peça aos alunos que escrevam um algoritmo para mover um homem do estado "fica do lado de fora de uma sala" para "senta e trabalha em um PC"

Os alunos gostam de ir ao quadro-negro e escrever, por isso pedimos a cada aluno que escreva uma única etapa do algoritmo de cada vez. O aluno mais ativo deve executar o algoritmo seguindo-o estritamente.


4) O algoritmo do jogo


Peça aos alunos que componham o algoritmo do jogo. Mais uma vez, deixe os alunos chegarem ao quadro-negro e adicionar uma etapa do algoritmo de cada vez. Quando o algoritmo estiver pronto, jogue o jogo com cartas mais uma vez. Agora, cada aluno deve dizer a etapa do algoritmo que ele executa.


Veja como fica:


  1. John: "Coloque 16 cartas viradas para baixo"
  2. Alex: "Vire um par de cartas"
  3. Paulo: "Se as cartas diferirem, vire-as novamente para baixo"
  4. Dan: "Vire outro par de cartas"
  5. Mike: "Se as cartas coincidirem, tire-as do campo"

5) Analise a lição


É isso para a primeira lição. Os professores finalmente têm tempo para discutir a lição: discuta as crianças, abordagens para crianças tímidas e ativas, planeje as próximas lições.


Tivemos as seguintes decisões:


  1. Organize os alunos de modo que os ativos fiquem ao lado dos tímidos como "ativo-tímido-ativo-tímido-etc", para que não terminemos com dois grupos de estudantes tímidos e ativos em lados diferentes de uma sala, o que prejudicaria a produtividade .
  2. Aceite apenas respostas precisas dos alunos porque os alunos ativos gostam de se esquivar, o que dificulta a disciplina.

A segunda e a terceira lições


Estávamos começando cada lição com a mesma reunião: nos levantaríamos em círculo, contaríamos nossos nomes e o que fizemos. Quem não fez nada deveria ter dito o porquê. Assim como antes, todos devem primeiro repetir o que os membros anteriores da equipe disseram.


Passamos a segunda lição para criar requisitos para um item do campo de jogo e depois criar o item no Scratch. Isso foi moderadamente bem-sucedido.


Passamos a terceira lição tentando criar 16 itens e organizá-los em uma grade 4x4. Falhamos miseravelmente porque não conseguimos explicar o sistema de coordenadas para os alunos. Tornou-se evidente que os planos de aula eram apenas planos, a realidade tinha suas próprias demandas.


Vimos duas maneiras de abordar o problema:


  1. Continue estudando o sistema de coordenadas com risco de não terminar o jogo até o final do curso
  2. Alterar os requisitos do jogo para que o sistema de coordenadas não seja necessário

Fizemos o segundo caminho porque, afinal, não somos uma escola, nosso objetivo era ensinar as crianças a criar o jogo, ou seja, usar habilidades na prática, não na teoria. Por isso, substituímos a grade 4x4 por um círculo de 16 itens.


Esta solução brilhou alguns pensamentos na minha cabeça:


  1. Muitas vezes, é possível encontrar um caminho mais simples para resolver um problema
  2. Esse caminho é mais simples de entender, embora menos flexível
  3. Pode-se seguir o caminho mais difícil para aumentar a flexibilidade muito mais tarde, quando se tornar absolutamente necessário
  4. A simplificação aproxima a pessoa do objetivo, a complexificação aproxima a pessoa na direção oposta

A quarta e o restante das lições


A quarta lição marcou o fim de apresentar os requisitos em sala de aula, porque isso começou a levar muito tempo. Escolhemos mais a prática do que a teoria para cumprir o prazo. Desta vez, todos os requisitos foram conduzidos antes da lição. Ainda assim, ninguém os leu.


Passamos a quarta e a quinta lições para criar 16 itens em círculo, selecionar um par de itens e combiná-los.


Começamos a recriar o jogo completo do zero na sexta lição. Cada vez que os alunos recriavam o jogo completo cada vez mais rápido. Na oitava lição, introduzimos uma tabela de classificação para acompanhar a rapidez com que cada aluno recria uma parte específica do jogo.


A última lição


Quando a última lição se aproximou, todos foram capazes de criar o jogo da memória do zero, mais ou menos independentemente, em duas horas.


Aqui está o placar da última lição (os nomes estão ocultos):



A tabela de classificação está em russo, e aqui estão as legendas traduzidas:


  • Nome
  • Círculo de itens
  • Seleção de pares
  • Ocultar tudo
  • Ocultar um par

Aqui você pode testemunhar a criação do jogo da memória do zero pelo aluno mais rápido: em apenas meia hora.



Resultados e planos


Os resultados superaram minhas expectativas:


  • três alunos chegaram em uma hora ou mais rápido
  • dois alunos chegaram em uma hora e meia ou mais rápido

Este ano, planejo fazer outra rodada da recreação de jogos da memória. No entanto, vou substituir o Scratch pelas ferramentas Opensource Game Studio: os alunos usarão as páginas Lua, Git e GitHub.



ATUALIZAÇÃO: Ensinar as pessoas a programar em 2019

Source: https://habr.com/ru/post/pt438320/


All Articles