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
- Projete uma decomposição de alto nível para um algoritmo que gera a lista de materiais escolares por disciplina a partir…
- Folhas de anotações espalhadas sobre a mesa revelam como Carlos documentou etapas da criação de um chatbot para…
- Descreva como a criação de um chatbot pode ser utilizada em uma empresa para melhorar o atendimento ao cliente…
- Projete um algoritmo modular (pseudocódigo) para planejar uma feira de ciências na escola, usando decomposição em pelo…
- Projete a decomposição de alto nível de um algoritmo que integra dois conjuntos de dados escolares (registros de…
- Projete um pequeno projeto de programação para crianças que ensine pensamento computacional por meio de um jogo…
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
