I've had some limited experience with algorithms for schedule generation, but have worked on similar programs in the past.
Are you planning to create an algorithm that will generate a schedule based on the classes requested by students? If so, the algorithm is basically trying to give each student as many classes that they wanted as it can.
There are a few general ways of doing this:
1. A simple brute force solution. This kind of algorithm will run through every possible scenario, add up the number of satisfied students or granted classes, and find the best schedule. Although it is the easiest to code, it is the most inefficient- it will take the most time to run, and isn't usually considered an elegant solution.
2. Alternately, a more efficient algorithm might examine which classes were requested most often, and add them to the schedule first. Since each student has a limited number of class spaces, some class assignments might result in conflicts. However, using this method should reduce the pool of possible schedules, which can then be more easily brute-forced.
If you have had some experience with computer programming, this site
could be a useful resource. Genetic algorithms are the recommended method for creating schedules, as they have high efficiency and good results.
If there's anything specific that you're confused about, please don't hesitate to ask!
Hope this helps!