CMSC 631, Spring 2006

Program Analysis and Understanding

Projects

Guidelines

Students will be expected to complete a substantial research project during the semester on a topic related to the class. Further details about projects will be made available as the semester progresses.

Projects may be completed individually or in groups of 2. The expectations for group projects will naturally be twice that of individual projects. Students will write up the results of their project and give a brief presentation to the class and other interested parties at the end of the semester.

Dates

  • Everyone in the class needs to tell me what they plan to do. You must submit a one-page project proposal by e-mail to me by (DATE TBD).
  • Project presentations will be held in class in the last few days of the semester. If necessary, we may need to also schedule some alternate times.
  • The final project write-up and any implementation is due by email to me at midnight on Friday, May 19.

Kinds of Projects

Projects on any subject related to topics covered in class are acceptable. If you are taking two classes that require projects, then with the agreement of the other instructor you may be able to do a single (larger) combined project for both classes. There are two main kinds of projects.

The Survey Project

  1. Pick an area in which you are interested
  2. Read thoroughly 3-6 papers, and read at least superficially 3-6 other papers. I will help, but you will need to do work to find the papers.
  3. Write a survey of what you have learned:
    1. What are the basic problems in this area?
    2. What are the approaches to solving them?
    3. What are the main achievements to date?
    4. What are the open problems?
In doing this project, you should be sure to keep the scope narrow enough so that you can say something interesting. Please do not pick an area that already has good survey papers available (or be sure to provide evidence to me that your survey will be different in some way).

The Research Project

In general, I recommend that you try to do a research project. Usually research proejcts involve some survey work and some implementation work, and they are typically a bit harder, but more rewarding, than survey projects. There are many kinds of research projcts, including the following:

  • Design and implement a program analysis
  • Try to formalize some interesting aspect of an existing language
  • Invent a new language or new language features, to make program analysis and understanding of that language more tractable

If you want to do a research project in an area you are not yet sufficiently familiar with, you should start out with a brief survey project and turn it into a research project once you know moer about the area. One important caveat: While your research project may be very open-ended, be sure that you have a well-defined goal for the end of the semester so that you have something to write up and present.

I will provide several suggestions for research projects as the semester continues.

The Presentation

At the end of the semester, you will give a presentation about your project. Note that after the presentation you may continue to work on your project, so it is okay if your project is not quite complete. If we can manage to fit everyone in, presentations will be 20 minutes long plus 5 minutes for questions. I recommend preparing slides for your talk. Depending on how long it takes you per slide, you may want anywhere from 8-15 slides; try your talk out ahead of time to see how long it takes.

The Paper

You write-up at the end of the semester should be in the form of a research paper. You should include an abstract and an introduction summarizing your motivation and your accomplishments. The intermediate sections should contain full details about what you did. End with a conclusion putting the project in perspective and mentioning open problems, and a bibliography of cited papers. Research papers should also include a related work section. Your write up should be 5-15 pages, as necessary.

The paper should be typeset and made available in electronic form.

Project Suggestions

Project suggestions are only available from the umd.edu domain. You can find them here.

Valid HTML 4.01!

Web Accessibility