This is a research project. All project teams must be of two or three members. At a high level, you can choose one of the following directions:
- Implementation-based project. If you choose an implementation-based project you will need to use your own laptops and phones. I might be able to provide some equipment, so come talk to me if you need hardware. Also, have in mind that whatever hardware you might need will need to be purchased, so delivery delays might slow down your project progress.
- A traffic analysis project. For this type of project you can either develop your own data collection tool and analyze the data collected by your tool; or you can perform an in-depth analysis of an existing dataset.
Here are a few examples of course projects that have turned into a research publication (Note -- this will not happen over the course of a semester. Research publications typically build on class projects in the following semesters.)
- AirLab. Consistency, Fidelity and Privacy in Wireless Measurements, Vinod Kone, Mariya Zheleva, Mike Wittie, Ben Y. Zhao, Elizabeth M. Belding, Haitao Zheng, Kevin C. Almeroth, SIGCOMM CCR 2011
- Traffic-Driven Dynamic Spectrum Auctions, Xia Zhou, Shravan Mettu, Heather Zheng and Elizabeth M. Belding, Proceedings of the 3rd IEEE Workshop on Network Technologies for Software Defined Radio (SDR) Networks, San Francisco, CA, June 2008.
- ParaNets. A Parallel Network Architecture for Challenged Networks, Khaled Harras, Mike Wittie, Kevin Almeroth and Elizabeth Belding, Proceedings of HotMobile, Phoenix, AZ, February 2007.
- IPAC. IP-based Adaptive Packet Concatenation for Multihop Wireless Networks, Ramya Raghavendra, Amit P. Jardosh, Elizabeth M. Belding, and Haitao Zheng, Proceedings of Asilomar Conference on Signals, Systems, and Computers, Pacific Grove, CA, October-November 2006
Here is a list of project ideas. These are just suggestions; you are encouraged to propose and develop your own ideas.
Project Proposal (email to me, one email per team).
You should decide what problem you want to solve and how are you going to solve it. You should then submit a document no longer than 3 pages describing the following:
- Names and e-mail addresses of the team members
- Overview of the problem you are trying to solve
- Motivation. why is the problem you are solving important? Are there any similar solutions already proposed (or in other words do a literature review)? How is your solution different than other solutions?
- What existing resources are you planning to leverage in order to accomplish your project goal (hardware, software, datasets).
- What are the challenges you anticipate to face and how are you planning to overcome these challenges
- Timeline of project implementation -- include a table with your weekly milestones towards finalizing your project
- Preliminary thoughts on evaluation.
Mid-term presentation/demo in class.
By now you should have implemented a major part of your project and demonstrate your system (if you are developing a system) or present a substantial part of your results/hypothesis verification in case you are doing data analysis. Nothing to turn-in, just in-class presentation.
Testing and Evaluation Specification (email to me, one email per team).
You should create a testing and evaluation specification that explains how are you planning to test your code. You should motivate your evaluation choices. Why is the testing procedure you have selected the most objective one? In this specification you will need to characterize your project; this means that you will need to describe a set of metrics you are planning to use in order to assess how well does your system perform or what patterns do you see in your data. Submit a document no longer than 3 pages including:
- Team members' names and emails
- List of characteristics you are planning to evaluate
- Description of the tests you will perform
- Motivation of why are these conclusive and important tests
Final Project Report (email to me, one email per team).
You need to submit a technical description of your system/data analysis. We have been reading papers all semester; papers from conferences such as MobiCom and MobiSys will be a good example of how to approach your own report. In addition, you might want to take a look at some tips for writing technical papers and advise on writing style.
Your paper should be no longer than 7 pages and should use the ACM Word template (changes in font size and spacing will be penalized).
Your paper should include the following:
NOTE Be sure to include the Contributions section (see below for details), so we are all on the same page as to who did what for this project. Otherwise I will grade you based on my impression so far.
- Title and authors.
- Abstract -- this is a brief motivation/overview of the problem you are solving with a glance over the most important results.
- Introduction -- full motivation of the problem. Why is it important? Who would use your system/analysis and why? What has been done so far (not as detailed as related work) and what are you doing to improve it? What are your contributions?
- Related work -- describe other attempts to solve this problem and how are they different from what you are trying to achieve. You should include references that have not been covered in the syllabus.
- Design and implementation -- discuss in detail your approach to solving the problem.
- If you are building a system, explain the internal design of the system (what are its internal components, hardware, software and how do they interact), how it interfaces with the outside world and how it interfaces with the users. Note, while you might have not built an end-to-end system in the scope of this class, you should still add the envisioned design of your end-to-end system and later focus on the component you have developed and evaluated. Explain any interesting design tradeoffs. Is there any code you have developed that can be packaged and used in a different system? Are there any significant differences between your final product and your design specification (from the project proposal). Why?
- If you are doing data analysis, explain where and how your data was collected (even if you didn't collect it). Describe characteristics of the location and how these characteristics are related to your analysis/results. Describe your data; duration, users, format, captured characteristics, any tradeoffs you have found? Was anything missing in the data that would have enabled a better analysis? What was your methodology in analyzing the data? Did you define any novel data representations (e.g. graphs), sis you define any new metrics? How did you implement your methodology? Is there any code that you have developed, which can be packaged for use in a different project?
- Testing and evaluation results -- describe how you tested your system/hypothesis. Did you build a test bed? How was it configured? Why was it configured the way it was? Why are these conclusive tests? Include any results that will help characterize the performance of your system (those might be graphs, tables or text). Where graphs and tables are presented, include relevant text to explain what was the test scenario, what's on the x-axis, what's on the y-axis, what do the curves represent, what trends do you observe and what are the lessons learned from the experiment. Why did you get these results? You should make sure you explain any anomalies or unexpected system behavior you've obtained.
- Discussion/Conclusion -- what lessons have you learned from your project. Part of your discussion can include a recap of your results (with relations between the results). You can also talk about components you were not able to address but you wish you have addressed (motivate why those are important and relevant). What would you do in the future?
- Contributions -- I want to know who worked on which part of the project. While I have an idea based on who has been coming to office hours, your presentations and questions you have been asking during the semester, I want to make sure that we are all on the same page. To complete this section, go over your report and describe who completed each of the parts; not only in terms of writing but also in terms of coming up with ideas (design), researching the field (related work) and implementation. Presumably all team members have participated in the implementation. Make sure you include detail about the separate implementation tasks and who completed which task. You can organize this section as a table or in plain text -- however works best for you.
- References.
Final Class Presentation
Each team will have 17 minutes for their presentation + 3 minutes for questions and answers. In your presentation time, you may include a demo, if available. Your presentation will be cut short if you run out of time.
Your presentation needs to demonstrate the following:
- Each team member have participated equally in completing the project.
- Each team member is familiar with all the aspects of the project and can answer questions.
Your presentation should include- A main slide with project title and team members
- Introduction to the problem/problem motivation
- Related work (with explanation of how your project fits in this related work)
- System design/data framework
- Implementation
- Evaluation methodology
- Evaluation results
- Discussion/Conclusion