Project Requirements
All teams must be composed of two members. You can do one of the following:
- A simulation project, using either QualNet or NS-2. If you choose to do
a simulation project, you need to implement something new, not something that already exists.
- An implementation project, using either HP iPAQs or your own laptops.
If you choose to do an implementation project, you can either implement something
new, or you can test existing implementations/software.
Design Specification - due April 14th
You should first decide what problem you are going to solve, and then you should
create a design specification that includes the following items:
- Name and email address of each team member.
- Overview of the project explaining what it is and
what problem it solves.
- What existing components or services can be leveraged, and what has to be built.
- Main novel technical challenges in realizing the project, and how you will overcome those challenges.
- Motivation for the project: Why is it needed? Do existing systems or services do
something similar, and if so, how is yours different/better? Your "survey of the
competition" should include both relevant research projects
(industry or academic) and relevant commercial services.
- Top-level design, including a week-by-week task breakdown of the implementation phase.
- Preliminary thoughts on testing methodology for your project.
A list of project ideas can be found here. Your design specification should be no longer than 4 pages.
Implementation - due May 11th
Implement the project!
Mini demos: approximately May 11th and 12th
Note there is no "turn-in" component for this part.
Testing and Characterization Specification - due May 17th
You should create a testing specification detailing how you will test your
code, and motivation for why these are conclusive tests. These tests should
be automated and repeatable, and should include tests to ensure your program
is operating correctly. You will also need
to characterize and evaluate your project. Characterization and evaluation
includes documenting the project metrics - i.e. how well does your algorithm
perform, what are the specific performance characteristics such as throughput,
delay, etc. The specification you turn in should be no longer than 3 pages,
and should include the following items:
- Name and email address of each team member.
- List of performance characteristics of your project that are important to evaluate.
- List of tests you will perform.
- Motivation for why these are conclusive and important tests.
Testing/Debugging Phase - due June 2nd
Implement the tests and collect the metrics you detailed in your Testing and Characterization Specification.
In-Class Project Demos - June 5th and 7th
You will need to demonstrate your project to the class. You should have a working prototype, and a 10 minute presentation of your project.
Demos for the TA: approximately June 8th and 9th
Final reports - due June 12th
Your report should be a technical description of your system, and
should follow the guidelines below. For good examples of mobile systems papers, see
recent proceedings from
MobiCom and MobiSys.
The report should be no more than 8 pages and should cover these points:
- Motivation
- What problem are you trying to solve? Why is your project going to change
the world? Why and how would someone use your
system? Give a specific scenario. State your assumptions.
- Related work
- Briefly describe other attempts to solve the problem, or similar problems.
How does your system improve on these attempts?
- Design and implementation
- Discuss in detail your approach for solving the problem: external design
(how your system interacts with other components), user interface, internal
design (the various pieces that comprise your system). Expand on the
scenario from the motivation section. Explain any interesting design tradeoffs.
Are there any reusable parts that could be packaged as a library for other
programmers? You should also indicate any significant ways that your finished
product differs from what was included in the design specification,
and why those changes had to be made.
- Testing and Characterization
- Discuss how you tested your approach and why these are conclusive tests. Include a characterization of the performance of your project, including any helpful graphs. In addition to including your results, you should also explain your results. Why did you obtain those results? Why does your system result in the performance metrics you obtained? You should be especially sure to explain any abnormalities or unexpected results in your data.
- Lessons learned
- References