← Planos de aula
📋 Plano de aula

Reaproveitar, refinar e gerar código

Do problema grande às funções pequenas: refinamentos sucessivos, reúso de bibliotecas e um programa que escreve outro programa.

ComponenteComputação
AnoEnsino Médio
Duração2 aulas de 50 min

Metodologia ativa

Aprendizagem baseada em problemas

A turma recebe um problema grande demais para resolver de uma vez e só avança quebrando-o em partes, reaproveitando o que já existe e refinando cada parte até virar código.

Habilidades da BNCC

Objetivos de aprendizagem

Materiais

Desenvolvimento

Tempo total previsto: 100 minutos.

  1. 10 minO problema grande

    Proponha: “Criar um sorteador de grupos para a turma que não repete pessoas e equilibra os grupos”. Pergunte por onde começar. Registre as ideias sem organizar.

  2. 20 minRefinamentos sucessivos

    No quadro, decomponha em três níveis: objetivo geral, subtarefas (ler nomes, embaralhar, dividir, mostrar) e passos de cada subtarefa. Mostre que cada nível é uma abstração do de baixo.

  3. 25 minReaproveitar antes de escrever

    Em duplas, os estudantes implementam as subtarefas em Python usando funções prontas (random.shuffle, fatiamento de listas). Discuta: o que ganhamos ao reaproveitar? Quem escreveu essas funções? Como confiar nelas?

  4. 20 minUm programa que escreve programas

    Mostre um gerador simples: um programa que recebe uma lista de perguntas e gera o código de um quiz. Rode o código gerado. Explique que compiladores, interpretadores e assistentes de IA que geram código também são metaprogramação.

  5. 15 minMelhorar e generalizar

    Cada dupla generaliza sua solução (número de grupos como parâmetro) e troca com outra dupla, que tenta reaproveitar o código sem pedir explicação.

  6. 10 minFechamento

    Pergunta-chave: que parte do código foi mais fácil de reaproveitar e por quê? Registrem uma regra de bom reúso (nome claro, uma função faz uma coisa, parâmetros em vez de valores fixos).

Avaliação

Recolha o quadro de refinamento de cada dupla (três níveis completos) e o código final. Observe se a solução usa funções prontas, aceita parâmetros e foi reaproveitada pela outra dupla sem ajuda.

Acessibilidade e inclusão

Ofereça o esqueleto do código com lacunas para quem está começando a programar. Estudantes cegos podem usar leitor de tela com o editor de texto simples; as etapas de refinamento funcionam bem faladas e escritas em lista.

Materiais relacionados