Class project
The primary component of assessment in this course is the class project. The goal of the final project is to develop a deep understanding in one or more of the areas studied in this course, and, ideally, to conduct original research. The project specifications are flexible, and may include implementation (e.g., implementing one or more analysis in a particular framework), literature survey, reproduction of results, applying/adapting/creating an analysis for a domain of interest, performance/scalability studies, ...
You are required to submit a project proposal by Tuesday March 8, give a presentation about your project, and submit a final paper by Wednesday April 27.
Project proposal
Project proposal is due Tuesday March 8. It should be 1-3 pages outlining what you intend to do, and by when. Specifically, it should contain:
- A summary of your project;
- Background and related work (if appropriate, describe what is novel about your project);
- A brief description of your proposed approach, and any other thoughts on how you will proceed;
- A specific timeline of milestones that you intend to accomplish for your project.
Project presentation
Project presentations will be done in-class on April 21 and April 26.
Each project will have about 30 minutes. Aim for a 20 minute presentation to allow sufficient time for questions and discussion. You are not expected to have completed the research project by this date, but you are expected to have made tangible progress. The talk should be aimed at providing an overview of the problem, the outline of your approach to addressing the problem, and preliminary results.
As with the presentations throughout the class, your aim is not to explain every detail, but to communicate key points clearly.
Final report
Final report is due Wednesday April 27. It should be in the style of a research conference paper, no longer than 12 pages in ACM SIGPLAN format. I strongly recommend using LaTeX to write your final report, even if it means learning LaTeX (which you will need to do sometime soon anyway). I'm happy to help with LaTeX questions.
Project ideas
Here are some suggestions. By themselves, they may or may not be suitable as projects. You may need to think about these ideas and expand on them. Of course, you are welcome (and encouraged) to choose a project that is not from this list. I'm planning on building infrastructure for program analyses to use in my research. Let me know if you're interested in getting involved in that.
- Automate optimization methodology for Doop. Possible use profiling information to guide optimization.
- Context-sensitive analysis that incorporates domain-specific information into the contexts.
- Investigate claim that "most of the code of most programs is found inside loops" [Lhotak and Chung, 2011].