GeraProva GeraProva Provas com IA para professores do Brasil
BNCC

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

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

Quando recebo a EF09CO01 no planejamento do 9º ano, sei que o desafio não é apenas explicar o que são grafos e árvores. Preciso transformar termos que parecem técnicos em problemas que os alunos reconheçam: caminhos até a escola, seguidores em uma rede social, pastas no computador ou rotas de ambulância.

Na minha experiência, a aula anda melhor quando a turma percebe que essas estruturas não são desenhos abstratos de programação. Elas servem para organizar informações, representar relações e tomar decisões. A partir daí, fica muito mais natural propor uma atividade prática e uma avaliação que vá além de decorar definições.

O que a habilidade EF09CO01 pede, de verdade?

Na prática, essa habilidade pede que o estudante reconheça quando um problema envolve relações ou hierarquias, escolha entre árvore e grafo para representá-lo e avance para uma solução automatizada em programação. Não basta saber que um grafo tem pontos e ligações, ou que uma árvore parece uma estrutura de pastas: o aluno precisa justificar a escolha da estrutura diante de uma situação concreta. Por exemplo, uma rede de amizades permite várias conexões entre pessoas e combina com grafo; já a organização de arquivos por pastas e subpastas segue níveis e combina com árvore. Também espero que a turma leia informações, identifique conexões direcionadas ou não direcionadas, considere pesos como tempo e distância e pense em procedimentos para percorrer ou consultar esses dados. O foco é resolver problemas reais com representação adequada e lógica de programação, não exigir domínio avançado de código.

“Criar soluções de problemas para os quais seja adequado o uso de árvores e grafos para descrever suas informações e automatizá-las usando uma linguagem de programação.”

Esse é o texto oficial da habilidade, da unidade temática Pensamento Computacional, no objeto de conhecimento Programação usando grafos e árvores. Para planejar com segurança, eu também consulto a consulta completa do código EF09CO01, que reúne as questões disponíveis para essa habilidade.

Como trabalhar EF09CO01 em sala?

  1. Mapa de trajetos da turma: peço que grupos desenhem pontos importantes do bairro ou do caminho até a escola. Os lugares são vértices; as ruas, arestas. Depois, podemos acrescentar tempo de percurso e discutir qual rota parece mais rápida.
  2. Rede de conexões em papel: cada grupo inventa uma pequena rede social com dez perfis. Eles definem quem segue quem e percebem que seguir pode ser uma relação direcionada. É uma porta de entrada simples para listas de adjacência.
  3. Árvore de pastas: uso a organização dos arquivos da própria escola: pasta principal, turmas, disciplinas, atividades e arquivos. A turma desenha a hierarquia e identifica raiz, ramificações e elementos finais.
  4. Cartões de decisão: entrego situações curtas, como “organizar parentesco”, “representar linhas de ônibus” e “guardar uma lista de chamada”. Os alunos justificam se usariam árvore, grafo ou outra estrutura. O ganho está na argumentação, não só no acerto.
  5. Programação gradual: em pseudocódigo, planilha ou linguagem já usada pela turma, proponho representar vizinhos de cada ponto e buscar informações. Quem tiver mais familiaridade pode criar uma lista de adjacência; quem está começando pode descrever o passo a passo antes de codificar.

Como avaliar essa habilidade?

Uma boa questão de EF09CO01 apresenta um contexto e pede que o estudante relacione o problema à estrutura adequada. Ela pode cobrar a identificação de vértices e arestas, a diferença entre hierarquia e rede, a leitura de relações direcionadas, a economia de espaço em uma representação ou a escolha de um procedimento para encontrar caminhos.

Eu evito avaliar apenas vocabulário isolado, como perguntar a definição de grafo sem contexto. Também tomo cuidado para não transformar a habilidade em uma prova de sintaxe de programação. Um erro comum é considerar árvore e grafo como sinônimos porque ambos têm nós e ligações. Outro é pedir “o caminho mais curto” sem informar se as arestas têm pesos: quando há tempos ou distâncias diferentes, contar somente o número de conexões pode levar a uma resposta errada. Vale combinar questões objetivas, produção de diagramas e uma justificativa breve.

Questões prontas de EF09CO01 (com gabarito comentado)

1. Em programação, qual estrutura de dados é mais adequada para representar relacionamentos entre objetos?

  • ❌ A) Lista encadeada — é menos eficaz para representar relacionamentos complexos.
  • ❌ B) Matriz — não é a estrutura mais indicada, por si só, para representar relações entre objetos.
  • ❌ C) Conjunto — reúne elementos, mas não explicita relacionamentos diretos.
  • ✅ D) Grafos — conectam nós e são ideais para representar relacionamentos.
  • ❌ E) Array — possui estrutura fixa e não favorece relações entre elementos.

2. Em um grafo, o que representam os vértices e as arestas?

  • ❌ A) Vértices são conexões, arestas são entidades — os papéis estão invertidos.
  • ❌ B) Ambos são tipos de dados organizados — embora organizados, cumprem funções diferentes.
  • ❌ C) Vértices representam relações, arestas entidades — novamente, os conceitos foram trocados.
  • ✅ D) Vértices são entidades, arestas são relações — os vértices representam os elementos, e as arestas mostram suas conexões.
  • ❌ E) Ambos representam dados não estruturados — um grafo é uma forma estruturada de organizar dados.

3. Qual técnica é mais adequada para representar as relações entre amigos em uma rede social?

  • ❌ A) Listas encadeadas, por serem mais simples — não representam bem conexões complexas entre usuários.
  • ❌ B) Matrizes, pela facilidade de acesso — não são eficientes para conexões dinâmicas nesse contexto.
  • ✅ C) Grafos, por representar conexões entre usuários — são adequados para redes e relações entre pessoas.
  • ❌ D) Registros, que organizam dados de maneira sequencial — registros não modelam relações complexas.
  • ❌ E) Árvores, que organizam dados hierarquicamente — árvores servem a hierarquias, não a múltiplas conexões em rede.

4. Uma plataforma brasileira de comunicação tem 10 mil usuários. Seguir alguém é uma relação direcionada, cada pessoa segue em média 80 perfis e o sistema precisa consultar os seguidos sem reservar espaço para todas as combinações possíveis. Qual estrutura é mais adequada?

  • ❌ A) Uma árvore binária — a rede não é necessariamente hierárquica nem limitada a dois vínculos.
  • ❌ B) Uma lista encadeada simples — isoladamente, ela não associa cada usuário ao conjunto de pessoas que segue.
  • ❌ C) Uma matriz de adjacência — representa direções, mas desperdiça espaço em uma rede com poucas conexões relativas.
  • ✅ D) Uma lista de adjacência — associa cada usuário à lista de perfis que ele segue, economiza espaço e facilita consultar vizinhos.
  • ❌ E) Um registro de dados — descreve uma entidade, mas não organiza os vários vínculos entre usuários.

5. Cidades são vértices, estradas são arestas e cada estrada tem um tempo de viagem positivo. Para orientar ambulâncias, qual abordagem encontra o percurso de menor tempo?

  • ❌ A) Busca em profundidade, seguindo o primeiro percurso — ela não compara adequadamente os tempos acumulados.
  • ❌ B) Busca em largura, considerando custos iguais — contar estradas não garante menor tempo quando os pesos variam.
  • ✅ C) Algoritmo de Dijkstra, considerando tempos positivos — ele compara custos acumulados e encontra menores caminhos com pesos não negativos.
  • ❌ D) Matriz de adjacência — é uma representação, não um método de cálculo do menor percurso.
  • ❌ E) Escolher sempre a estrada mais rápida no ponto atual — uma decisão local pode gerar um caminho total mais lento.

6. Em uma escola, arquivos digitais são organizados por pasta principal, pastas, subpastas e arquivos, com uma única pasta superior para cada item, exceto a principal. Qual estrutura exemplifica uma árvore?

  • ✅ A) Uma hierarquia de pastas e arquivos — há raiz, níveis e ramificações, como no conceito de árvore.
  • ❌ B) Uma fila de atendimento por chegada — é uma estrutura linear de ordem de entrada.
  • ❌ C) Uma sequência de tarefas pendentes — itens em sequência não formam ramificações hierárquicas.
  • ❌ D) Uma tabela de notas escolares — organiza linhas e colunas, não níveis de parentesco estrutural.
  • ❌ E) Um grafo de rotas com ciclos — árvores não possuem ciclos e mantêm organização hierárquica.

Próximos passos para a aula

Eu começaria com um exemplo visual simples, pediria que os alunos justificassem suas escolhas e só depois levaria a ideia para a programação. Para variar dificuldade, selecionar questões e montar avaliações alinhadas, vale usar o gerador de provas do GeraProva. Se você ainda não utiliza a plataforma, faça seu cadastro grátis e explore as 55 questões do acervo alinhadas a esta habilidade.

Use estas questões como ponto de partida e adapte os contextos à realidade da sua turma. A melhor atividade é aquela em que o aluno consegue explicar por que escolheu uma árvore ou um grafo — e percebe que programação também ajuda a resolver problemas do seu cotidiano.

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.