Term Project

Term Projects

Your final task in this course will be to critically use the skills and techniques that you have learned about in class to explore some unanswered question within the context of program analysis. This may be as simple as implementing one of the techniques that we discussed in class in order to run and critically analyze some of the missing tests from the paper. It may be as complex as framing an entirely new problem and exploring potential solutions using the skills that you have acquired. You will ask and answer some question(s) that has(/have) not been tackled before. This project may be completed in groups of up to three. The expectations of the project will scale with the number of group members.

You should focus on a problem that interests you and motivates you to excel. Ideally, the outcome of the final project is (1) a self contained paper that could even be published at a workshop or conference. or (2) a usable tool that can be shared on github to add to your porfolio. In order to find an appropriate topics, you should explore potential areas or ask me questions early. I am more than happy to help you find an appropriate direction.

NOTE: Undergraduates enrolled in the course have the option of simply implementing and evaluating a project predetermined by me. If you are an undergrad and want to pursue this approach, your group should contact me in advance of the proposal deadline.

Proposal Meetings

Before committing to a project, you must submit a one page project proposal in order to make sure that you are on a reasonable track. You must also schedule an in person group meeting with me to review your proposal Your project proposal should clearly identify:

  1. The member(s) of your team.
  2. The problem that you wish to tackle. This includes:
    • A brief summary of the background/existing work in the area.
    • An explanation of the question / problem that you are addressing and how it is important / relevant to the existing work.
    • Initial thoughts on the tools that you wish to use and a speculative strategy for how you will attack the problem. Include the metrics that you plan to use to evaluate your results. (If you are answering a question of some sort, you certainly need a means of measurement that facilitates this answer.) This need not reflect your final approach; it is an initial plan to show that you have some direction for your initial attempts.
  3. Citations of the paper or papers that are relevant for your work.

During our meeting, I will point out whether your proposal is sufficient, risks that you may face, and possible directions or works that could simplify or improve the project.

Presentations

The final two class periods will be dedicated to student presentations of their term projects. This need not reflect the final state of the project, although it should cover the background, goals, methodologies, problems, and progress up to the point of the presentation. The final state of the project is reflected in the final papers.

Final Papers

You will need to thoroughly motivate, explain, and evaluate your course project in a final paper. Again, the goal is that this paper should be a suitable step toward a publication in a journal or workshop. To achieve this, you will need to start early and work consistently. You need to be able to produce a sufficient implementation for evaluation in addition to writing a thorough and well organized analysis of your results.

Your submitted paper should be in a PDF, written using LaTeX. I recommend using the USENIX LaTeX template.

Similar to the papers we read, your paper should have sections for:

  1. Introduction
  2. Background / Problem Motivation
  3. Approach
  4. Evaluation & Observations
  5. Related Work
  6. Conclusions & Future Work

You may refine this design further, but your paper should clearly include these components.