This is an old revision of the document!
1. Mobile phone programming
Implement an interesting application with some wireless/mobile networking component. I mentioned a distributed Bingo example.
If you are interested in mobile phone games then check this link out:
Implement a wireless mesh networks on Linux nodes, with a server that decides various parameters, i.e., which channels each node should operate on, what should the topology look like. We will give you code to implement the optimal choices, and you have to implement the messaging between the mesh nodes and the central server, ensure robustness, etc.
3. Video multicast
How can you implement a WiFi multicast service in a single hop wireless LAN. I have a sketch of the multicast protocol and you will have to implement this, mostly at the application layer, but with some kernel and driver-level mechanisms. In Linux.
4. Client-assisted wireless management
Implement a toolkit for Windows laptops and Windows mobile devices, that will accept certain commands from a controller node and execute certain simple measurement tasks, e.g., conduct some pings, do some bandwidth tests, etc. The server will aggregate measurements from many such clients and then create a nice view of the entire network. Show this either for an indoor enterprise WLAN or an outdoor wireless mesh.
5. Energy efficiency for mobile devices
There is a specific technique for energy efficiency called the power-save mode in the 802.11 standards. However, in its current form, the latencies are high. We have a new technique that will allow each client to have low latency, and yet have power saving benefits. Will involve various low-level kernel and driver level mechanisms in Linux.
5. Video streaming from mobile phones Implement a full live video streaming system from a Nokia N95 (Symbian) or Nokia N800 (Linux) mobile phone. Then investigate performance (throughput) and energy costs, and try to optimize them. The basic implementation of a streaming system itself will be quite interesting.