Thursday, December 28, 2006

First Release

This is Modulo's first release.

download verision 1.1 here

download mac version 1.1 here

please post your suggestions here! thank you!

instructions:

  1. download the program
  2. run it
  3. type in your module codes
  4. click options to set your preferences (optional)
  5. click "go!" button
Features:

  • attempts to find classes which start later in the morning (No morning class option)
  • attempts to find classes which give students a lunch break (Have lunch break option)
  • attempts to give students as many free days as possible (Maximise free days option)
  • attempts to give a compact timetable (new hidden feature)
  • gives all in one program where you can view module information as well as view your timetable
  • shows when exams clashes
  • easily change or swap modules by one click
  • gives solution quickly without hassle of timetabling yourself
  • gives "no solution" quickly so that you can select other modules quicker
mini-faq:

what is Modulo?
Modulo is a program which was originally developed by three students (bruce chia, lim zhan wei and alvin ng shi jiin) as part of the University module's project to demonstrate Constraint Satisfaction in Artificial Intelligence in the area of timetable building. They then sought to improve it for public use and are maintaining this website here.

what was Modulo programmed in?
Modulo was made with Macromedia Flash 8tm and programmed entirely in Actionscript.

why does Modulo reside only on the web/ why must i download Modulo?
Modulo was originally made in Macromedia Flash so that it could be put on the web. However, due to certain null pointer errors in retrieving html data from the cors module listings, we couldn't find any solution to work around it. Perhaps if more people post here to request some changes, cors might do something about it.

how does Modulo work its magic?
Modulo works by using an Artifical Intelligence technique called Constraint Satisfaction. It first downloads the html data to the program and parses it into information which it can use. Then it does a search for a solution by enumerating all the possibilities of slots with some optimisations with certain algorithms like constraint propagation according to the options set. Finally it displays the output to your screen.

3 comments:

Anonymous said...

Hey! It looks cool! Keep up the good work!

Anonymous said...

Wow this is really nifty! How did you parse the module data?

Unknown said...

i just read in the html as text and parse the words inside tags.
quite hacky so i hope cors doesn't break.