Atividades sobre Programação com gabarito — 8º ano (EF08CO03)
Quando recebo EF08CO03 no planejamento, sei que não basta colocar “programação” na lousa e pedir que a turma decore nomes como Bubble Sort ou busca linear. O desafio real é transformar uma habilidade curta da BNCC em situações que façam sentido para estudantes de 8º ano: organizar notas, encontrar um nome em uma lista, comparar caminhos e perceber por que a ordem dos dados muda tudo.
Na minha prática, funciona melhor começar longe do computador. Uma lista de tarefas, cartões com números ou nomes da chamada já viram material para discutir passos, critérios e resultados. Depois, levo essa experiência para o código ou para uma avaliação. Para ampliar o repertório, também costumo consultar a consulta completa do código EF08CO03, que reúne questões alinhadas à habilidade.
O que a habilidade EF08CO03 pede, de verdade?
A habilidade pede que o estudante use algoritmos clássicos para manipular listas, e não apenas reconheça seus nomes em uma definição. Na prática, eu espero que a turma consiga organizar itens em ordem crescente, numérica ou alfabética; localizar um dado percorrendo uma lista; acompanhar o que acontece a cada passo de uma estratégia; e justificar por que determinado procedimento atende melhor a uma situação. Isso inclui perceber que uma lista de notas de 0 a 10 pode ser organizada de forma diferente de uma lista enorme de nomes, por exemplo. Também vale discutir eficiência sem transformar a aula em uma conversa excessivamente técnica: se dois procedimentos chegam ao mesmo resultado, qual exige menos tempo, comparações ou recursos? O foco é programar e pensar sobre listas com intencionalidade, usando exemplos concretos antes de formalizar estruturas e comandos.
“Utilizar algoritmos clássicos de manipulação sobre listas.”
O objeto de conhecimento é Programação, dentro da unidade temática Pensamento Computacional. Por isso, eu trato ordenação e busca como ferramentas para resolver problemas, e não como uma sequência de definições isoladas.
Como trabalhar EF08CO03 em sala?
- Ordenação humana: entrego cartões com números ou palavras para grupos. Eles precisam se organizar em ordem crescente ou alfabética, explicando qual comparação fizeram primeiro. Depois, peço que registrem os passos como se fossem instruções para um computador.
- Lista de tarefas da semana: proponho uma lista curta, como “estudar”, “fazer exercícios” e “lavar a louça”. A turma ordena alfabeticamente e debate qual critério está sendo usado. É simples, próximo da rotina deles e ajuda a separar “ordem pessoal” de “ordem definida por uma regra”.
- Busca de um dado: escrevo uma lista de nomes, códigos ou livros no quadro. Um estudante procura um item percorrendo os elementos um a um. Em seguida, organizamos a lista e conversamos sobre como a organização facilita encontrar informações.
- Desafio das notas: apresento uma lista grande simulada de notas entre 0 e 10. Pergunto: precisamos comparar cada nota com todas as outras ou podemos contar quantas vezes cada valor aparece? É uma ótima porta de entrada para a ordenação por contagem.
- Pseudocódigo antes da tela: antes de abrir qualquer ambiente de programação, a turma escreve instruções como “compare os vizinhos” ou “verifique o próximo item”. Assim, quem ainda tem dificuldade com sintaxe também participa do raciocínio.
Como avaliar essa habilidade?
Uma boa questão de EF08CO03 precisa colocar o estudante diante de uma lista e de uma ação: ordenar, buscar, comparar resultados ou escolher uma estratégia adequada. Eu evito avaliar apenas a memorização de termos. Se a pergunta cita busca linear, por exemplo, ela deve verificar se o aluno entende que os elementos são examinados um a um até encontrar o desejado.
Um erro comum é cobrar eficiência sem dar contexto. Dizer apenas “qual algoritmo é melhor?” abre espaço para respostas decoradas. É mais justo informar o tamanho da lista, o tipo de dado e a restrição do problema. Outro erro é considerar que lista ordenada significa automaticamente qualquer busca rápida: a turma precisa distinguir busca linear, que pode funcionar em listas desordenadas, de estratégias que dependem da organização prévia. Nas devolutivas, eu valorizo a justificativa: acertar a ordem é importante, mas explicar o critério mostra que o raciocínio foi construído.
Questões prontas de EF08CO03 (com gabarito comentado)
1. Em uma competição de programação, uma equipe precisa ordenar uma lista muito grande de notas. Todas as notas são números inteiros de 0 a 10, e o principal objetivo é gastar o menor tempo possível na ordenação. Qual algoritmo é mais adequado para ordenar essa lista com eficiência, aproveitando que existem apenas 11 valores possíveis?
- ❌ A) Método da bolha (Bubble Sort) — compara vizinhos e pode fazer muitas trocas; em uma lista grande, tende a ser bem mais lento.
- ✅ B) Ordenação por contagem (Counting Sort) — conta quantas vezes cada nota de 0 a 10 aparece e aproveita diretamente o pequeno intervalo de valores.
- ❌ C) Seleção simples (Selection Sort) — realiza muitas comparações e não explora o fato de existirem apenas 11 notas possíveis.
- ❌ D) QuickSort — pode ser eficiente, mas depende de comparações e pivôs; aqui não aproveita tão diretamente o intervalo limitado.
- ❌ E) Inserção (Insertion Sort) — é interessante para listas pequenas ou quase ordenadas, não para uma lista muito grande sem essa garantia.
2. Marina criou uma lista de tarefas e quer organizá-la para encontrá-las com mais facilidade. Para isso, decidiu usar um algoritmo de ordenação. Usando como critério a ordem alfabética crescente pelo nome de cada tarefa, qual será a lista organizada?
- ❌ A) fazer exercícios, estudar, lavar a louça — “estudar” começa com e, que vem antes de f.
- ✅ B) estudar, fazer exercícios, lavar a louça — a sequência respeita e, depois f e, por último, l.
- ❌ C) estudar, lavar a louça, fazer exercícios — coloca l antes de f, contrariando a ordem alfabética.
- ❌ D) fazer exercícios, lavar a louça, estudar — deixa a palavra iniciada por e no fim.
- ❌ E) lavar a louça, estudar, fazer exercícios — inicia por l, ignorando que e e f vêm antes.
3. Considere a situação onde você deve avaliar a eficiência de um algoritmo que organiza dados. O que deve ser considerado para determinar se ele é eficiente?
- ❌ A) A quantidade de dados apenas — o volume importa, mas não basta para avaliar o algoritmo.
- ❌ B) O tempo de execução apenas — tempo é relevante, porém os recursos utilizados também contam.
- ✅ C) Tempo de execução e recursos — eficiência envolve o tempo gasto e recursos, como espaço de memória.
- ❌ D) Complexidade do código apenas — um código mais ou menos complexo não é o único critério de eficiência.
- ❌ E) Tamanho do código apenas — poucas linhas não garantem melhor desempenho.
4. Um programador precisa criar um algoritmo que ordene uma lista de números. Considere a lista [34, 12, 5, 78] e a regra de ordenação crescente. Qual a lista resultante?
- ❌ A) [34, 12, 5, 78] — esta é a lista original, sem ordenação.
- ✅ B) [5, 12, 34, 78] — os números aparecem do menor para o maior.
- ❌ C) [78, 34, 12, 5] — esta é uma ordem decrescente.
- ❌ D) [12, 34, 5, 78] — o 5 deveria aparecer antes de 12.
- ❌ E) [5, 34, 12, 78] — 12 deveria vir antes de 34.
5. O que caracteriza um algoritmo de busca linear?
- ❌ A) Busca apenas o primeiro elemento da lista. — ela começa pelo primeiro, mas continua verificando se necessário.
- ❌ B) Usa divisão e conquista. — essa característica está associada à busca binária.
- ✅ C) Verifica cada elemento até encontrar o desejado. — essa é a ideia central da busca linear.
- ❌ D) É sempre mais eficiente que outros métodos. — a eficiência depende da lista e da estratégia comparada.
- ❌ E) Necessita de uma lista ordenada. — a busca linear funciona mesmo com a lista desordenada.
6. Em um algoritmo, como a organização de objetos pode otimizar a busca de informações?
- ❌ A) Aumenta a complexidade do código. — uma boa organização tende a simplificar o tratamento dos dados.
- ✅ B) Facilita a localização de dados específicos. — dados organizados permitem acessos mais rápidos e diretos.
- ❌ C) Remove a necessidade de variáveis. — variáveis continuam essenciais para armazenar e manipular informações.
- ❌ D) Impossibilita a alteração de dados. — organizar não impede mudanças; apenas torna o conjunto mais claro.
- ❌ E) Reduz a clareza do algoritmo. — normalmente, a organização aumenta a clareza do procedimento.
Próximos passos
Eu começaria com uma atividade concreta de ordenação, avançaria para busca e fecharia com uma questão contextualizada. Se precisar montar uma lista, atividade ou avaliação em poucos minutos, vale experimentar o gerador de provas do GeraProva e selecionar habilidades, nível e formato.
As questões ajudam a diagnosticar a aprendizagem, mas eu sempre adapto exemplos, linguagem e apoio à realidade da turma. Para criar e salvar suas avaliações, faça seu cadastro grátis no GeraProva.
