The final project is an opportunity for you to explore an area of your interest related to mobile sensing or wireless networking. For full credit, your project must be a significant piece of work to which you must contribute 100 to 150 hours of your time. The scope of the project should exceed the amount of work you have devoted to projects 1 through 3 combined. I outline several possible topics below, but you are welcome to choose any topic you like with my approval.
The requirements of this project are as follows. Each of these requirements will contribute to your final grade.
Due 3/27 - 4:35pm
Proposal (15% of project grade): On or before Tuesday, March 27 at 4:35pm you must submit a two-paragraph (minimum) proposal outlining your proposed project. The proposal must contain the following: (1) a description of the project, for example a brief overview of an application you wish to build along with a preliminary software architecture and list of technologies you plan to use and (2) a list of deliverables, for example a list of the functions your application will perform and the deadline for when the function will be delivered. You need to be as specific as possible in your proposal. Proposals will insufficient detail will need to be resubmitted and may not receive full credit.
Due 3/30 - 5:00pm
Project Approval Meeting (5% of project grade): On or before Friday, March 30 at 5:00pm you are required to meet with the instructor to discuss your project. This meeting will be 20-30 minutes in length. If the scope of your proposed project is too large or too small, you will be asked to modify your proposal accordingly.
Pivotal Tracker Updates: You will be expected to log all of your work on Pivotal Tracker. I will expect to see weekly updates.
Due 4/19 - 4:35pm
Release 1 (40% of project grade): On or before Thursday, April 19 at 4:35pm you are required to meet with the instructor to demonstrate all deliverables scheduled for 4/19 or earlier. This meeting will be 20-30 minutes in length. This is the first release of your project and it is expected that roughly half of your project will be complete at this release. 40% of the project grade will depend on the deliverables demonstrated at this release.
Due 5/15 - 5:00pm
Release 2 (40% of project grade): On or before Tuesday, May 15 at 5:00pm you are required to meet with the instructor to demonstrate all deliverables scheduled for 5/15 or earlier. This meeting will be 20-30 minutes in length.
The final project will account for 16% of your final course grade (2/5 of the Projects portion of the grade).
Project Ideas:
Note, in some cases more than one of the ideas below may need to be combined to produce a project of sufficient scale.
Application Development: Develop a fully functional, usable mobile application that focuses on one or more sensing tasks. You might, for example, develop a fitness application that tracks your speed and location during a run and uploads the data to a web-based service that can display your data on a map. You would need to implement a UI for this application, as well as implement the server side.
Battery Management: Develop and evaluate one or more battery management schemes for your current sensing application. This would require you to develop an algorithm and set of heuristics for determining the sensing and uploading interval based on the battery available on your phone, its charging status, or perhaps even your location. This project would likely require some early benchmarking to determine the battery cost of tasks such uploading data. The algorithm would then be thoroughly evaluated. The result would be a set of graphs and recommendations for background applications. Do your results indicate that background applications are really feasible, from the energy standpoint, on today's hardware?
Data Muling Simulation: Utilize the data you have collected so far to evaluate the feasibility of data muling in your environment. Build a trace-based simulator that builds a model of network connectivity based on the bluetooth devices seen by your device. Evaluate the connectivity, for example exploring how often a device is seen. Compare the connectivity model for your device to that of another student willing to share his/her data. Evaluate a routing algorithm that is designed to perform delay-tolerant routing in your environment.
Data Analysis: Use the data you have collected to learn more about your habits. Alternately, use data from a public repository such as CRAWDAD or the Reality Mining repository. Is it possible to predict when you are likely to recharge your device? Can you identify when you are at home or at work (without specifying the lat and long of your house or office)? How would you visualize your data to identify patterns or properties of the information? The goal of this project might be to produce a set of graphs, or a web-based visualization tool that provided useful views of your data.
Network Measurements: Repeat or extend some of the network measurements performed in the "Anatomizing Application Performance Differences on Smartphones" paper. Do their results still hold? Further investigate their results regarding video streaming.
Activity Recognition: Use the sensors on the phone, perhaps combined with other information, to try to identify a user's activity. Build a web service that will analyze data collected and push to a phone application a message asking the user whether he/she is actually performing the activity the service guessed. Record the "ground truth" answer provided by the user.
Time Synchronization Algorithms: Use the SunSPOT sensors to implement and evaluate a time synchronization algorithm from the literature.