CSCI 7000-008 Spring 2022 Project Proposal
Project ideas are due to be presented in class on 02/01. 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?
SUBMISSION PROCEDURE
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. Submit the PDF on Canvas, before 12PM on 02/01.
PRESENTATION PROCEDURE
In class, each of you gets 2 minutes to pitch a project idea. Your proposal will be preloaded with all the PDF slides on the professor's laptop.
Project ideas proposed by professor. This is not a comprehensive list, instead it provides samples of projects that are within the scope of the class:
- Novel usage of sensors data from an installation of IoT sensors. For example, monitoring and predicting air quality in a Smart City like Denver (sensor data available from the City of Denver), or improving the student experience on the CU campus.
- 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 IoT devices
- conduct an empirical study to find energy anti-patterns on IoT devices