Atividades sobre Programação com gabarito — 6º ano, 7º ano, 8º ano, 9º ano (EF69CO02)
AS
Alexandre Lombardi dos Santos 09 de setembro de 2026 8 min de leitura 50
Atividades de Programação com gabarito para trabalhar a habilidade EF69CO02 do 6º ao 9º ano. Veja propostas práticas, critérios de avaliação e seis questões comentadas para usar ou adaptar.
Outro dia recebi o planejamento do trimestre e lá estava: EF69CO02, com aquele texto oficial da BNCC que parece distante da realidade de quem tem turma na frente. Eu sei que, se eu não transformar aquilo em aula e em prova, a habilidade fica só no papel. Foi assim que comecei a montar uma sequência de atividades de programação que funcionasse com alunos do 6º ao 9º ano, sem depender de equipamento caro.
Neste texto eu divido o que aprendi nessa caminhada: o que a habilidade realmente pede, ideias de atividades que cabem numa sala comum, o que uma boa questão precisa cobrar e seis questões prontas com gabarito comentado. No fim, você encontra os caminhos para aprofundar.
O que a habilidade EF69CO02 pede, de verdade?
A BNCC descreve a habilidade assim:
Elaborar algoritmos que envolvam instruções sequenciais, de repetição e de seleção usando uma linguagem de programação.
Traduzindo para a linguagem da sala de aula: o aluno precisa saber escrever uma sequência de passos que o computador (ou uma pessoa fazendo o papel de computador) consiga executar sem ambiguidade. Essa sequência pode ter três tipos de instrução. A sequencial é a mais simples, em que um passo vem depois do outro. A de repetição serve para fazer algo várias vezes, como um laço que conta de 1 a 5. A de seleção é a que toma decisões, do tipo "se a luz estiver acesa, ande; senão, pare". Cobrar EF69CO02 é cobrar que o aluno monte esses três tipos de estrutura, não apenas que ele decore o nome delas.
Um ponto que costuma passar batido: a habilidade fala em elaborar algoritmos usando uma linguagem de programação. Isso não quer dizer que todo mundo precisa programar em C ou Python desde o primeiro dia. Pseudocódigo também serve para desenvolver o raciocínio, e a linguagem de programação entra como o passo seguinte, quando a turma já entende a lógica.
Como trabalhar EF69CO02 em sala?
Estas são as ideias que mais funcionaram comigo, todas com material simples:
Primeiro, o jogo do robô de papel. Desenhe uma grade no quadro ou em uma folha, coloque um aluno como robô e peça para a turma escrever instruções como "avance", "vire à direita" e "repita três vezes". O robô só obedece ao que está escrito. Em poucos minutos, a turma descobre sozinha por que a ordem dos passos importa.
Segundo, a receita de bolo como algoritmo. Muitos alunos já entendem a lógica de uma receita. Peça que escrevam a receita de um miojo com instruções sequenciais, depois introduzam a repetição ("bata a massa até ficar homogênea") e a seleção ("se a água ainda estiver fria, espere"). A conexão com o cotidiano faz a diferença.
Terceiro, a decisão no semáforo. Monte uma situação em que o aluno precisa escrever o que o pedestre faz em cada cor. Esse exercício trabalha seleção de forma concreta e prepara o terreno para condições em linguagem de programação.
Quarto, depuração coletiva. Entregue um algoritmo com um erro proposital, por exemplo um laço que nunca termina, e deixe a turma encontrar o problema. Errar e corrigir em grupo ensina mais do que acertar de primeira.
Como avaliar essa habilidade?
Uma boa questão sobre EF69CO02 precisa cobrar raciocínio, não memorização de sintaxe. O aluno deve conseguir prever o resultado de um trecho de código ou de um pseudocódigo, identificar qual estrutura resolve um problema e, em níveis mais altos, escrever ou corrigir um pequeno algoritmo.
Os erros mais comuns que vejo em avaliações desse tema são: cobrar o nome exato de um comando sem contexto, usar questões em que a resposta se adivinha pela forma das alternativas, e esquecer de testar casos-limite, como o valor exato de uma condição. Por exemplo, em "pelo menos um minuto", o valor 60 precisa estar incluído na resposta. Esse tipo de detalhe separa quem entendeu de quem chutou.
Questões prontas de EF69CO02 (com gabarito comentado)
A seguir estão seis questões validadas, com alternativas explicadas. Use-as como estão ou como ponto de partida para adaptar à sua turma.
Questão 1: o que o laço for exibe
Em uma aula de programação, uma turma analisa um programa em linguagem C que exibe na tela os números inteiros de uma sequência. O comando printf("%d ", i) mostra o valor atual da variável i, seguido de um espaço. A estrutura for inicializa i com 0, repete o bloco enquanto i for menor que 5 e aumenta i em uma unidade ao final de cada repetição.
#include <stdio.h> int main(void) { int i; for (i = 0; i < 5; i++) { printf("%d ", i); } return 0; }
Com base no funcionamento da estrutura de repetição for e na instrução de saída apresentada no texto, qual sequência será exibida pelo programa?
❌ A) 1 2 3 4 5 — Esse resultado decorre do erro de considerar que a variável começa em 1 e que o valor 5 ainda seria processado, ignorando a inicialização i = 0 e a condição i < 5.
❌ B) 4 3 2 1 0 — Esse resultado decorre do erro de supor que a variável i é decrementada a cada repetição. No código, porém, a expressão i++ aumenta seu valor em uma unidade.
✅ C) 0 1 2 3 4 — A variável i começa com 0. O bloco é executado enquanto i < 5, portanto ocorre para i = 0, 1, 2, 3 e 4. Após cada execução, i é incrementado em 1. Quando i assume o valor 5, a condição deixa de ser verdadeira e o laço termina.
❌ D) 0 1 2 3 4 5 — Esse resultado decorre do erro de interpretar a condição i < 5 como se fosse i <= 5, incluindo o valor 5 na saída.
❌ E) 0 2 4 6 8 — Esse resultado decorre do erro de supor que i aumenta de dois em dois. O incremento escrito no programa é i++, que adiciona apenas uma unidade a cada repetição.
Dica de resolução: analise o loop e a função printf. Conceito central: laços de repetição.
Questão 2: a função da seleção no robô
No programa do robô, ele pode repetir passos, guardar dados, mostrar mensagem, trocar informação ou escolher entre andar e parar conforme a luz. Qual é a função da seleção?
✅ A) Escolher uma ação pela condição — A seleção verifica uma condição, como a luz estar acesa ou apagada, e escolhe uma ação.
❌ B) Mostrar uma mensagem na tela — Essa alternativa descreve a exibição de uma mensagem.
❌ C) Guardar dados em uma lista — Essa alternativa descreve o armazenamento de dados.
❌ D) Trocar uma informação do robô — Essa alternativa descreve a alteração de uma informação, não a escolha baseada em condição.
❌ E) Repetir os passos muitas vezes — Essa alternativa descreve a repetição, não a seleção.
Dica de resolução: pense na definição de algoritmos de seleção. Conceito central: algoritmo de seleção.
Questão 3: o efeito de uma condição falsa
Considere o pseudocódigo abaixo: SE x > 10 ENTAO x := x - 10. O que acontece se x for 5?
❌ A) x se torna 0 — x não é alterado pois não atende à condição.
✅ B) x se torna 5 — x permanece 5, pois a condição x > 10 não é satisfeita.
❌ C) x se torna 10 — x não é alterado, logo não se torna 10.
❌ D) x se torna 15 — Não há aumento, somente uma redução se a condição fosse verdadeira.
❌ E) x se torna 20 — Não ocorre mudança, portanto x não se torna 20.
Dica de resolução: analise a condição do pseudocódigo para determinar a resposta. Conceito central: pseudocódigo e condições.
Questão 4: a estrutura de repetição correta para contar de 1 a 5
Identifique a estrutura de repetição correta para contar de 1 a 5 em um algoritmo.
❌ A) while(i <= 5) { i++; } — A condição está correta, mas falta inicializar a variável 'i'.
✅ B) for(i = 1; i <= 5; i++) {} — A estrutura 'for' é adequada para contar de 1 a 5, inicializando 'i' em 1.
❌ C) do { i++; } while(i <= 5); — A estrutura 'do while' não inicializa 'i', podendo gerar erro.
❌ D) foreach(i in 1 to 5) {} — A estrutura 'foreach' não é adequada para contar inteiros sequencialmente.
❌ E) if(i <= 5) { i++; } — A estrutura 'if' não executa repetidamente, apenas verifica uma condição.
Dica de resolução: pense nas estruturas de repetição que você conhece. Conceito central: estrutura de repetição.
Questão 5: o algoritmo clássico de ordenação
Qual é o algoritmo clássico utilizado para ordenar uma lista de números em ordem crescente?
❌ A) Soma dos números — Somar os números encontra um total, mas não organiza os itens da lista.
✅ B) Ordenação por bolha — A ordenação por bolha compara números vizinhos e os troca de lugar até a lista ficar em ordem crescente.
❌ C) Contagem simples — Contar os números informa quantos itens há, mas não os coloca em ordem.
❌ D) Busca binária — Esse algoritmo procura um valor em uma lista ordenada; não organiza uma lista de números.
❌ E) Busca linear — Esse método procura um valor olhando os itens um por um; não ordena a lista.
Dica de resolução: distinga algoritmos de ordenação de algoritmos de busca. Conceito central: algoritmo de ordenação por bolha.
Questão 6: a condição de pelo menos um minuto
Considere a variável tempoSegundos (inteiro). Escreva a condição que verifica se já se passou pelo menos um minuto.
❌ A) tempoSegundos < 60 — Indica que um minuto não foi alcançado se for menor que 60, o que é incorreto.
❌ B) tempoSegundos = 60 — A condição só verifica se é exatamente 60, ignorando qualquer valor maior.
❌ C) tempoSegundos > 60 — Verifica se tempoSegundos é maior que 60, desconsiderando o valor exato de 60.
✅ D) tempoSegundos >= 60 — Um minuto corresponde a 60 segundos; a condição testa se a variável tempoSegundos é maior ou igual a 60.
❌ E) tempoSegundos == 1 — A condição exige que tempoSegundos seja exatamente 1, o que não representa um minuto.
Dica de resolução: interprete "pelo menos" como incluindo o valor limite de 60 segundos. Conceito central: operador de comparação inclusivo.
Este conteúdo é um apoio para o seu planejamento e não substitui o seu olhar de professor sobre a sua turma. Ajuste as questões ao nível dos seus alunos e, se tiver dúvidas sobre a aplicação em sala, confie no que você vê todos os dias. Bom trabalho!
Monte uma prova com questões como estas
O GeraProva busca questões com gabarito comentado e BNCC no acervo e monta a prova pronta para imprimir.