GeraProva GeraProva Provas com IA para professores do Brasil
Computação8º anoBNCC EF69CO04Difícil⏱ longo

Projete a decomposição de alto nível de um algoritmo que alimenta um chatbot escolar a partir de múltiplos…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF69CO04

Construir soluções de problemas usando a técnica de decomposição e automatizar tais soluções usando uma linguagem de programação.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Projete a decomposição de alto nível de um algoritmo que alimenta um chatbot escolar a partir de múltiplos arquivos de texto: descreva funções/subrotinas, entradas e saídas de cada módulo e critérios básicos de teste unitário.

✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.

Resposta esperada

Sugestão de decomposição por módulos: 1) Ingestor de arquivos - Função: ler_arquivos(caminhos:Array<String>) -> raw_text:String - Entrada: lista de caminhos; Saída: texto bruto concatenado; Testes: arquivo único, múltiplos arquivos, arquivo vazio. 2) Normalizador/limpador - Função: limpar_texto(raw_text:String) -> cleaned:String - Tarefas: remover formatação, normalizar acentuação, remover duplicatas simples; Testes: remover HTML, caracteres especiais. 3) Segmentador e tokenizador - Função: tokenizar(cleaned:String) -> tokens:List<String> - Saída: lista de tokens/phrases; Testes: dividir sentenças, preservar siglas. 4) Vetorizador/indexador - Função: construir_indice(tokens:List<String>) -> index:Object (TF-IDF/embeddings) - Saída: índice pesquisável; Testes: consistência de vetores, tamanho do índice. 5) Recuperador por similaridade - Função: recuperar(query:String, index:Object) -> candidates:List<Document> - Critérios: retorno ordenado, limiar de similaridade; Testes: consulta exata, consulta próxima. 6) Rankeador/pós-processamento - Função: rankear(candidates, contexto) -> resposta:Text - Tarefas: filtro por relevância, formato de resposta; Testes: desempate entre candidatos. 7) API/Handler de interação - Função: atender_requisicao(request) -> response - Interfacing: entrada HTTP/JSON; Testes: formato de requisição e resposta. 8) Monitoramento e logging - Função: registrar_evento(event) -> void - Testes: logs gerados em falhas. Critérios gerais de projeto de interfaces: cada função deve ter contrato claro (tipos de entrada/saída), lidar com erros via exceções ou códigos, e ser testável isoladamente usando mocks para I/O. Validar conjuntos de dados com testes de integração para desempenho (latência na recuperação) e precisão (recall/precision) do recuperador.

Explicação

A decomposição apresentada organiza o algoritmo em módulos lógicos, facilitando a compreensão e a manutenção do código. Cada função é claramente definida com suas entradas, saídas e critérios de teste, o que assegura que cada parte do sistema possa ser testada de forma independente. Além disso, a inclusão de testes unitários e integração garante a robustez e a confiabilidade do chatbot ao lidar com diferentes cenários e dados.

Raio-X da questão

Dificuldade Difícil
Bloom Criar
Leitura alto
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade multipla
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ interpretativa🧩 desafio
🎯 Conceito central

decomposição de algoritmos

📌 Objetivo

avaliacao

🧱 Pré-requisitos

decomposição de algoritmos · funções e subrotinas

📚 Reveja

Revisar conceitos de algoritmos e estruturas de dados.

⚠️ Erro mais comum

O aluno pode descrever um algoritmo sem decompor em funções, dificultando a compreensão e a manutenção do código.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cientifico

Questões parecidas com resolução

Todas as questões de Estratégias de solução de problemas - Decomposição

🔎 Procurar outra questão

Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.

Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog

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.