Last update: 8/Sep/08
The goal of the project is to build a secretary bot that would mediate on behalf of the user and manage their attention. Instant messages should only be allowed if the user is not working on something important. Arrival of unimportant emails need not be notified whilst the user is engaged in a complex task. Phone calls can be forwarded to voice mail directly. At the same time, important interrupts should be allowed to go through. User should be reminded of and prepared for imminent meetings and appointments.
An example implementation might use XMPP to interface with google talk, use the google calendar API to store, and retrieve appointments, use Twitter API to send reminders to mobile phones, even when the user is away from their computers. Interaction with the bot could be in a language resembling natural english, to make it seem even more secretary-like. By integrating tightly with the OS you choose, you can detect what apps (tasks) the user is focusing on, and determine whether it is an interruptible moment or not.
[1] Models of Attention in Computing and Communication
[2] A diary study of task switching and interruptions
Skills and interests: HCI, NLP, Web 2.0 APIs
Challenge level: Simple. A safe grade would likely be easy to get. A high grade is not out of bounds, but depends entirely on your creativity in coming up with useful secretary-like features, and level of tight integration achieved with user's task flow.
Extension 1: A person who has a lot of SMSes free in their monthly plan could be used as a gateway to transmit tweet SMSes of people near by.
Extension 2: Hashtags have developed as a means to provide context [2]. For instance, users can subscribe to a bus stop (e.g. JJ Thomson Ave) and be alerted that their bus is about to arrive via tweets from other passengers at previous bus stops. Ditto for current traffic conditions in major cities. Use presence at a bus stop to detect what contexts other users are interested in, and develop a method to automatically decide which contexts to subscribe to.
[1] Pocket Switched Networks: Real-world mobility and its consequences for opportunistic forwarding
[2] Usefulness of Micro-blogging (see section on Twitter as Message Bus)
Skills and interests: Web 2.0 APIs, Mobile platforms
Challenge level: Moderately simple.
[1] proposes a way to distribute expertise information via email in a social network using a modification of bloom filters [2]. This can easily be extended to other kinds of keyword information as well. I call this spreading your aura. In this project, you will investigate how well aura can be spread in a social network by mining friendship data from an online social network such as myspace or facebook or orkut (APIs are available to help do this).
[1] Disseminating Expertise in Social Networks
[2] Bloom Filter
Skills and interests: Implementing algorithms and cool data structures
Challenge level: Moderately simple. With proper evaluation, this could be converted into a research paper.
[1] Folksonomy-based Reasoning in Pocket Switched Networks
Skills and interests: Social Networks, routing, graph algorithms
Challenge level: Moderately hard - most of the difficulty is in coming up with a convincing evaluation methodology for validating your solution. This could become a research paper.
[1] I Tube, You Tube, Everybody Tubes: Analyzing the World's Largest User Generated Content System
[2] Delivery Properties of Human Social Networks
Skills and interests: statistical skills, scripting (perl, python etc).
Challenge level: Hard - the difficulty is in finding interesting things in the characterisation. If done well, there is lot of scope to do great research. For instance, [1] got the best paper award at the 2007 Internet Measurement Conference.
This project would take an existing web application framework and add a preprocessor that would split code into server and client side executables. [1] is an excellent first attempt at doing this, and solves some of the most difficult problems ([1] got the SOSP 2007 best paper award). The contribution of this project would be to make it practical by embedding into a widely used web app framework (e.g. JSP, Rails, Django).
[1] Secure Web Applications via Automatic Partitioning (the PPT may be a good intro)
Skills and interests: Experience writing web apps, strong programming skills, knowledge of security
Challenge level: Very Hard!! If successful (and sufficiently improved from [1]), this will be an outstanding piece of research.