Fall 2005: CPS 296.1
Self-Interested Computing: Doing the right thing for the wrong reason.
Meeting Time :: MW 4:25-5:40
Meeting Place :: LSRC, Room D243
Office Hours :: Thurs 1-2:30; LSRC, Room D304.
Course Instructor :: Landon Cox

LATEST | COURSE DESCRIPTION | SYLLABUS | DEADLINES | PROJECTS
LATEST [12/7/05] Projects must be emailed to me by Friday, December 16 11:59PM (hard deadline, no exceptions!).
DEADLINES The syllabus and reading list are available here.

Friday, Dec 16: Course project.

PROJECTS The project is by far the most important part of the course. The primary goal I have for this course is to generate new research ideas and the project gives us an opportunity to explore these new ideas. Projects will be done in groups of two or three. I don't mind self-selecting groups, although I don't mind assigning groups either.

The project itself should result in a paper at the end of the semester. The paper may describe a system you built or a model you designed. It should generally be about 8 pages and "extended-workshop" quality.

I would like projects to coincide one of the paper topics so that the those who pursue projects in a particular area present the corresponding papers. If you are interested in another area, just let me know and I will try to accommodate you. Good places to look for project ideas are Sig comm, SOSP/OSDI, and the Workshop on the Economics of Peer-to-Peer Systems.

Here are the areas that I am most interested in:

Delay-tolerant networks:

Can we use mobile nodes as a transit layer? Everyone at Duke carries around a large storage device (iPod). What if you could temporarily copy data to someone's iPod, they walked to another part of campus, and the data was dropped off or passed off to someone else? What are the compelling uses of such a network? What is users' incentive to "mule" data for others?

Context sharing:

Mobile computing has focused on overcoming the vagaries of wireless communication so that services for mobile nodes behave as well as those for their stationary counterparts. The next generation of mobile computing will likely use rather than tolerate mobility to create new services. Examples of include services such as mobile social networking (who in my mySpace network is in this room?) and using physical context to organize data (where was I when I took this photograph?). These applications will require users to share information about themselves to be useful. Balancing users' privacy concerns while encouraging them to share their information is an open question.

TCP/BGP:

How do incentives affect Internet traffic? What is end-users' incentive to obey TCP congestion control? What are ISPs routing incentives?

Wireless Mesh Networks:

Multi-hop wireless networks need participants to forward messages on other users' behalf. There is a strong disincentive to forward since this consumes network bandwidth and, in mobile deployments, battery power. Can you design a protocol that encourages users to route messages for others? The broadcast medium might give you greater leverage.

COURSE DESCRIPTION Many emerging technologies such as peer-to-peer networks, wireless mesh networks, grid computing, and delay tolerant networks depend on independent participants' willingness to donate their excess capacity to a common resource pool. Unfortunately, studies across a range of deployed systems have observed widespread self-interested behavior. Users frequently lie, cheat, and steal to avoid doing work for others. This is because most computational resources are exclusionary (they cannot be utilized by different users simultaneously), which forces volunteers to incur non-trivial opportunity costs. At their best, these disincentives to share can deplete the resource pool. At their worst, they can trigger a system collapse.

In this seminar, we will examine how sharing-based systems attempt to align the interests of their independent users with the interest of the collective and try to identify opportunities for new research in this area. Students will be expected to read, present, and discuss relevant research papers throughout the semester. Grades will be based on a semester-long project and a mid-term exam.

Despite the course number, you do not need to be a computer science grad student to take this course. Knowledge of current systems research will be helpful, but is by no means necessary. The only hard pre-requisite is that you find systems like BitTorrent and Overnet interesting. Whether you find the engineering or users' behavior within these systems interesting is unimportant. Course projects can involve systems building, empirical measurement, or formal economic modeling.