CMSC 631, Spring 2013

Program Analysis and Understanding



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.



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: research projects and survey projects.

The Research Project

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.

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).

In general, I recommend that you try to do a research project. Usually research projects involve some survey work and some implementation work, and they are typically a bit harder, but more rewarding, than survey projects. In the past, research projects begun in this class have led to peer-reviewed conference publications.

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. Presentations will be graded by the same criteria for the paper presentation.

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.

Valid HTML 4.01!

Web Accessibility