Build a simple Android or IOS app that reports back the user's
location to an authentication system, either PAM (for Linux login) or a
web authentication framework (such as PEAR Auth for PHP). If the user
location agrees with the location estimated by IP address of the login
request, use the normal login process. If not, add Google Authenticator
or another two-factor method (e.g., FIDO U2F) to the authentication
process. Consider other authentication factors, such as web browser and
time-of-day patterns.

Performance monitor

Monitor application performance and detect whether there are
network-related impairments, such as excessive retransmissions, delay or
packet loss. Try to discover the bottleneck (Wi-Fi, home access
network, network peering point.)

Network traffic monitor

It is often difficult for home or small enterprise users to tell who
is using the network for what, and who or which application may be
contributing to network congestion. Develop a set of measurement tools
that characterize local network performance and export the results to a
web page. Consider using OpenWRT and address some of the shortcomings
of common
tools.

Build Command Line IM client for BitTorrent Bleep

Bleep is BitTorrent's new messaging app that uses SIP over P2P to
enable users to send/receive sync/async messages and make voice calls
privately with no central repository of metadata. Bleep consists of two
major components:

Bleep core: A distributed SIP server that runs on each node. It
behaves like a normal SIP server that listens on the localhost and
responds to SIP messages. You can find more information on how Bleep
core works here

The alpha version of Bleep is already released for Mac, Windows and
Android and the iOS version is in the works but there is no Linux
client. The goal of this project is to create a simple command line
interface (SIP UAC) that talks to the Bleep core (will be provided by
BitTorrent Inc.) to enable sending and receiving messages to a single
Bleep contact whose public key is known. [This project is informally
co-sponsored by BitTorrent.]

Automated network security protection

Design a system that protects servers against data exfiltration and
unwanted incoming connections, by characterizing broadly the legitimate
set of protocols and connections by time, geography or protocol, and
creates ipfilter rules automatically. (Little
Snitch is a related example for desktop systems).

Characterizing CDNs

Characterize popular content distribution networks (CDNs) for
services such as Apple, Netflix or YouTube. Where are the servers located?
Is there a pattern to how servers are chosen? Develop tools that allow to
gather information about network paths and selection stability.

Using BitCoin blockchains for non-monetary purposes

Explore how to store and retrieve non-monetary content in (BitCoin)
block chains, e.g., to distribute public keys or to prove
first-to-invent claims. Characterize the computational costs, network
bandwidth and latency.

Indoor location accuracy measurements

While locating people and devices outdoors has become easier with
the widespread availability of cheap GPS (and other satellite navigation
systems), it is still difficult to find people indoors, e.g., when they
place a 911 emergency call and cannot identify where they are.
Combining multiple location technologies, such as Wi-Fi, BlueTooth
beacons ("iBeacon", BLE), barometers, magnetic sensors and inertial
measurement units can help identify the caller's office or apartment.
Measure (A set of Estimote BLE beacons are available for
experimentation.)

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.

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. Include the detection of IPv6
capabilities. For example, 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.

WebRTC conferencing

Using WebRTC, 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.

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.)

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.