CS290F Project Ideas

There are a couple of ways to approach doing a project. The first is to determine whether you want practice in hands-on implementation of a system or whether you want to work on a research-style project. These two choices are not mutually exclusive, but realistically speaking, trying to do both in a single quarter is. Also, since the class is a combination of MS and PhD students, some students may be less interested in a research-style project. I believe that the span of possible projects can reasonably include either type.

Regardless of which type of project you are interested in, consider the following PRELIMINARY NSF Report on the future of wireless networking research. Even though this is about wireless networks specifically, there is quite a bit in the document that relates to multimedia. (Note: developing an accurate vision for the future is a hard process. Take whatever anyone intelligent ever says about the future and incorporate it into your own vision.)

The projects this quarter also have a great deal of flexibility with respect to their relationship to "multimedia". Projects can either be about multimedia or for multimedia. In the later case, the project might also be useful for other data types. For example, you could work on a project that studies the impact of wireless link loss on TCP-based delivery of multimedia content (not very original, but it serves its purpose as an example).

If you are interested in a hands on project, one of the directions in which to do is to simply to gain experience in taking video from a camera, encoding it, transmitting it over a network, decoding it, and displaying it. While the idea is simple, often times, the implementation is not. The variety and challenge of a project like this would be how much you rely on existing tools as part of the end-to-end process and how much you do on your own. For example, there are plenty of library routines (or even complete software packages) that allow you to pull video from a USB-connected camera. While there isn't much to do if you just pull existing solutions, the real goal is to design a challenging project around what is available. You might implement pieces yourself or you might evaluate the transmission of the video in a wireless environment to see how it responds to loss. Part of evaluating the project proposal then is to see what you can come up with that is an interesting and non-trivial problem.

If you are interested in a more research-style project and you don't have a good sense of what to do, your absolute best friend will be existing literature. It will serve you in two ways: (1) it will give you a sense of what others think are interesting and hard problems on which to work; and (2) it will give you a sense of how others are evaluating their ideas. Given that we are spending a decent amount of time at the beginning of the quarter talking about idea evaluation, you will want to think hard about what you want to say about your idea when you evaluate it. (Imagine standing up in front of the class and independent of what your actual idea is, once you've described it, what are you going to say that sets it apart (and above) from what's already been done.) In this regard, you probably want to draw upon experience you already have in analysis, simulation, or implementation skills--we aren't going to be spend time talking about simulators, that's a skill that's covered in CS276.

Finally, the two options presented so far are somewhat on opposite ends of a spectrum. I fully expect there are some folks in class who are interested in doing a research-style project but don't have the experience in analysis or simulation to really do a full system evaluation. My suggestion in this situation is to a proof-of-concept evaluation. Basically you show that the system can be implemented and that it works. You might develop some observations about how well it runs, how quickly it runs, or you might be able to test it under different factors (e.g., you develop motion tracking software for a camera and you test it to see how well it track when you do jumping jacks). Depending on how interesting the results are, the proof-of-concept evaluation might turn into something really inter sting.

Project Examples

The following is a list of examples that I thought might be interesting projects. At least some of the projects are brand new. That then means that some are not new. A "not new" project, while less interesting to the rest of the world, may be interesting to you because it is a problem you would like the experience of building. All of these projects include a wide range of potential complexity. In many case, to do the project "right" will require more than a month to complete. In this case, plan on completing a significant piece that can stand on its own. Half-completed or half-working on bigger projects will earn very little credit unless it is clearly stated how what you have completed fits into a larger project. This "incremental project" idea only works if you convince me that you plan to continue working on this project beyond this quarter.

The list of projects includes: