15-446 Projects
These are just rough sketches of ideas. Feel free to email me to
clarify. Also, not all the projects are really the same
size/challenge. As part of the proposal, you should "resize" the
project to what you think you can get done by the end of
April. I will provide feedback on whether you need to add/delete
stuff from your proposal.
Collaboration Applications
- Shared event recording
- Class note taking. Implement a shared note taking system for
classes. Take a look at
http://www.research.ibm.com/journal/sj/384/landay.html for
some ideas.
- Photos. Perhaps linked to Photosynth but have a time aspect to the
view
- Audio. How do we merge the audio clips and determine their
relative timing/content.
- Classroom tools
- Polls, Q&A. Build tools that allow instructors to take quick polls
or perform Q&A with the students.
- Collaborative editing
- Whiteboard, documents. Build a collaborative editing tool with
various consistency models (depending on the type of
document/chosen by the user)
- Distributed IM. Can we build an IM system that makes use of local
communication. Perhaps something that leverges geocast (tell
people in this area)
- Distributed Pubsub. Build a publish-subscribe system for
Android. Use gossip to propagate updates between phones. You
could use this to share photos, songs or other content based on
specific attributes.
- Reviewing/reputation designs. Build a reputation system that lets
users rate nearby objects. Key issue might be maintaining
privacy (I have a paper design that I can provide). You could
rate photos, files, songs, 802.11 access points, restaurants and other services
Games
- Strategy games. Build a slowly played game where moves are
exchanged opportunistically via gossip.
- GPS-based games. Build a location-based game with real-time updates
- Standard game. Build a networked game with a mobile client.
Application Distribution
- Get updates and find new applications in a P2P fashion. We
currently get app updated only via the app store. Can we
switch this to using the bittorrent from the project below?
- P2P filesharing for mobiles. Build a bittorrent client for the
phones that takes advantage of both cellular and local
connectivity.
- Control running code/experiments on distributed nodes. We would
love to go to Google and get 1000+ phones for campus. How
would we manage these phones. Could we send commands out to
all of them quickly, perhaps use some gossip protocol. What if
we wanted to collect data from them or run experiments?
- Framework for P2P routing of messages through phones. It would be
nice for a wide range of applications to have a simple,
lightweight, multi-hop routing system for phones. Can we take
advantage of GPS position to help routing or to decide whether
multi-hop is worth it? This could be used for VOIP or other apps.
- DOT client for phone. Can you carry content or partial content
with you and reintegrate with downloads. See the http://www.cs.cmu.edu/~dot-project/
Social Network
- Locating friends via multi-hop communications. Can you find your
friends nearby? Without revealing who your friends are? Take a
look at this paper on how to find friends in email (http://www.cs.princeton.edu/~mfreed/docs/re-nsdi06.pdf)
- Implement SybilGuard. SybilGuard is a system that uses social
networks to prevent sybil attacks. See http://conferences.sigcomm.org/sigcomm/2006/discussion/showpaper.php?paper_id=26
- Shared "bulletin boards/post-its". What if we had monitors all
over the new Gates building. Could we leave post-it notes for
our friends or have customized bullitin boards?
- Trajectory recording. How about leaving information about where we
have been recently as a post-it? How do we update/collect
trajectory info?
Sensor Networks
- How many people near you? Can you identify the number of people
running your application with a few wireless hops? A neat idea
might be to use some of the synopsis diffusion sensor query
techniques (http://www.cs.cmu.edu/~sknath/sd.htm). You could
integrate this with maps to provide "how busy are certain
places" or "how slow is the traffic".
- Image/audio sensing. Could you take audio recordings from multiple
locations and merge to make a better version (e.g., remove
background noise?) Or use images as part of Photosynth from
MSR (http://livelabs.com/photosynth/).
- User-entered sensor feeds. Things like prices and weather.
- Incremental localization. GPS works well outdoors. Can you use
wireless multi-hop to reach a set of people nearby with GPS
coordinates and then infer your own. See this paper
- Intel's Fast Food Cam. We are looking for a team to develop a
client/server architecture in which a user capture images of
fast food with the camera on their phone and the images are
shipped to a server (ideally running on Intel's cluster) which
will run image processing algorithms to recognize the food and
estimate its nutritional content. The server will then ship
back to the phone either a digest of the nutritional info, or
the original image with the nutritional information overlaid
on it, so the user can find out in nearly real-time what they
are eating and how many calories it contains. The client-side
application would ideally be location-aware, so as to provide
helpful clues to the server-side food recognition algorithm
about the restaurant the user is visiting. An ambitious team
might also investigate the user interface best suited to
presenting the nutritional information, and for allowing the
user to interactively narrow the set of choices to improve the
accuracy of the food recognition system.
Intel has a good
handle on the image processing aspects of the project, but are
really looking for help with the client (phone) side of the
system. If the project is successful, there is definitely the
opportunity for the project to continue through the summer (as
a paid summer fellowship at Intel) and into next year.
Last updated: Thu Apr 09 13:21:13 -0400 2009
[validate xhtml]