Guia de depuração em sala de aula

Se estiver ensinando sobre programação a uma turma de alunos, é possível que eles procurem sua ajuda. Use as dicas abaixo para discutir as dúvidas dos alunos em grupo (ou seja, seja o "patinho de borracha" da turma, como costumamos dizer) — mesmo se você não for tão familiarizado com a programação.
O objetivo geral é ajudar os alunos a se tornarem melhores depuradores, para que eles possam ajudar uns aos outros quando não estiverem em sala de aula. Por trás de todo bom programador há um grande depurador. :-)
Quando eles não entenderem uma etapa do desafio:
  • Peça que os alunos leiam a etapa do desafio em voz alta.
  • Peça que os alunos vejam o código da dica e o comparem ao código deles.
  • Peça que eles expliquem o que seu código faz atualmente.
  • Incentive-os a testar algo e ver o que acontece.
  • Se eles se distanciarem demais do caminho certo, lembre-os de que é possível “Começar de novo”. Não deixe de pedir que eles leiam cada etapa com atenção na segunda tentativa.
  • Incentive os alunos a assistir novamente à discussão anterior ou ir diretamente para o final dela para ver o código final. Geralmente, ela é semelhante ao desafio. Peça que leiam esse código em voz alta e expliquem o que ele faz. Faça com que eles o alterem e veja se isso ajuda na compreensão.
Quando eles não entenderem a descrição de um projeto:
  • Peça que os alunos leiam cada etapa em voz alta e parem nas partes que eles não entendem.
  • Peça que eles leiam o código inicial, linha por linha, e expliquem o que cada uma delas faz. Se eles não entenderem algo, peça que verifiquem a documentação ou assistam novamente à discussão relevante.
  • Se você não puder ajudar, lembre-os de que é possível clicar em “Pedir ajuda”. Não deixe de pedir que os alunos façam suas perguntas de maneira descritiva.
Quando eles não entenderem uma mensagem de erro (“Ah, não!”):
  • Peça que os alunos leiam a mensagem em voz alta e expliquem o que acham que ela quer dizer.
  • Faça com que eles cliquem na opção “Mostre-me onde”, uma vez que ela, geralmente, indica a linha do erro. No entanto, essa opção não é sempre correta, portanto, o erro pode ser uma linha anterior de código (não costuma ser uma linha posterior).
  • Se a mensagem de erro não fizer sentido e houver diversas mensagens, clique em todas elas para ver se outras mensagens são compreensíveis.
  • Incentive-os a melhorar o recuo de seus códigos (assista a Código legível para ver uma explicação sobre o assunto). Especialmente se estiverem lidando com funções, laços for ou condições if, um recuo adequado poderá facilitar a localização de erros com colchetes incompatíveis e erros de lógica.
Quando eles não entenderem o que o código ou código inicial faz:
  • Peça que verifiquem linha por linha e expliquem o que eles acham que cada uma delas faz.
  • Faça com que verifiquem a documentação de toda palavra-chave/função/variável global que não entenderem. Clique nas opções disponíveis para ver o exemplo e peça que os alunos expliquem o que ele faz. Eles podem tentar alterar o programa de exemplo
  • Incentive-os a usar println() para gerar os valores de variáveis. São os valores que eles esperavam? Se a resposta for negativa, por que não são? Talvez os alunos precisem analisar melhor no papel ou usar a opção println() para gerar outros valores para entender a causa.
Quando eles acreditarem terem feito uma etapa do desafio corretamente, mas não conseguirem passar por ela:
  • É possível que o código do aluno seja uma solução correta e que o avaliador automático não a conheça. Nesse caso, clique em “Denunciar um problema” e peça que o aluno prossiga nas demais atividades.
Que outras técnicas de depuração você usa em sala de aula? Conte-nos logo abaixo!
<div class="callout">Se você estiver usando nosso currículo de programação em sala de aula, recomendamos que se inscreva no nosso blog, para ter acesso às últimas atualizações, e envie um e-mail para compsci-feedback@khanacademy.org com suas histórias e comentários. Obrigado!</div>