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
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
decomposição de algoritmos
avaliacao
decomposição de algoritmos · funções e subrotinas
Revisar conceitos de algoritmos e estruturas de dados.
O aluno pode descrever um algoritmo sem decompor em funções, dificultando a compreensão e a manutenção do código.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- Uma associação de moradores envia, todo sábado, um aviso aos voluntários que participam da coleta de roupas. Ela quer…
- Por que avisos sobre a subida de um rio chegam tarde a alguns moradores? Para responder a esse problema, a Defesa Civil…
- — Se a embalagem estiver suja, ela pode seguir para o mesmo coletor? — perguntou uma estudante durante a criação de um…
- Por que uma mesma rua pode aparecer com 12 reclamacoes de poste apagado em um dia e, no fim, serem apenas 7 postes…
- Um programa repetia o mesmo cálculo de média em 3 trechos diferentes. Depois da refatoração, esse cálculo foi colocado…
- Qual técnica facilita testar isoladamente cada função decomposta de um algoritmo que processa arquivos de dados e…
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
