Skip to content

Depuração e Teste de AlgoritmosAtividades e Estratégias de Ensino

Neste tópico, os alunos aprendem a corrigir erros em algoritmos, uma competência que exige prática ativa e reflexão constante. A depuração não é apenas uma tarefa técnica, é um processo de raciocínio lógico que melhora quando os alunos trabalham em colaboração, testando e discutindo soluções uns com os outros.

8° AnoInovação Digital e Pensamento Computacional4 atividades30 min45 min

Objetivos de Aprendizagem

  1. 1Analisar a eficácia de diferentes estratégias de depuração (pontos de paragem, impressão de valores) na identificação de erros lógicos e de sintaxe.
  2. 2Explicar a importância de testar algoritmos com conjuntos de dados diversos, incluindo casos limite e inválidos.
  3. 3Comparar os resultados de um algoritmo com saídas esperadas para diferentes entradas, identificando discrepâncias.
  4. 4Avaliar a robustez de um programa através da análise de um plano de testes e da sua cobertura de cenários de erro.
  5. 5Criar um conjunto de testes representativo para um algoritmo simples, prevendo potenciais falhas.

Pretende um plano de aula completo com estes objetivos? Gerar uma Missão

Parceria de Depuração: Caça ao Erro

Divida a turma em pares e forneça códigos com erros intencionais em Scratch. Cada par executa o código, identifica o erro usando pontos de paragem e corrige-o, registando os passos. Partilhem as soluções com a turma no final.

Preparação e detalhes

Analise diferentes técnicas de depuração para identificar a causa de um erro.

Sugestão de Facilitação: Durante a 'Parceria de Depuração: Caça ao Erro', peça aos alunos que troquem os seus códigos entre pares e sigam uma lista de verificação passo a passo para identificar erros lógicos.

Setup: Grupos organizados em mesas com os materiais do problema

Materials: Dossiê do problema, Cartões de funções (facilitador, relator, controlador de tempo, porta-voz), Folha de protocolo de resolução de problemas, Grelha de avaliação da solução

AplicarAnalisarAvaliarCriarCompetências RelacionaisTomada de DecisãoAutogestão
45 min·Pequenos grupos

Grupo de Testes: Plano de Casos

Em pequenos grupos, os alunos criam um algoritmo simples para ordenar números e desenvolvem 10 casos de teste, incluindo valores extremos. Executam os testes e ajustam o algoritmo com base nos resultados falhados.

Preparação e detalhes

Explique a importância de testar um algoritmo com diferentes conjuntos de dados.

Sugestão de Facilitação: No 'Grupo de Testes: Plano de Casos', incentive os grupos a discutirem casos limite antes de definirem os seus planos de teste, garantindo que consideram cenários inválidos.

Setup: Grupos organizados em mesas com os materiais do problema

Materials: Dossiê do problema, Cartões de funções (facilitador, relator, controlador de tempo, porta-voz), Folha de protocolo de resolução de problemas, Grelha de avaliação da solução

AplicarAnalisarAvaliarCriarCompetências RelacionaisTomada de DecisãoAutogestão
40 min·Pequenos grupos

Rotação de Estações: Técnicas de Debug

Crie estações com diferentes ferramentas de depuração: uma para print debugging, outra para execução passo a passo e outra para análise de pilha. Os grupos rotacionam, testando o mesmo algoritmo em cada estação e comparando resultados.

Preparação e detalhes

Avalie a eficácia de um plano de testes para garantir a robustez de um programa.

Sugestão de Facilitação: Na 'Rotação de Estações: Técnicas de Debug', coloque um erro sintático em cada estação e peça aos alunos que usem impressão de valores intermédios para o encontrar.

Setup: Grupos organizados em mesas com os materiais do problema

Materials: Dossiê do problema, Cartões de funções (facilitador, relator, controlador de tempo, porta-voz), Folha de protocolo de resolução de problemas, Grelha de avaliação da solução

AplicarAnalisarAvaliarCriarCompetências RelacionaisTomada de DecisãoAutogestão
35 min·Turma inteira

Classe Toda: Debug Colaborativo

Projete um algoritmo com múltiplos erros na sala. A turma discute hipóteses em conjunto, vota em testes e corrige iterativamente, registando o processo num quadro partilhado.

Preparação e detalhes

Analise diferentes técnicas de depuração para identificar a causa de um erro.

Sugestão de Facilitação: Na 'Classe Toda: Debug Colaborativo', atribua diferentes funções a cada aluno (ex: quem executa o código, quem regista erros, quem sugere correções) para promover a responsabilidade partilhada.

Setup: Grupos organizados em mesas com os materiais do problema

Materials: Dossiê do problema, Cartões de funções (facilitador, relator, controlador de tempo, porta-voz), Folha de protocolo de resolução de problemas, Grelha de avaliação da solução

AplicarAnalisarAvaliarCriarCompetências RelacionaisTomada de DecisãoAutogestão

Ensinar Este Tópico

Ensine depuração e teste como um processo cíclico: identificar um erro, criar um plano de teste, executar e refletir sobre os resultados. Evite mostrar soluções prontas e, em vez disso, guie os alunos a descobrirem os erros por si mesmos. A investigação mostra que a aprendizagem ativa nestes tópicos melhora significativamente a retenção de conceitos de lógica e resolução de problemas.

O Que Esperar

No final destas atividades, espera-se que os alunos consigam identificar erros em algoritmos, planear testes exaustivos e justificar as suas correções com base em evidências. Os alunos demonstram compreensão ao explicar como diferentes técnicas de debug contribuem para a robustez do código.

Estas atividades são um ponto de partida. A missão completa é a experiência.

  • Guião completo de facilitação com falas do professor
  • Materiais imprimíveis para o aluno, prontos para a aula
  • Estratégias de diferenciação para cada tipo de aluno
Gerar uma Missão

Atenção a estes erros comuns

Erro comumDurante a 'Parceria de Depuração: Caça ao Erro', alguns alunos podem pensar que todos os erros são óbvios e visíveis na primeira leitura. A correção é: peça aos pares que executem o código com valores específicos e comparem os resultados esperados com os obtidos, destacando que erros lógicos muitas vezes só aparecem nestes testes.

O que ensinar em alternativa

Durante a 'Parceria de Depuração: Caça ao Erro', observe se os alunos estão a focar-se apenas em erros de sintaxe. Reoriente-os para usarem impressão de valores intermédios e execução passo a passo para revelar erros lógicos que não são visíveis a olho nu.

Erro comumDurante o 'Grupo de Testes: Plano de Casos', é comum os alunos assumirem que testar uma vez é suficiente. A correção é: peça aos grupos que apresentem os seus planos de teste e questione-os sobre a cobertura de casos limite, como valores negativos ou entradas vazias.

O que ensinar em alternativa

Durante o 'Grupo de Testes: Plano de Casos', peça aos alunos que troquem os seus planos entre grupos e avaliem se cobrem casos limite e inválidos, corrigindo a ideia de que um único teste é suficiente.

Erro comumDurante a 'Rotação de Estações: Técnicas de Debug', alguns alunos podem tentar 'adivinhar' o erro em vez de o isolar metodicamente. A correção é: forneça uma folha de acompanhamento onde os alunos registem cada passo da depuração, desde a impressão de valores até à correção final.

O que ensinar em alternativa

Durante a 'Rotação de Estações: Técnicas de Debug', observe se os alunos estão a saltar passos na depuração. Peça-lhes que preencham uma tabela com os valores impressos e as alterações que fizeram, reforçando a necessidade de um método sistemático.

Ideias de Avaliação

Verificação Rápida

Durante a 'Parceria de Depuração: Caça ao Erro', apresente um pequeno trecho de código com um erro lógico (ex: uma condição `if` que nunca é verdadeira). Peça aos alunos que descrevam, em duas frases, como usariam a impressão de valores intermédios para encontrar o erro.

Bilhete de Saída

Após a 'Classe Toda: Debug Colaborativo', entregue a cada aluno um cartão com um cenário de teste (ex: 'introduzir um número negativo onde se espera um positivo'). Peça-lhes para escreverem qual o tipo de erro que este teste poderia ajudar a detetar e qual seria a saída esperada se o algoritmo funcionasse corretamente.

Questão para Discussão

Durante o 'Grupo de Testes: Plano de Casos', coloque a seguinte questão para discussão em grupo: 'Porque é que testar um algoritmo apenas com dados 'normais' não é suficiente? Que tipos de dados adicionais devemos considerar e porquê?' Peça aos alunos que justifiquem as suas respostas com exemplos.

Extensões e Apoio

  • Peça aos alunos que criem um 'diário de depuração' onde registam os erros que encontraram, as técnicas que usaram e os resultados obtidos, para refletirem sobre o seu progresso ao longo do tempo.
  • Para alunos com dificuldades, forneça um algoritmo com erros marcados e peça-lhes que identifiquem o tipo de erro (sintaxe, lógica ou semântica) antes de tentarem corrigi-lo.
  • Proponha um desafio em que os alunos tenham de depurar um algoritmo que aceita dados em formato inválido (ex: texto em vez de número) e explicar como o tornariam robusto.

Vocabulário-Chave

Depuração (Debugging)O processo de identificar e remover erros (bugs) num algoritmo ou programa de computador.
Erro de SintaxeUm erro na estrutura ou gramática do código que impede a sua execução, como uma palavra-chave mal escrita ou um parêntese em falta.
Erro LógicoUm erro que faz com que o programa funcione, mas produza resultados incorretos ou inesperados devido a um raciocínio falho no algoritmo.
Ponto de Paragem (Breakpoint)Um marcador colocado num programa que instrui o depurador a pausar a execução nesse ponto específico para inspeção de variáveis.
Execução Passo a Passo (Stepping)A capacidade de executar um programa linha a linha ou instrução a instrução para observar o fluxo de controlo e o estado das variáveis.
Caso Limite (Edge Case)Uma entrada de dados extrema ou incomum que pode causar problemas num algoritmo, como o valor mínimo ou máximo permitido.

Preparado para lecionar Depuração e Teste de Algoritmos?

Gere uma missão completa com tudo o que precisa

Gerar uma Missão