Voltar para Computação Ensino Médio 2º EM Ano
EM13CO04Computação Ensino Médio · 2º EM Ano · Ensino Médio

Reconhecer o conceito de metaprogramação como uma forma de generalização na construção de programas, permitindo que algoritmos sejam entrada ou saída para outros algoritmos.

CE

Escrito pela equipe pedagógica do Profez

Conteúdo revisado por professores com experiência em sala de aula · Atualizado para 2026

Olha, essa habilidade EM13CO04 da BNCC, de reconhecer o conceito de metaprogramação, parece um bicho de sete cabeças, mas não é tanto assim quando a gente traz pra prática. Metaprogramação, do jeito que eu vejo, é como se a gente estivesse brincando de fazer um programa que entende outros programas. É tipo ensinar o computador a criar ou modificar outros programas por conta própria. Então, quando o aluno entende isso, ele consegue não só escrever um código que resolve um problema, mas também criar um código que pode criar outros códigos. É meio doido pensar assim, mas é genial também.

Pra galera do 1º EM, primeiro a gente faz uma conexão com o que eles já viram. No ano passado, na 9ª série, eles aprenderam bastante sobre algoritmos básicos, condições e loops. Aí agora eu pego esse conhecimento e digo: "Beleza, vocês sabem programar um loop que faz alguma coisa repetidas vezes. Agora imagina que esse loop pudesse não só repetir, mas também alterar as instruções dependendo do que ele encontra no caminho!" Isso começa a abrir a cabeça deles pro conceito de metaprogramação.

Vamos para as atividades que eu faço na sala de aula. A primeira atividade que eu gosto de fazer é a "Caixa Misteriosa de Códigos". Eu uso uma caixa mesmo, tipo caixa de sapato. Coloco dentro dela cartões com fragmentos de código simples que eles já conhecem: loops, condições, funções. Divido a turma em pequenos grupos de 4 ou 5 alunos e cada grupo tem que sortear três cartões da caixa. A tarefa deles é combinar esses fragmentos de forma criativa para gerar um novo algoritmo que faz algo diferente. Isso leva mais ou menos uma aula inteira de 50 minutos. Os alunos costumam se empolgar, especialmente quando percebem que podem criar algo inesperado com trechos conhecidos. Teve um dia que a Júlia e o Pedro ficaram tão animados porque conseguiram criar um joguinho simples com os cartões! Eles não paravam de rir e ficavam tentando mostrar pros outros grupos.

A segunda atividade é o "Desafio do Código Adaptável". Aqui eu peço para os alunos trabalharem individualmente no laboratório de informática da escola. Dou pra eles um algoritmo básico já pronto — pode ser algo tipo "calcular média de notas". A tarefa é expandir esse algoritmo pra que ele possa receber novas funções sem precisar ser completamente reescrito. Os alunos têm aproximadamente duas aulas pra trabalhar nisso porque exige mais raciocínio. Uso computadores e o Google Classroom pra eles submeterem as alterações. Na última vez que fizemos isso, o Tiago conseguiu aplicar uma lógica onde o programa não só calculava médias como também gerava gráficos simples das notas automaticamente. Fiquei impressionado com a criatividade dele!

A terceira atividade é o "Debate: O Futuro dos Algoritmos Autônomos". Aqui não tem código envolvido diretamente, mas é importantíssimo pros alunos entenderem o impacto dessas tecnologias no mundo real. Divido a sala em dois grupos e cada grupo precisa defender uma posição: um lado defende os benefícios e o outro os desafios/risco dos algoritmos autônomos no futuro. Aí rola aquele debate acalorado ao longo de uma aula inteira, uns 50 minutos também. Os materiais são simples: papel e caneta pra anotar as ideias principais e um projetor pra mostrar vídeos curtos inspiradores sobre IA e metaprogramação antes de começar. Da última vez, a Ana surpreendeu todo mundo defendendo super bem os desafios éticos desses algoritmos no dia a dia.

No final das contas, quando você vê os meninos discutindo e aplicando esses conceitos na prática é que percebe o quão importante é essa habilidade da BNCC. Não é só sobre aprender a programar melhor; é sobre preparar eles pra interagir de forma crítica e criativa com as tecnologias que estão moldando o nosso futuro.

Bom, é isso aí pessoal! Espero que essas ideias ajudem vocês aí nas suas salas de aula também! Sempre bom ouvir as histórias e dicas de outros professores por aqui. Valeu!

Pra galera entender de verdade essa coisa de metaprogramação, não é só passar na prova, né? Eu fico de olho nos meninos quando eles estão fazendo as atividades em grupo ou mesmo quando tão batendo papo entre uma atividade e outra. Olha, o que eu mais gosto é quando vejo um aluno explicando pro outro. Aí sim você percebe se o aluno pegou a ideia. Tipo assim, teve um dia que o João tava explicando pra Paula o que ele fez com um código que escrevia outros códigos. Ele falou algo tipo "se você mudar só essa linha aqui, ele vai gerar uma coisa completamente diferente". E a Paula tava ali, prestando atenção, fazendo perguntas e tudo. Nessa hora eu pensei "ah, esse entendeu".

Outra coisa é quando tô circulando pela sala e escuto as conversas. Eu tento sempre escutar mais do que falo, porque aí você pega aqueles momentos em que eles tão discutindo soluções. A Maria uma vez tava conversando com a Ana sobre como fazer um código que cria códigos baseados em regras que elas definiram juntas. Aí ela soltou um “não é só fazer o que a gente quer agora, mas pensar no que a gente vai querer depois”. Quando eles começam a pensar no futuro do código, no potencial dele, é porque entenderam mesmo.

Agora, quanto aos erros mais comuns, nossa senhora! Um que vejo direto é o pessoal confundindo metaprogramação com simplesmente automação. O Pedro, por exemplo, uma vez veio todo empolgado mostrar um código que ele achava ser metaprogramação, mas era só um script automatizando tarefas do computador. Ele sacou o erro quando expliquei que metaprogramação é mais sobre o código tomar decisões sobre outros códigos. Eu gosto de dar uns exemplos simples pra corrigir isso na hora: "Pedro, pensa num código que decide se vai criar um aplicativo ou outro baseado nos dados que analisa".

E tem também aquele erro clássico de esquecer de considerar todas as possíveis entradas do programa. A Ana, coitada, ficou perdidinha quando o programa dela começou a dar erro com certas entradas que ela não tinha previsto. Aí a gente parou tudo e eu perguntei como ela poderia ajustar o programa pra lidar com qualquer tipo de dado. Acho importante fazer eles pensarem antes de dar a resposta.

Sobre o Matheus e a Clara, olha, cada um tem seu jeitinho e a gente tem que adaptar. O Matheus tem TDAH e ele costuma perder a atenção rapidinho se a atividade é muito longa ou repetitiva. Pra ele, costumo dividir as tarefas em partes menores e mais objetivas. Tipo assim, ao invés de uma atividade de uma hora toda de uma vez, eu faço blocos de 15 minutos com pausas entre eles pra ele mexer com alguma coisa diferente. E sempre deixo ele usar fones com música instrumental meio baixa, porque ajuda ele a focar melhor.

Já a Clara tem TEA e ela precisa de uma estrutura bem clara na aula. Isso significa ter cronograma à vista e bem descrito do começo ao fim da aula. E tem que estar sempre bem visível. Pro material da Clara, eu uso muitas figuras e fluxogramas porque ela entende melhor visualmente. E descobri que ela gosta muito do Scratch pra entender lógica de programação porque é bem visual e menos texto.

O que não deu certo foi tentar usar muito trabalho em grupo sem preparar os alunos antes pra incluir o Matheus e a Clara adequadamente nas atividades. A Clara ficava meio perdida quando o pessoal começava a falar rápido demais e o Matheus simplesmente se dispersava. Então aprendi que preciso designar tarefas específicas pra eles dentro do grupo pra garantir que façam parte sem perder o foco ou ficar confusos.

Bom, gente, é isso aí. Ensinar pode ser complicado às vezes, mas quando você vê aquele brilho nos olhos dos alunos ao entenderem algo complexo como metaprogramação, vale muito a pena! E adaptar nossas estratégias pros diferentes alunos é parte desse processo tão gratificante. Tamo junto nessa missão! Até a próxima!

Gere materiais prontos para esta habilidade

Plano de aula, lista de exercícios ou avaliação — tudo com o código EM13CO04 incluído.

Criar material em 30 segundos

Grátis para começar. Sem cartão.