University of Southern California CS558L, Fall 2007 Computer Science Department

Internetworking and Distributed Systems Laboratory

Home   Overview   Presentations   Lab Exercises   Projects   Syllabus   TA's FAQ

New: Mote programming guide with links to all the tools and source code you need.

Project Description

The final project is intended to expose you to programming and understanding large software subsystems. Some of this work is quite difficult; be prepared to spend a fair amount of time on these projects, and get started early.

There are several steps involved in the process:

Project Selection

The first step in preparing for the final project is deciding what project you want to do, and how you want to do it.

You can do a project individually, or in teams of two (I will not permit larger teams). Be aware that:

You can select a project from the list of suggested projects. Please also check the list of selected projects. You are also welcome to bring your own project (with my approval). You should discuss with me on your project selection during my office hours and through email. Doing so will help you understand and narrow down the scope of your project appropriately.

You should decide on a project by the specified deadline and notify me by an email. It should have the "Subject:" line saying "Project Selection" and the body containing:

For a team project, the sender should CC his/her teammate, so that I know both of you agree on the project selection.

Project Design

The next step of the project is to design the project software. Typically, most projects will involve modifying an existing large piece of software, and demonstrating the modifications. You will need to read the background material relevant to your software, read as much of the source code, understand the modularization of the software, and decide where you are going to make the modifications etc.

The output of this step will be a small (<= 3 pages) design document in which you will:

Email your project design document to the instructor as a PDF file. Put "Project Design Document" in the "Subject:" line. For a team project, the sender should CC his/her teammate, so that I know both of you agree on the document.

After you have submitted the design document, I may negotiate with you to increase or decrease the scope of your work. This is necessary to make sure that each student does projects of comparable difficulty.

Implementation

Based on your design document, you will start implementing and debugging your system. Use the following strategies in the implementation phase.

Project Report

The project report is a summary and documentation of your project. You are required to submit your project report before your demo. It should include the following contents:
Email your project report to the instructor as a PDF file. Put "Project Report" in the "Subject:" line.  For a team project, the sender should CC his/her teammate, so that I know both of you agree on it. When you submit the report, attach all your source code in a tarball.

Demonstration

The last step is demonstrating your project. Each project has 45 minutes in demo. You will follow the process below in your demo. The dates for the demonstrations will be in the last week of the semester.

Grading

Design document 10%
Quality of work 20%
Quantity of work 20%
Demonstration 20%
Project report 20%
Coding clarity 10%

You get no points for submitting the project selection email, but you will get a 10% deduction if you do not submit the email by the deadline.


Last Modified: November 15, 2007
Maintainer: Wei Ye