Project Title: Use of Djikstra's Algorithm in Course Sequence Optimization
Problem Statement: Given that a student has already taken a set of classes and wishes to take a specific class for graduation requirements, what is the most optimal way to fulfill the chain of prerequisites to take said class according to course workload information?
Motivation: When I was looking up courses while contemplating possible paths in college, I was overly frustrated that it was immensely complex. Figuring out the chain of prerequisites I would have to take for a class I was interested in meant tediously shuffling between websites. It occurred to me that it is possible to automate this process…and while we are at it, it would be useful to include info from student surveys about the difficulty of courses.
Method: A small example network is shown below (left) where the arrows represent the prerequisite relationships between courses and each arrow’s number represents the “difficulty” of taking a course. We will use Djikstra’s Shortest Path Algorithm to solve for optimal course sequences. An example run of the first few iterations of this algorithm is shown below (right).
Results: In my program, users input what courses they have already taken, and what course they would like to take. The program then calculates the optimal path to take by using a “difficulty” database such as Q-Guides or any similar system. The program can be downloaded here. To run this program, you will need MATLAB.
Note that in order to run the program, you will need to also have a separate text file detailing which courses are prerequisites for other courses along with course difficulty information. An example of such a file can be downloaded here.