Each year at the beginning of a new academic semester, most advisors face a very common and particularly tedious and time consuming problem: deciding for each student what course schedule would be ideal for the following semester so that the student would graduate in the fastest possible time and also have his / her specific preferences and pre-requisites satisfied. The factors that have to be considered vary from school specific requirements such as course pre-requisites, co-requisites, spring and fall offerings, to student specific ones, such as transferred credits or the subjective desire to choose or not a given choice. While some advisors might be able to derive reasonable solutions in reasonable amount of time, the process takes most of the advising time. The student will have to "trust" the advisor that the given schedule is the best choice, and in many cases the results will later on prove that the student could have actually graduated faster, or that specific school requirements have been violated or imply that the student's load and preference could have been balanced better. This paper presents a software application that can completely solve the presented problem. Once the school specific data and requirements have been set, for any specific student information, the application will search and output the schedules that will allow the student to graduate in the fastest number of semesters / quarters possible. Depending on the factors and data considered, the execution time varies from few seconds to few minutes. Currently, we have successfully tested and implemented the application at the University of Bridgeport, CT, USA