COMS 6181 Projects
All projects should consist of teams of three students. The topics
below are suggestions; I'd be happy to discuss other suitable topics that
match one or more themes of the class.
Projects can be implemented on PCs, MacOS or a mobile OS (IOS, Android).
Teams need to submit a project plan.
- iPhone/Android rich presence
- Using the iPhone, Android or other smartphone platforms, build a
system that reports the value of its sensors, including local time,
geospatial location, acceleration, speed, light level, sound level and
user activity, via "rich presence".
Build a web interface for a SIMPLE rich presence server. Try to detect
common activities, such as walking, by the output of the accelerometer.
- Home intercom
- Build a home intercom using standard protocols. The intercom should have
no central server, and work by push-to-talk and multicast.
- Location measurement accuracy
- For mobile devices, compare the location determined by WiFi, GPS or
cell tower to the actual location. Collect statistically valid samples across
a range of environments (indoor, urban outdoor, open field).
- Location measurement using Bluetooth
- Use BlueTooth devices such as keyboard and mouse interfaces to
determine where a mobile device (e.g., Android, iPhone) is located.
Only take into account fixed devices, if possible.
- What kind of Internet am I on?
- Many parts of the Internet, whether in homes or hotels, businesses
or buses, are no longer transparent and only offer a limited subset of
capabilities, from delivering unicast packets only to restricting the
ports that applications are allowed to use. A draft prepared for Internet2
describes some of the distinctions. Extending our DYSWIS tool (written
in Java), the project should implement an easy-to-use tool, using Java
or Flash, that detects the capabilities of the current Internet
connection.
- Automatic speaker recognition
- During phone conferences, it is often difficult to tell who is
speaking, particularly if the group meets only infrequently. Using
existing speaker recognition technology, build a tool that, given a list
of names and speech samples, tries to determine the most likely speaker,
sending the name by IM to the participants and/or displaying it on a web
page.
- Web 2.0 conferencing
- Using Ajax and similar technologies, create a simple web
conferencing application that allows a group to collaborate by text
chat, file exchange, floor control and voting, possibly supplementing a
phone conference.
- Echo detection for VoIP
- Detect whether a voice channel has echo, so that a network
management application can monitor the quality of a call or
conference.
- Location privacy
- Consider how to improve location privacy for users, e.g., in Google
Latitude. Consider location fences, Facebook groups and similar
mechanisms.
- Acoustic user location
- Using two or more microphones, determine the approximate location of
a speaker in a room. (You may need to acquire additional hardware for
this project; please discuss possibilities with the instructor.)
- Content distribution network using NetServ
- Using our NetServ (Java-based) programming environment, build a
content distribution network that optimizes content delivery on a national test
network (GENI).
- Location-aware BitTorrent
- Make BitTorrent location-aware, so that it preferentially retrieves content
from nearby sources, such as within the same home.
- Proximity-aware devices
- Discover other devices within close geographic proximity, if they
match the same interests or group. Example uses: games or
collaboration (e.g., in a classroom, at home or conference).
- Location-based information
- Build a web or smartphone application that uses location-based
services (JavaScript or smartphone APIs) to allow users or owners to
annotate locations on a map with text, photos or audio narration. This
could be used, for example, for building guided tours for nature areas
or parks.
- Multiple interfaces
- Accelerate downloads by using both wired and wireless (802.11) interfaces,
or both cellular data and 802.11. Consider mTCP and SCTP, as well as application-layer
options.