Skip to content
TIC · 9.º Ano

Ideias de aprendizagem ativa

Ciclos de Repetição: For e While

Os ciclos de repetição 'for' e 'while' exigem que os alunos visualizem a execução do código passo a passo, algo que a aprendizagem ativa concretiza através de simulações e exemplos práticos. Esta abordagem permite-lhes testar hipóteses em tempo real, tornando abstratos conceitos como condições de paragem ou limites de iteração mais tangíveis e significativos.

Aprendizagens EssenciaisDGE: 3o Ciclo - Algoritmia e Programação
25–50 minPares → Turma inteira4 atividades

Atividade 01

Comparação em Pares: For vs While

Os pares recebem o mesmo problema, como somar números numa lista, e implementam uma versão com 'for' e outra com 'while'. Discutem vantagens e desvantagens de cada ciclo. Partilham soluções com a turma.

Em que situações um ciclo 'for' representa uma escolha mais adequada do que um ciclo 'while', e o que revela essa escolha sobre a natureza do problema?

Sugestão de FacilitaçãoDurante a 'Comparação em Pares: For vs While', peça aos alunos para reescreverem um exemplo dado em ambas as estruturas, destacando as semelhanças e diferenças nos seus fluxos de execução.

O que observarApresente aos alunos dois pequenos trechos de código, um com um ciclo 'for' e outro com um ciclo 'while', ambos a resolver problemas semelhantes. Peça-lhes para escreverem qual ciclo é mais adequado para cada problema e justificar a sua escolha em uma frase.

RecordarCompreenderAplicarAnalisarAutogestãoCompetências Relacionais
Gerar Aula Completa

Atividade 02

Rotação por Estações45 min · Pequenos grupos

Caça ao Erro: Detetar Loops Infinitos

Em pequenos grupos, os alunos analisam cinco códigos com erros comuns em ciclos. Identificam loops infinitos, propõem correções e testam em simulador. Registam padrões de erros.

Como é que um programador decide quando um ciclo terminou sem que se torne ineficiente ou, pelo contrário, infinito?

Sugestão de FacilitaçãoNa 'Caça ao Erro: Detetar Loops Infinitos', forneça aos alunos trechos de código com loops intencionalmente mal estruturados e peça-lhes para simularem mentalmente a execução antes de alterarem o código.

O que observarMostre um trecho de código com um loop infinito intencional (ex: 'while True: pass'). Pergunte aos alunos: 'O que acontece se este código for executado? Como poderíamos corrigir isto para que ele termine?'

RecordarCompreenderAplicarAnalisarAutogestãoCompetências Relacionais
Gerar Aula Completa

Atividade 03

Rotação por Estações25 min · Turma inteira

Simulação Unplugged: Processar Sequências

A turma simula um ciclo 'for' contando objetos em fila e um 'while' aguardando uma condição, como 'parar ao vermelho'. Rotacionam papéis de executor e observador.

Que impacto tem um ciclo infinito não intencional no comportamento de um sistema, e por que é tão difícil de detetar em tempo de execução?

Sugestão de FacilitaçãoNa 'Simulação Unplugged: Processar Sequências', use objetos tangíveis como cartões ou passos físicos para representar iterações, facilitando a transição para o pensamento abstrato.

O que observarColoque a seguinte questão para discussão em pequenos grupos: 'Imaginem que estão a criar um programa para contar o número de estrelas numa imagem. Que tipo de ciclo usariam e porquê? Que problema poderia surgir se a condição de término não fosse bem definida?'

RecordarCompreenderAplicarAnalisarAutogestãoCompetências Relacionais
Gerar Aula Completa

Atividade 04

Rotação por Estações50 min · Individual

Projeto Individual: Automatizar Tarefa

Cada aluno cria um programa com 'for' e 'while' para processar dados, como validar idades numa lista. Testa e refina autonomamente antes de partilhar.

Em que situações um ciclo 'for' representa uma escolha mais adequada do que um ciclo 'while', e o que revela essa escolha sobre a natureza do problema?

Sugestão de FacilitaçãoNo 'Projeto Individual: Automatizar Tarefa', incentive os alunos a documentarem as suas decisões de design, incluindo porque escolheram um ciclo específico e como evitaram potenciais loops infinitos.

O que observarApresente aos alunos dois pequenos trechos de código, um com um ciclo 'for' e outro com um ciclo 'while', ambos a resolver problemas semelhantes. Peça-lhes para escreverem qual ciclo é mais adequado para cada problema e justificar a sua escolha em uma frase.

RecordarCompreenderAplicarAnalisarAutogestãoCompetências Relacionais
Gerar Aula Completa

Algumas notas sobre lecionar esta unidade

O ensino deste tópico beneficia de uma abordagem progressiva: começa-se com exemplos simples e concretos, como percorrer uma lista de compras ou contar passos, antes de introduzir problemas mais complexos que exijam condições variáveis. Evite apresentar os ciclos como regras isoladas; em vez disso, relacione-os com situações do quotidiano dos alunos, como validar senhas ou contar moedas. Pesquisas mostram que a combinação de simulações físicas com codificação prática reduz significativamente a ocorrência de loops infinitos entre principiantes.

Os alunos demonstram compreensão ao escolher corretamente entre um ciclo 'for' ou 'while' para resolver problemas dados, explicando a sua decisão com base na previsibilidade do número de iterações ou na natureza da condição de paragem. Observa-se também a capacidade de identificar e corrigir loops infinitos em exemplos práticos.


Atenção a estes erros comuns

  • Durante a 'Comparação em Pares: For vs While', os alunos podem pensar que ambas as estruturas são intercambiáveis.

    Peça aos pares para analisarem dois problemas idênticos resolvidos com 'for' e 'while' respetivamente, identificando como a condição de paragem afeta a execução. Durante a discussão, peça-lhes para reescreverem um exemplo usando a estrutura oposta e observarem as consequências.

  • Durante a 'Caça ao Erro: Detetar Loops Infinitos', os alunos podem atribuir loops infinitos apenas a erros de digitação.

    Peça aos alunos para simularem mentalmente a execução do código passo a passo, usando lápis e papel para traçar o fluxo de execução antes de executarem o código no computador. Destaque como uma condição como 'while x != 0' pode tornar-se infinita se 'x' nunca for atualizado dentro do loop.

  • Durante o 'Projeto Individual: Automatizar Tarefa', os alunos podem sobrevalorizar o 'while' por considerarem que é mais flexível.

    Peça aos alunos para refletirem sobre os riscos de usar 'while' em tarefas com limites conhecidos (ex: processar uma lista de 10 itens). Durante a revisão do projeto, questione-os sobre como poderiam garantir que o loop termina, mesmo em casos inesperados.


Metodologias usadas neste resumo