NTU Course Planner for the Smart

While other course planners try only to fit a workable timetable, this planner ensures you the minimum time you need to spend in school, and guarantees you sufficient lunch time every day.
1. Fill in your course codes at "Enter course code"
2. Schedule
3. Click the top of the result, the smaller score means better. That's it!
@yuan3y, Dec 2014.

Vacancy Information (optional): vacancy information is optional. To get started, you should enter some course code first (see the section below). As long as the box below remain empty, vacancy information will not be taken into account during automatic scheduling. To obtain vacancy information, you need to copy some stuff from STARS Planner and paste it in the box below.

You need to log in to StudentLink, open STARS Planner, enter all the courses you have loaded (see below) into STARS Planner, then click STARS Planner's "Plan" button. You will then be taken to STARS Planner's timetable page. You don't need to do anything there, because the source code of that page already contains all the vacancy information you need. Just copy the entire page's source code and paste it here. To see a page's source code, you can press CTRL-U (for newer browsers) or you can right click on the page, and look for something similar to "view page source".

Note that when the box below is not empty, yet the source code copied from STARS Planner does not contain information for your course/index, the corresponding course/index may nevertheless be scheduled, but there will be some "undefined" in the result box. You can disable the corresponding course/index to stop it from being scheduled (see "Courses").

With great gratitude, I would credit Hou Yunqing the original author of this code. My improvement is mainly changing the weights to take free day and lunch time into calculation.

@yuan3y, 2014.
Enter course code
(e.g. HW0110) and click Load course. When all your courses are loaded, click Schedule. This program by default prefers timetables without session in the morning. You can set the undesirability score of morning sessions in the number boxes below the Schedule button. The overall score of each timetable will be computed and the timetables will be sorted from best to worst.
Undesirability: (for people who can't get up in the morning! The more positive the more undesirable a session in the morning would be deemed. Don't go negative, unless you are so eager to get up early)
830-930 (even week) 830-930 (odd week)
930-1030 (even week) 930-1030 (odd week)
Lunch Break
Reward, put positive to welcome free days: Free Day
Badass (a.k.a. skipping lectures)
you can disable specific course or index by unchecking the box in front of it. You may need to do this as not all listed indices may be taken by you (for example, HW0230 has 50+ indices, only a few of which may be available to your school). When you have unchecked certain courses/indices, simply click Schedule to rerun the scheduling process.
click any line to see it displayed in the timetable at the bottom. If you have provided vacancy information, the corresponding vacancy will be shown in brackets after all the index numbers. When "undefined" appears, it means you have not provided the correct vacancy information. Depending on what you need, you may uncheck the box for the corresponding index/course, or you may follow the instruction on top of the page to re-enter the vacancy information. The number inside the brackets at the end of each line indicate the computed undesirability of a timetable (see Undesirability under "Schedule" button).
Fork me on GitHub