15-849B Advanced Computer Networking - Projects

Students taking the course for credit will have to do a project. The project will allow you to put some of the concept introduced in the lectures into practical use. The project is a big part of the project. The proposal and proposal presentation account for 10% of the grade, while the final report and presentation account for 50%.

Format

You should form a team of two or three students and then jointly define your project. We expect the size and scope of the project to increase with team size. While each project should be an integrated effort, i.e. there is a single deliverable, you should identify both in your project proposal and final report what part of the project each team is responsible for.

Topics

We realize that people taking this course have a very diverse background and as a result we encourage you to define a project that fits your interests and skills. We expect projects to be relevant to the topic of the course, i.e. network support for advanced electronic services. However, this can be interpreted very broadly, i.e. some groups may focus on a very network-specific problem (e.g. network QoS) while other might propose a more service oriented project (e.g. porting or implementing a service or application that uses advanced networking features). Some example projects can be found here.

A fair number of resources are available in the environment. They include machines, local testbeds, wide area testbeds, .. It is is not really practical to put a comprehensive list together, so we suggest you ask: if you there is specific resource you need that you cannot locate, please ask and we will try to help. Please give us time: don't ask the morning that the proposals are due.

One special resource is the CMU Darwin system. It provides a set of resource management mechanisms such as scheduling, support for runtime resource management (delegates), signaling, and resource brokers. We encourage projects to use Darwin as a starting point. Since Darwin already provides rich support for integrated services, you should be able to put a more complete system together, compared with starting from scratch. More information on Darwin can be found on our Web page (http://www.cs.cmu.edu/~darwin). The best document to start with is the ICNP paper listed at the top of the project Web page.

This course is taught jointly with Harvard University, and we would like use the opportunity to make the projects more interesting. Specifically, we would like to see whether we can link CMU and Harvard projects across the vBNS. In order to be able to identify ways of linking projects, your proposal should include ways in which your project could interact with other projects. For example, if you are implementing a service, others should be able to invoke that service. If you are adding QoS features to the network, how could services use them? The information you received about the Harvard projects (which are much more directed) in 9/21 lecture should help in proposing such links. Using this information, the faculty, in consultation with the team members, will then try to "peer" projects.

Proposal format

The proposal can be short (few pages) but should include the following information:
  • Title, team members, description of goals and deliverables, i.e. what will you build, what will the system do, and why is it interesting.
  • Very high-level system design and plan: what components will build, what tasks have to be performed, what team members will do what, and roughly two intermediate milestones that can be used to measure progress.
  • Infrastructure: what platform(s) that will be used for the project, impact on the environment (i.e. extra traffic on network X, multicast, ..), and any open issues you might need help with.
  • Opportunities for interactions with other projects either at CMU or Harvard, e.g. how could others use your software or what building blocks could others provide. We will use this information to try to connect projects.
  • Risk analysis: are there uncertainties that could prevent you from finishing the project by the end of the semester. Examples may be: availability of the infrastructure, access to source code, use of code/components that you are currently not familiar with, ..
  • If a topic is not relevant to your project, please mention that explicitly.

    Project proposals should be handed to the course secretary by 5pm, Friday October 2.

    Final report format

    The final project report should take a form of a well-written technical research report. It should include the following information:
  • Title, team members
  • Description of motivation and goals for the project: what did you build and evaluate and why is it interesting.
  • Detailed description of the design and implementation of the system: high level architecture, description of components and interfaces, ... State clearly what components were built by you as part of the project and what components you reused. Finally, document what team member was responsible for what part of the project.
  • Results of a system evaluation: present results that show that your system design and implementation meet the initial goals. The format of this section will depend on the nature of your project (system implementation, simulation, ..), so results can take the form of performance measurements, functional properties, conforming to standards, .. As with any technical report, you should document how the results were obtained: platforms used, methodology, ...
  • What did you learn?
  • Project reports should be handed in BEFORE the beginning of the final proposal presentation session, Monday, December 14, 8:30.

    Deadlines

    Proposal due: Oct 2
    Feedback: Oct 9
    Proposal presentations: Oct 14
    Final presentations: Dec 2/Dec 14
    Draft reports due: Dec 9
    Final reports due: Dec 14
    prs@cs.cmu.edu (last updated Aug 1998)