This repository was archived by the owner on Jan 21, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 3
Milestone
Jenny Zeng edited this page May 11, 2017
·
4 revisions
Report third draft
- integrate some terms in the introduction to two related algorithms;
- add two figures to illustrate the labeling process;
- correct grammar mistakes.
Report second draft
- edit based on Professor's comments
- find that there are different versions of the C-G algorithm
- detailed term definition
- add transitive reduction illustration on the introduction to the C-G algorithm
- edit course scheduling algorithm pesudocode
Report first draft done!
- Related Work section continues...
- Experimental results
- Conclusion
Report second draft 2/3.
- Related Work continues...
- Course Scheduling Algorithm description
Report first draft 1/3.
- Introduction
- Related Work
- Terms definition
Project research report outline
- Customizable width function for every level
- Use 6 quarters history to get a more accurate result
Implement Hu's Algorithm by labeling each course with a distance.
- distance calculation: its own course value + distance to the "sink"
- course value calculation: the number of specializations it satisfies.
After labeling, when a user takes 20 credits per quarter, the user can fulfill requirements in 3 years. On the contrary, without labeling, it takes the user 3 years and 1 quarter.
- Allow input what courses the user want to avoid.
- Use one priority queue and one graph for scheduling, instead of multiple graphs
- Allow input courses already taken and schedule from the half-way.
- Use multigraphs to get a better result. (Order of input graphs matters)
- Use priority queue with a heuristic estimation for course values for better performance, but increase the time complexity
- Can set an upper bound range for the scheduling to get a valid schedule (take upper only restriction into account)
It will make schedules on a upper bound range and pick the most efficient one.
- solve the problem that some courses are upper standing student only.
- Set a upper bound advanced. The bound will prevent the algorithm from assigning upper standing only courses into a level < upper bound (specified in function).
- Update crawler to crawl special information related to upper only issue
- Try two different ways to solve the upper only issue in scheduling
- Add specialization information for scheduling
- replace the Scrapy crawler with a simpler crawler using BeautifulSoup and Request libraries.
- collect WebSoc info
- take units and quarters into account
- Create Course and CoursesGraph objects.
- Take prerequisite's AND/OR relationship into account for scheduling
- Use Scrapy to collect WebSoc information
- Write down the basic Coffman-Graham algorithm and basic graph representation.
Project starts!