Internetworking and Distributed Systems Laboratory
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:
- Selecting a project
- Designing the project
- Implementation
- Project report
- Demonstration
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:
- Team projects should be more ambitious than individual projects.
- Team projects often have big payoffs, but in some cases, one
student ends up carrying more programming load.
- Even with team projects, I will assess the contribution of each
student.
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:
- A one paragraph (no more than 10 lines) description of the
project
- Who the team members are
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:
- list relevant reading for the project (if any)
- briefly discuss how the software system that you are working on
is structured
- list all the software changes that you expect to make
- For a team project, specify the implementation assignment of each
member.
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.
- Implement your project with multiple shortterm
goals to gradually reach the final goal.
- Solve problems that were not expected in the design phase.
- Find resources from the web and through communications.
- Prepare to spend significant amount of time in debugging and
testing.
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:
- Describe the goal of your project and background information, such as
the hardware and software you have used.
- Describe your design. Is there any changes to your design document?
- Describe your implementation details. For a team project, specify
which part is implemented by each member.
- Have you met the goal outlined in your design document? If not,
why? and what is the final result of your project?
- If you encountered different problems during your progress, describe
them and your solutions.
- Outline a demo plan.
- List all related references, such as papers, RFCs, manuals, hardware
and software systems, etc.
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.
- Use up to 10 minutes to set up your demo.
- Use 5 minutes to describe your demo.
- Use 30 minutes to show your demo and answer questions.
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