Sistema De Informação Grade Curricular
Como funcionam esses sistemas na prática
Muita gente encara o assunto como se fosse apenas um software para lançar notas, mas o problema real está bem mais embaixo. O que separa um sistema que funciona por anos de um que vira dor de cabeça em seis meses é a forma como você modela a grade curricular e os pré-requisitos dentro do banco de dados. A maioria das instituições começa com uma tabela plana de disciplinas e um relacionamento simples de pré-requisito. Isso funciona até aparecer o primeiro estudante de duplo bacharelado com disciplina equivalenciada de outro campus. Eu passei cerca de quatro meses arrumando um sistema desses numa universidade pública do interior. O gargalo não era a interface nem o servidor. Era a ausência de um grafo de dependências entre disciplinas. Quando um aluno solicitava trancamento de uma matéria que era pré-requisito obrigatório para cinco outras, o sistema simplesmente não alertava ninguém. O resultado foram alunos sendo matriculados automaticamente em disciplinas que eles não podiam concluir, o que gerou reclamações na comissão de cursos e uma planilha de equivalência manualmente revisada que demorava duas horas por semestre inteiro para ser montada pelos coordenadores.
A estrutura que realmente funciona no sistema de informação grade curricular
O modelo que resolveu o problema foi criar uma tabela de grafos de dependência usando uma abordagem topológica. Cada disciplina tem seu ID, e existe uma tabela separado que armazena pares de dependência: disciplina_pai e disciplina_filha, com um campo tipo_dependencia indicando se é pré-requisito, co-requisito ou complementação. O script de validação na matrícula roda uma busca em largura (BFS) a partir da disciplina selecionada e verifica se todas as arestas do grafo já foram satisfeitas no histórico do aluno. Esse processo leva cerca de 80 milissegundos por disciplina em um banco PostgreSQL com índices compostos, o que é desprezível frente ao tempo que se gastava antes. Um detalhe que ninguém avisa no início: co-requisitos são mais chatos de implementar do que pré-requisitos. Um pré-requisito se verifica no histórico passado do aluno. Um co-requisito precisa ser verificado no histórico passado E na malha da matrícula atual. Se o aluno não estiver matriculado na co-disciplina naquele semestre, ele não pode prosseguir. A implementação exige uma consulta separada que cruza a tabela de matrícula do período vigente com a tabela de co-requisitos. Se você deixar isso de fora, vai ter aluno aprovando disciplina e descobrindo só na hora do fechamento de histórico que estava irregular.
As armadilhas que aparecem só com o tempo
A equivalência de disciplinas entre currículos diferentes é o ponto onde a maioria dos sistemas quebra. Duas unidades acadêmicas podem oferecer a mesma matéria com ementas ligeiramente diferentes, e o sistema precisa decidir se aceita ou não a equivalência automática. O workaround que eu adotei foi criar um cadastro de equivalências gerenciável via interface administrativa, onde o orientador do curso pode vincular disciplina_origem, disciplina_destino e fator de aproveitamento (porcentagem). Isso elimina a necessidade de intervenção manual a cada caso isolado. A desvantagem é que você depende de alguém atualizando essas tabelas quando o currículo é revisado, e revisões degrades costumas acontecer a cada dois ou três anos sem aviso prévio. Outro problema recorrente é o fluxo de aprovação de disciplina por comissão. O sistema precisa permitir que o professor lance notas parciais, que o coordenador valide, e que depois o financeiro libere a matrícula para fins de emissão de histórico. Se qualquer uma dessas etapas ficar hardcoded ou mal segmentada, você vai ter gente reclamando que a nota "não aparece" ou que o histórico foi gerado antes do pagamento ser confirmado. A solução é tratar cada estado como um workflow com tabela de transição explícita, não como campos booleanos espalhados pelo modelo.
O que considerar antes de investir
Sistemas prontos como SAGE Educação ou TOTVS Educacional cobram por número de alunos ativos e por módulo contratado, e costumam vir com configurações rígidas de grade que exigem consultoria para ajustar. Para instituições com menos de mil alunos, desenvolver um sistema leve próprio costuma ser mais econômico a médio prazo, principalmente porque você não fica refém do cronograma de release do fornecedor para ajustar regras de matrícula. O custo inicial é maior, mas a manutenção interna cai bastante depois que a estrutura de grafos de dependência está funcionando. Se a decisão for por um sistema pronto, exija que o fornecedor demonstre como a validação de pré-requisitos é implementada antes de fechar contrato. A maioria deles mostra a tela de lançamento de notas e esquece de falar que a regra de malha horária conflitante é um add-on separado que custa à parte. Isso custa uma reunião a mais, mas economiza surpresas na fatura anual.
Por onde começar a implementar um sistema de informação grade curricular
O primeiro passo é mapear todas as grades curriculares ativas de cada curso em formato tabular, com colunas para código da disciplina, carga horária, período de oferta, tipo de dependência e código da dependência quando houver. Sem esse inventário, qualquer desenvolvimento futuro será cego. A partir daí, monte o modelo relacional com as tabelas disciplina, dependencia, aluno_historico e malha_matricula, e valide com casos reais de alunos que já estão transitando entre cursos. Teste especificamente duplos bacharelados, transferência entre campi, e estudantes que estão nas últimas fases do curso, que é onde os bugs de dependência aparecem com mais frequência. Se o fluxo passar por esses três cenários sem erro, o sistema provavelmente aguentará o dia a dia do semestre letivo.
Galeria
-
Estrutura curricular do Bacharelado em Sistemas de Informação – DCC/UFMG -
Grade Curricular | Departamento de Computação e Sistemas (DECSI) -
Matriz Curricular Do Bacharelado em Sistemas de Informação v.25082022 ... -
Matriz Curricular | Sistemas de Informação