CS561 Project Proposal
Project ideas are due to be presented in class on 10/06. When you pitch your project idea, use this template:
- what is the problem you are trying to solve?
- why is the problem important to solve?
- what is the current state-of-the-practice or state-of-the-art in solving this problem, and what are its limitations?
- what is your proposed solution?
- how would you convince the professor, classmates, and the research community that your solution is successful?
You need to submit a PDF file (e.g., you can use PowerPoint or a Text Document, but please convert them to PDF)
addressing the points above. Attach your PDF to an email, and send it to Prof Dig and Kendall (
before the beginning of class
on 10/06. Your email should be entitled "CS561 ProjectIdea" and it should contain a PDF file for the ProjectIdea
(the name of the PDF file should include your last name as well).
In class, each of you gets 2 minutes to pitch a project idea. Your proposal will be preloaded wtih all the PDF slides
on the professor's or TA's laptop.
Project ideas proposed by professor:
- Nowadays, centralized applications, written to run on a single node without accessing any cloud-based services, are in a minority. Even the simplest of mobile applications access some remote services. However, the distribution decisions made at design time are often suboptimal. For example, clients are often underutilized, while servers are overburdened (or the other way around). It would be nice to conduct a study to examine how mobile/distributed apps use resources (both local and remote), identify the cases when the distribution decisions turn out suboptimal, and then refactor the suboptimalities by hand, recording the required program transformations.
- inspired/motivated from the findings in the above project, design an automated refactoring, e.g., Cloud Refactoring, to migrate client functionality to a cloud. Another project idea is the opposite refactoring, Component Insourcing, which migrates cloud functionality to a client.
- when mobile apps load a page which contains a JS library, the whole library is packaged as a single file (e.g., the JQuery library comes as one single JS file with many functions). The app will be slow, because it tries to parse/load a lot of content. However, a given app might only use a very small subset of the functions from the library. This project will determine how to speed up page loads on smartphone apps by carving an app-specific version of a JS library.
- another project on improving responsiveness by improving the load time of the first page: rather than easgerly loading all functions (even those that are not needed on the first screen), determine the dependency of functions and only load the ones required for the first page
- conduct an empirical study to find performance anti-patterns on mobile devices