Class Projects
A major component of this course is a class project. All students are
expected to select and complete a course project, either individually or
in groups of two or three (I would encourage you to team up to work on
larger scale projects and produce higher quality results). The project
can be original research related in a broad sense to programming
semantics or logic. Alternatively, it can be in the form of a survey
paper exploring more in-depth topics covered in the course or on related
topics not covered in the course.
Please aim high! I am sure best research projects from the course can
eventually lead to good conference publications as in my other
graduate-level classes in the past (e.g., ICSE and IEEE S&P
papers).
Here are some sample papers resulted from class projects:
Schedule (tentative)
Please choose a project topic and discuss it with me. If you do not have
a topic, I can try to suggest something when we meet.
04/29/08: project proposals due
Write a one to two
page project proposal:
- To describe and motivate the problem. What is the problem? Why
is it interesting to solve it?
- To describe the related work. What other people have done?
What issues remain or have not yet been addressed well?
- To describe your approach. How do you plan to tackle the problem?
What is your general approach? Argue why it is feasible and better?
- To outline a work schedule. When would you like to achieve what?
05/20/08: midterm progress reports due
Please write a one to two page report to describe your
progress. What you have done so far? What remains? What is your plan
for the rest of the project?
06/09/08: project presentations
Each team will prepare a 20 minute presentation to show off your
projects. For some advice on preparing oral presentations, please follow
this link.
06/11/08: final reports due
You should write a final report (as a conference-style paper) to describe
what you have achieved:
- Abstract. About 200 words to summary your project.
- Introduction. To describe and motivate the problem, high-level
overview of your approach, summarize your results. Stress what is novel
about your work.
- Approach. Detailed description of your approach. Highlight the
main technical difficulties and novelties.
- Implementation and results. If appropriate, you should describe
your implementation and experimental results. Explain how to interpret
your numbers and results if applicable.
- Related work. Detailed discussion of related work. Should stress
how these relate to your work. Simply list and desribe what other people
did is not sufficient.
- Conclusions. Again summarize the work and discuss possible
future work.
- References. List the papers that you have cited.
You can again follow
this link for some advice on writing.
The Elements of Style
is a concise and excellent reference on writing.