Areas: Machine Learning, HCI
Problem: So, it turns out that I have a lot of music. I have rougly 11,000 tracks over 7-800 CDs. Naturally, they're all ripped and sitting on disk. I even have a cute interface for organizing and searching through my music (it includes incremental search, for example), and arbitrary playlists.
It turns out that one of the features I really need is shuffle. Sure, I have a shuffle button right now, but it's woefully inadequate. What I really want is to give the program some criteria for picking songs (either an explicit list, or something like "hiphop from the 80s") and have it act as a DJ. As any DJ will tell you, one of the things you have to do is provide a notion of a global variety of music (within a given theme or themes) while maintaining local consistency. For example, sudden changes in tempo aren't always desirable, nor would be playing the same artist twenty times in a row (though playing the same artist two times in a row followed by a different artist two times in a row might work just fine). I'm sure you can imagine other possibilities.
Of course, my view of consistency is different than yours, perhaps, so the system needs some kind of mechanism for adapting to individual users over time. Thus, we think machine learning belongs here.
What needs to be done: At this point we need a demonstration of a prototype. The deliverable, then, would be a prototype, code and some documentation.
Note that this project interacts with another on a moving music window.