GeraProva GeraProva Provas com IA para professores do Brasil
BNCC

Atividades sobre Programação usando grafos e árvores com gabarito — 9º ano (EF09CO02)

Atividades sobre Programação usando grafos e árvores com gabarito — 9º ano (EF09CO02)

Quando recebo a EF09CO02 no planejamento do 9º ano, sei que o desafio não é apenas apresentar termos como lista, objeto, grafo ou árvore. Preciso transformar esses conceitos em situações que a turma reconheça: organizar uma coleta seletiva, pensar nas fases de um jogo, mapear caminhos na escola ou decidir como guardar informações de um aplicativo.

Na prática, eu tento sair da explicação abstrata o quanto antes. A habilidade pede escolhas justificadas, colaboração e aperfeiçoamento de soluções. Por isso, alterno pequenos problemas no papel, conversa em grupo e questões que mostrem se o estudante entende por que determinada estrutura ou técnica faz sentido.

O que a habilidade EF09CO02 pede, de verdade?

A EF09CO02 pede que o estudante do 9º ano vá além de escrever comandos isolados: ele precisa analisar um problema real ou escolar, planejar uma solução computacional, escolher como organizar os dados e justificar essa escolha. Isso inclui perceber quando uma lista, matriz, objeto, grafo ou árvore ajuda mais do que outra estrutura, além de testar, revisar e melhorar a proposta. Também há uma dimensão importante de trabalho colaborativo: a turma deve comparar ideias, dividir tarefas e articular conhecimentos de outras áreas, como Matemática, Geografia ou Ciências. Em sala, eu traduzo isso como “não basta fazer funcionar; é preciso explicar por que organizamos a solução desse jeito”. Uma atividade sobre rotas entre bairros, por exemplo, pode usar grafos; já uma hierarquia de pastas ou decisões pode ser representada por árvores. O foco é resolver problemas com intenção e critério.

“Construir soluções computacionais de problemas de diferentes áreas do conhecimento, de forma individual e colaborativa, selecionando as estruturas de dados e técnicas adequadas, aperfeiçoando e articulando saberes escolares.”

A habilidade está na unidade temática Pensamento Computacional e tem como objeto de conhecimento a programação usando grafos e árvores. Para consultar o recorte completo e o acervo disponível, eu recomendo a consulta completa do código EF09CO02.

Como trabalhar EF09CO02 em sala?

  1. Mapa de caminhos da escola: em grupos, peço que representem espaços da escola como pontos e os deslocamentos como ligações. Depois, proponho perguntas: qual caminho tem menos etapas? O que acontece se um corredor estiver interditado? Mesmo sem computador, a turma compreende a lógica dos grafos.
  2. Árvore de decisões para um problema cotidiano: a turma cria uma árvore para orientar o descarte de resíduos: “é reciclável?”, “está limpo?”, “qual coletor usar?”. Depois, cada grupo revisa a árvore de outro grupo e aponta decisões confusas ou incompletas.
  3. Aplicativo no papel: apresento um contexto, como registrar livros emprestados na biblioteca. Os estudantes decidem quais dados serão guardados, se precisam de lista, dicionário, valor lógico ou objeto, e defendem a escolha para a classe.
  4. Jogo com regras visíveis: uso um jogo simples, digital ou de tabuleiro, e peço que a turma identifique variáveis, decisões e regras. Em seguida, criamos um fluxograma ou pseudocódigo para uma fase do jogo.
  5. Melhoria de uma solução: entrego uma organização propositalmente ruim, com dados repetidos ou sem ordem. Os grupos propõem ajustes e explicam como a nova estrutura facilita a consulta, a busca ou a atualização.

Como avaliar essa habilidade?

Uma boa questão de EF09CO02 não cobra só definição decorada. Ela apresenta um problema e pede que o estudante relacione a necessidade à estrutura de dados ou à técnica adequada. Vale perguntar por que uma lista preserva registros em ordem, como um objeto reúne dados e comportamentos ou quando uma matriz pode ser mais adequada que uma lista.

Eu evito avaliações que tratam uma estrutura como solução universal ou que usam alternativas vagas, como “porque é melhor”. Também tomo cuidado para não exigir sintaxe de uma linguagem específica quando o objetivo é o raciocínio computacional. Para complementar a prova, observo a discussão dos grupos: o estudante conseguiu justificar escolhas, ouvir contrapontos e revisar a solução? Esses indícios ajudam muito a avaliar a habilidade por inteiro.

Questões prontas de EF09CO02 (com gabarito comentado)

1. Como a lógica computacional pode ser aplicada no cotidiano, especialmente em jogos eletrônicos?

  • ❌ A) A lógica é irrelevante em jogos simples. Mesmo jogos simples utilizam lógica para funcionarem.
  • ❌ B) Os jogos não dependem de decisões durante o jogo. Decisões são essenciais para a dinâmica de qualquer jogo.
  • ✅ C) A lógica ajuda a programar as regras do jogo. Programar regras lógicas é crucial para o funcionamento de jogos.
  • ❌ D) Jogos eletrônicos não utilizam variáveis. Jogos utilizam variáveis para manter estados e pontuações.
  • ❌ E) A lógica computacional é apenas teórica. A lógica computacional tem aplicação prática em diversas áreas, incluindo jogos.

2. Qual é a função de um objeto em um algoritmo de modelagem?

  • ✅ A) Representar dados e funções. Objetos são utilizados para representar dados e comportamentos em um algoritmo.
  • ❌ B) Apenas armazenar informações. Objetos não servem apenas para armazenar, mas também para definir comportamentos.
  • ❌ C) Gerar números aleatórios. Essa função é específica e não define o papel geral dos objetos.
  • ❌ D) Executar cálculos matemáticos. Embora possam executar, essa não é sua função principal.
  • ❌ E) Armazenar apenas texto. Objetos podem armazenar diversos tipos de dados, não apenas texto.

3. Qual o papel da modelagem de objetos na resolução de problemas em programação?

  • ❌ A) Ela torna o código mais confuso e difícil de entender. Modelagem de objetos visa simplificar e organizar o código.
  • ✅ B) Facilita a representação de entidades e suas interações. A modelagem simplifica a programação ao refletir conceitos do mundo real.
  • ❌ C) É usada apenas para design de interfaces gráficas. Modelagem de objetos é ampla e não se limita apenas a interfaces.
  • ❌ D) Não é relevante para a programação em geral. A modelagem é fundamental para a estruturação de qualquer programa.
  • ❌ E) Aumenta a complexidade do código sem benefícios claros. O objetivo da modelagem é simplificar e organizar, não complicar.

4. Como a utilização de algoritmos pode otimizar a organização de objetos em um sistema?

  • ❌ A) Eliminando a necessidade de dados. Algoritmos dependem de dados para funcionar.
  • ✅ B) Estabelecendo regras para organização. Algoritmos definem como os objetos são organizados.
  • ❌ C) Complexificando o processo de busca. Algoritmos simplificam a busca, não a complexificam.
  • ❌ D) Aumentando a redundância de dados. Algoritmos otimizam a redundância, não a aumentam.
  • ❌ E) Eliminando a necessidade de estrutura. Estruturas são essenciais para a organização.

5. Em uma atividade de Computação, uma turma está desenvolvendo um aplicativo para acompanhar a coleta seletiva no bairro. O programa receberá os materiais entregues pelos moradores durante o dia. A equipe definiu que uma lista é adequada para reunir vários valores em uma sequência, preservando a ordem de registro e permitindo consultar cada posição. Também considerou outras estruturas: uma variável simples para guardar um único valor, um valor lógico para representar verdadeiro ou falso, um conjunto para reunir valores sem repetição e um dicionário para relacionar chaves a valores.

Com base nas necessidades do aplicativo e nas características apresentadas, qual solução utiliza adequadamente uma lista?

  • ❌ A) Relacionar cada morador ao material entregue em um dicionário. Essa relação entre chave e valor caracteriza um dicionário, não uma lista simples.
  • ✅ B) Registrar, na ordem de chegada, os materiais entregues pelos moradores. A lista armazena vários materiais, preserva a ordem de registro e permite acessar cada posição da sequência.
  • ❌ C) Guardar em uma variável simples o total de materiais entregues no dia. Esse uso envolve um único valor numérico, não uma sequência de elementos.
  • ❌ D) Usar um valor lógico para indicar se a coleta seletiva foi concluída. Uma informação com dois estados, verdadeiro ou falso, é melhor representada por valor lógico.
  • ❌ E) Reunir em um conjunto os tipos de materiais entregues, sem repeti-los. Eliminar repetições é característica de conjunto, não de lista.

6. Em um projeto de programação, como a escolha entre matriz e lista pode impactar a eficiência do programa?

  • ❌ A) Usar sempre listas, pois são mais fáceis de implementar. Listas são flexíveis, mas podem não ser as mais eficientes para acessos diretos.
  • ✅ B) Escolher matrizes para dados fixos e listas para dados dinâmicos. Matrizes são eficientes para dados de tamanho fixo, enquanto listas se adaptam a dados dinâmicos.
  • ❌ C) Matrizes são sempre mais rápidas que listas. A velocidade depende do contexto e da estrutura de dados utilizada.
  • ❌ D) Listas e matrizes são iguais em eficiência. Cada uma possui características que as tornam mais adequadas a diferentes situações.
  • ❌ E) Evitar o uso de matrizes por causa da complexidade de indexação. Matrizes têm complexidade de indexação fixa, o que pode ser vantajoso em muitos cenários.

Próximos passos para o planejamento

Eu começaria com uma situação concreta da escola ou do bairro, pediria uma proposta em grupo e usaria duas ou três questões para verificar a compreensão individual. Se quiser ganhar tempo na montagem da avaliação, há 95 questões alinhadas a este código no acervo e você pode usar o gerador de provas do GeraProva para selecionar, organizar e editar suas questões.

Adapte o nível de linguagem e os contextos à sua turma. Para testar os recursos e montar atividades do seu jeito, faça seu cadastro grátis no GeraProva.

Artigos relacionados

0 comentários

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.