This project idea originated as an assignment in Introduction to Intelligent Systems which was carried over into Advanced Topics in Intelligent Systems. The Problem under consideration is to determine the best (or near best) schedule of classes a University can offer based on maximizing enrollment. Input constraints can include the number of classrooms available, number of meetings per week required, when students and professors are available, etc. It is easily seen that this problem is NP complete (meaning the time to find a solution grows exponentially with the problem size).

So, with the exception of very small Colleges and student populations, it is not possible to solve for best schedule by checking all combinations of schedules (exhaustive search). We therefore turn to an [Evolutionary Computation Algorithm ] which is modeled on how people are sometimes thought to find solutions. In other words, make some guesses and look for patterns that cause one guess to be better than another. Then make new (hopefully better) guesses reiterating the process until a satisfactory (but not necessarily ideal) solution is found.
The original proposition was quite limited. As the I developed the project, starting with the GUI, more and more ideas were added to the list of future enhancements. [example].Finally some explanation of the input format of the data files is needed. I am working in collaboration with Vitaliy Opalikhin. Vitaliy is working on similar tools but focusing on developing a means to obtain real data from students through a Java Enterprise enabled site. This will help avoid problems inherent in generating data using a pseudo random source.