Muitas disciplinas influenciaram direta ou indiretamente com mais ou menos intensidade o desenvolvimento do projeto. Listarei abaixo apenas as disciplinas que foram mais importantes para sua concretização:
Certamente essas disciplinas forneceram a base para todo o curso. Através delas, aprendi as técnicas mais básicas de programação, utilização de estruturas de dados mais complexas e a pensar algoritmicamente na solução de um problema. Foi o primeiro contato com o conceito de algoritmo e a preocupação com sua eficiência.
Laboratório de Programação I possibilitou o primeiro contato com um projeto maior, e Laboratório de Programação II introduziu uma linguaguem orientada a objetos: Java. Ambas as disciplinas foram muito importantes para o aprendizado da programação em equipe, divisão das tarefas entre o grupo e cumprimento dos prazos de entrega.
Em Laboratório de Programação I também aprendemos uma linguagem de script, que é extremamente útil para automatização de tarefas rotineiras. Embora o projeto tenha sido desenvolvido em Java, foram escritos scripts em Perl que possibilitaram o desenvolvimento do projeto na Rede Linux. Estes scripts eram responsáveis por fazer o download e configuração de programas como o Tomcat, JBoss, e o banco de dados Postgres, em diretórios temporários.
Não poderia deixar de citar disciplinas que forneceram importantes conceitos de programação. Conceitos Fundamentais de Linguagens de Programação apresentou os diversos paradigmas de programação, destacando suas vantagens e desvantagens, e ensinando-nos a escolher o ideal de acordo com a aplicação a ser desenvolvida. Engenharia de Software forneceu o conhecimento necessário para implementar e desenvolver um projeto de forma organizada, além de métodos para testar o sistema.
Os conceitos apresentados nesta disciplina foram muito úteis para a modelagem de um WF utilizando Redes de Petri.
Como o próprio nome já diz, nessa disciplina foi ensinada a análise de algoritmos, detectando seus pontos ineficientes e provando formalmente seu correto funcionamento. O conhecimento adquirido foi utilizado para analisar alguns trechos de código do sistema.
Embora não tenhamos modelado o sistema e escrito consultas SQL, os conceitos aprendidos através desta disciplina foram essenciais para a compreensão e utilização de uma implementação do JDO (Java Data Object).
Algumas disciplinas não cursadas, cujo conteúdo estudei sozinho, foram essenciais para o desenvolvimento de um projeto orientado a objetos. Entre as quais posso citar Programação Orientada a Objetos (MAC441) e Tópicos de Programação Orientada a Objetos (MAC413).