Step 1: Enter in your classes
Instructions: Enter in a tab delimited set of data consisting of: class name, instance id, days, times. For classes that have complicated day/times, enter multiple lines for the class using the same ID (see examples 6126 and 7546). Tip: You can use a spreadsheet application such as Excel to format your data into this format, then copy and paste into the above text area. Note: Days must be one of the following: Sun, M, T, W, Th, F, Sat, and times must be in the range of 1-12. -- You can also add a letter at the end which specifies the location of the class. Furthermore, you can then enter in the amount of time it takes to commute from one area to another in the format "A>B=60", meaning that it takes 1 hour to go from A to B.
Step 2: Select your classes
Class | Time | Options |
---|
Instructions: Choose which class instance you want to use. Most of the time you should leave all of them as "Auto select". Choose "optional" for those classes which aren't mandatory and should only be added to the schedule if there is an available space for them. Choose "required" if the class is mandatory. And choose a letter if one or more classes can be used to satisfy the same requirement (e.g. if MATH101 and MATH115 are interchangeable, you can set them both to "A").
Step 3: Choose your schedule
Tip: Place your mouse over one of the colored blocks in the week view to see the name of the class and its exact times.
Class | ID | Times |
---|
Hey, I was researching this particular top and stumbling upon your blog. It is a really cool and unique application you got there.
ReplyDeleteI am trying to make a similar thing for my school in asp.net and xml or sql database.
Did you do this entire thing in javascript?
Can you give me some tips how you do this project? Especially the data structure: How do you store a class section and compare if they overlap or not. And to get a schedule, do you just basically DPF through all possibilities?
Thank you
@Khoi Tran:
ReplyDeleteHi,
Yeah, it was all done in JavaScript, which means you can take a look at the code if you want.
The data structure is similar to:
Class (e.g. ENGL101) -> Instances (e.g. 5412) -> Times (e.g. M 10:00 am - 12:30 pm)
As far as the algorithm goes, I just try every single combination and only keep those that don't conflict. It's not super efficient, but it seems to be sufficient.
This is absolutely amazing! I had 6 courses to sign up for; with multiple sections of each, there were a total of 33 courses. This software sorted them without a problem. Some of the classes start at 7:00 am and some run from 5:00 to 9:00 pm. This made it 1000 times easier to avoid starting at 7:00 am and finished at 9:00 pm. I have searched and searched the web for this exact kind of application. You really need to develop this into an App for iPad. This is beautiful!
ReplyDeleteHi, I'm trying this application but it doesn't seem to work for me :(
ReplyDeleteI don't now why.
I've really been looking for this in the entire internet.
This is amazing!! You could make so much money if you made this into an app!! Thank you!
ReplyDelete