A Bit of History

The Beginning

I hate when humans have to do "algorithmic work." If a task takes a lot of time but not a lot of thought, I don't want to waste effort performing it. Instead, let me tell the computer the basic information it needs and let it do the annoying work on its own.

This application actually started as a website my Freshman year at UVM, when I was still learning PHP. I wanted to look for a whole list of courses in UVM's registration system, and found that it couldn't be done in one step. I had to search for one class, write down its times, then move on to the next. Algorithm Man to the rescue!

I quickly created a program that would allow me to perform that kind of search, and got wildly carried away with getting the computer to recognize complicated queries the user might write. If you typed, "CS-103-A and CS-021 on Mondays or BSAD-141 with prof Kraushaar," for example, it would dutifully list exactly the courses you'd expect.

Of course, it occurred to me that I could take it to the next step, and let the computer actually combine all those courses into "The Ideal Schedule" so that I wouldn't have to do any work at all (besides listing my degree requirements). I attempted it, but didn't get very far. For a while I had it producing reasonable schedules some of the time, but it was never very reliable and I somehow ended up ruining it in trying to improve it.

I abandoned the project.

The Middle

Four years later (my senior year), I took a class called Human-Computer Interaction. The goal was to design user interfaces that would be easy to learn, efficient to use, and aesthetically pleasing to boot. Whatever could I do for a semester project in the class?

I settled on revisiting my Searching for Courses project, since the old interface (typing in all the courses you wanted) was hard to learn, inefficient, and downright ugly. I'd create a bigger, better, prettier program, with more features, making it more reliable.

This, however, was an interfaces class, and getting the program to work counted for nothing. It just mattered that it have a good user interface.

I finished the project with a decent interface, but without any real functionality behind it (beyond that which was necessary to create a gripping demonstration at the end of the class).

The End

When I decided to pursue the Project option for the Computer Science Master's program, I came back to the program I'd just finished with the thought of finally getting it to function the way I'd always wanted.

So here I am now, crafting the interface that never worked and the algorithm that never existed with the concept that was never completed into a program of immeasurable use to students, advisors, and registrars at any university.

On the other pages in this section I have screenshots of the old (original) website application and the new (interface) application. I also have details about how the project is progressing to date.