GeraProva GeraProva Provas com IA para professores do Brasil
BNCC

Atividades sobre Estratégias de solução de problemas com gabarito — 7º ano (EF07CO05)

Atividades sobre Estratégias de solução de problemas com gabarito — 7º ano (EF07CO05)

Quando recebo a EF07CO05 no planejamento do 7º ano, minha primeira dúvida é bem prática: como transformar termos como decomposição, reúso e automatização em uma aula que faça sentido para a turma? Se eu ficar só na definição, os alunos até podem decorar palavras, mas não necessariamente conseguem planejar uma solução.

O caminho que costuma funcionar comigo é partir de problemas próximos: organizar a fila da cantina, montar uma lista de empréstimos da biblioteca, calcular médias ou criar regras para um jogo. A partir daí, a programação deixa de parecer algo distante e vira uma forma de organizar tarefas, testar ideias e trabalhar em grupo.

O que a habilidade EF07CO05 pede, de verdade?

Na prática, a EF07CO05 pede que o estudante enfrente um problema maior sem tentar resolver tudo de uma vez: ele precisa separar o desafio em partes menores, reconhecer ações que se repetem e criar uma solução que possa ser usada novamente. Também precisa construir isso com colegas, combinando responsabilidades, explicando escolhas e integrando as partes em um algoritmo que funcione. Depois, essa sequência de passos deve ser automatizada em uma linguagem de programação, que pode ser visual, como blocos, ou textual, conforme o percurso da turma. Portanto, não basta pedir que o aluno copie comandos ou acerte uma sintaxe isolada. Eu preciso observar se ele identifica o problema, define requisitos, organiza subtarefas, cria procedimentos ou funções reutilizáveis, testa o resultado e corrige falhas. É uma habilidade de pensamento computacional, programação e colaboração ao mesmo tempo.

Criar algoritmos fazendo uso da decomposição e do reúso no processo de solução de forma colaborativa e cooperativa e automatizá-los usando uma linguagem de programação.

Ela pertence à unidade temática Pensamento Computacional e trabalha o objeto de conhecimento Estratégias de solução de problemas. Para consultar o detalhamento e o acervo disponível, vale acessar a consulta completa do código EF07CO05.

Como trabalhar EF07CO05 em sala?

  1. Comece no papel. Proponho um problema da escola, como organizar a entrega de livros. Em grupos, os alunos listam todas as ações e depois as agrupam: cadastro, conferência, classificação e registro de devolução. Essa é uma entrada concreta para a decomposição.
  2. Caça à repetição. Peço que a turma marque os passos que aparecem mais de uma vez. Se toda pessoa precisa informar nome e turma, por exemplo, por que escrever esse processo várias vezes? Daí surge a ideia de procedimento, bloco ou função reutilizável.
  3. Programação em duplas. Uma pessoa atua como quem programa e outra como quem revisa, alternando os papéis. Em ferramentas de blocos ou em pseudocódigo, cada dupla cria uma parte da solução. Depois, juntamos as partes e verificamos se elas conversam entre si.
  4. Teste com casos reais. Não deixo o algoritmo ser avaliado apenas pelo visual. A turma testa situações comuns e exceções: campo vazio, nota inválida, horário ocupado, livro sem categoria. É nesse momento que eles percebem o valor de organizar e reutilizar bem o código.

Como avaliar essa habilidade?

Uma boa questão de EF07CO05 deve apresentar um problema e pedir que o aluno reconheça ou escolha uma estratégia de solução: dividir tarefas, criar funções, reaproveitar procedimentos, testar etapas e organizar o trabalho cooperativo. Também posso usar uma atividade prática com uma rubrica simples: o grupo identificou subtarefas? Evitou repetição desnecessária? Criou uma rotina reutilizável? Testou o algoritmo? Conseguiu explicar o que cada integrante fez?

Um erro comum é avaliar somente se o programa “rodou”. Um código pode funcionar em um exemplo e ainda estar todo repetido, difícil de corrigir e sem decomposição. Outro erro é cobrar apenas nomes técnicos, como função e variável, sem contexto. Nesta habilidade, quero que o estudante compreenda a decisão por trás da estrutura do algoritmo, e não apenas memorize comandos.

Questões prontas de EF07CO05 (com gabarito comentado)

1. Na organização de uma feira de troca de livros e brinquedos do bairro, quatro estudantes ficaram responsáveis por preparar a lista de entrega dos participantes. Eles perceberam que várias etapas se repetiam: conferir nome, registrar o item levado, separar por categoria e gerar um recibo simples. Para ganhar tempo, decidiram dividir o trabalho em partes menores e combinar que cada parte seria escrita uma vez e usada sempre que precisassem. Assim, quando chegasse um novo participante, o sistema repetiria os mesmos passos sem refazer tudo do zero. Ao final, cada dupla cuidaria de uma etapa, mas o programa reuniria as partes para montar o atendimento completo.

Considere a situação apresentada e identifique a proposta de algoritmo que melhor usa decomposição e reúso para automatizar o atendimento.

  • ❌ A) Criar apenas uma lista de materiais, deixando as etapas de atendimento sem organização. Isso ajuda parcialmente, mas não automatiza nem reaproveita as ações repetidas.
  • ✅ B) Dividir as tarefas em partes menores e transformar cada parte em procedimento reutilizável.
  • ❌ C) Mudar a ordem das tarefas a cada participante. A proposta exige uma sequência padronizada, não alterações aleatórias.
  • ❌ D) Escolher uma pessoa para fazer todas as tarefas, sem dividir o problema. Não há decomposição nem colaboração.
  • ❌ E) Criar uma sequência única e longa para repetir todas as tarefas. Isso duplica instruções e dificulta a manutenção.

2. Ao decompor um algoritmo que valida vários tipos de entrada, que subtarefa promove generalização e reúso de código por meio de funções?

  • ❌ A) Criar uma função para cada tipo de entrada em vez de genéricas. Funções muito específicas geram mais trabalho e pouca reutilização.
  • ✅ B) Implementar funções genéricas de validação, como validarData e validarNumero, e chamá-las onde necessário para reutilizar a lógica.
  • ❌ C) Utilizar validações específicas diretamente dentro de cada módulo sem funções. Isso duplica código e dificulta manutenção.
  • ❌ D) Executar validações apenas após a entrada do usuário, sem funções. Esperar prejudica a organização e a segurança da solução.
  • ❌ E) Limitar validações a um único tipo de dado por módulo apenas. Isso não promove reúso nem consistência.

3. Durante uma aula de programação, a professora pediu que os alunos criassem um programa simples que calculasse a média de três notas. Como você organizaria este programa utilizando o conceito de reutilização de códigos?

  • ❌ A) Criar um código diferente para cada nota. Essa estratégia não reutiliza a lógica.
  • ✅ B) Usar uma função para calcular a média. A função pode ser chamada sempre que for necessário calcular outra média.
  • ❌ C) Armazenar as notas em uma lista e somar. Pode funcionar, mas não é a melhor resposta para destacar o reúso.
  • ❌ D) Reescrever o código sempre que necessário. Reescrever é justamente o oposto de reutilizar.
  • ❌ E) Usar um loop para cada nota individualmente. Um loop pode ser útil, mas não representa a melhor estratégia de reúso aqui.

4. Maria deseja aprimorar seu jogo de tabuleiro eletrônico. Para isso, ela decide usar um algoritmo que reutiliza partes de códigos anteriores. Qual é a principal vantagem desse reuso?

  • ❌ A) Aumentar o tempo de desenvolvimento. O reúso tende a economizar tempo.
  • ✅ B) Reduzir a quantidade de erros. Partes já testadas são menos propensas a introduzir novos erros.
  • ❌ C) Criar novos algoritmos desnecessariamente. O objetivo é evitar criar tudo do zero.
  • ❌ D) Dificultar a manutenção do código. O reúso bem organizado facilita corrigir e atualizar.
  • ❌ E) Aumentar a complexidade do código. Em geral, procedimentos reutilizáveis simplificam a organização.

5. Em um projeto de programação, um grupo de alunos deve criar um algoritmo para resolver um problema real da escola. Se eles decidirem automatizar o agendamento de aulas, quais passos devem seguir?

  • ❌ A) Definir os horários e criar o algoritmo apenas. Ainda faltam teste e implementação.
  • ❌ B) Identificar os requisitos e implementar a solução. É preciso criar e testar o algoritmo antes de implementar.
  • ❌ C) Criar o algoritmo e não testar. Testar é essencial para verificar se a solução funciona.
  • ✅ D) Identificar requisitos, criar, testar e implementar. Essa sequência organiza adequadamente o projeto.
  • ❌ E) Criar o algoritmo e depois definir os requisitos. Os requisitos precisam orientar a criação desde o início.

6. Em qual situação o uso de algoritmos é essencial?

  • ❌ A) Quando se deseja apenas um resultado aleatório. Algoritmos seguem passos definidos para atingir um objetivo.
  • ✅ B) Ao resolver um problema matemático. Algoritmos organizam procedimentos para chegar à solução.
  • ❌ C) Quando não se tem informações suficientes. São necessários dados para executar corretamente os passos.
  • ❌ D) Em jogos de azar. O resultado não depende de uma sequência de resolução criada pelo participante.
  • ❌ E) Ao ignorar as regras. Algoritmos se baseiam em regras e instruções, não em ignorá-las.

Próximos passos

Eu começaria com uma situação simples, deixaria a turma planejar no papel e só depois levaria a solução para a programação. Para variar nível, formato e quantidade de itens, você pode usar o gerador de provas do GeraProva e montar uma avaliação alinhada à habilidade.

As questões são um ponto de partida: adapte exemplos, linguagem e apoio à realidade da sua turma. Se quiser salvar materiais e criar provas com mais rapidez, 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.