Projects

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:
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.)

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:

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:

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.

  1. Title and authors.
  2. Abstract -- this is a brief motivation/overview of the problem you are solving with a glance over the most important results.
  3. 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?
  4. 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.
  5. Design and implementation -- discuss in detail your approach to solving the problem.
    1. 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?
    2. 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?
  6. 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.
  7. 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?
  8. 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.
  9. 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:

Your presentation should include