University of Virginia, Department of Computer Science
CS655: Programming Languages
Out: 1 February 2000
Proposal Due: Wednesday, 16 February, 11:59pm
The course project will involve several deliverables, leading to a
final report due at the end of term. The deliverables are:
|Wednesday, 16 Feb
|Proposal (described in this handout)
|Thursday, 17 Feb
|Elevator Speeches (described in this handout)
|week of 28 Feb - 4 Mar
|Project meetings - each group will meet with either Dave or John to discuss their proposal and progress.
|Thursday, 23 Mar
|Preliminary Report (to be described in future handout)
|Schedule project meetings with Dave or John
|Friday, 28 Apr
|Final Report (to be described in future handout)
|Monday, 1 May, 6:30-9pm
Project Presentations in the Rotunda, West Oval Room
By Wednesday, 16 February, each project group will turn in (as a single
printable web page) a proposal containing the following information:
There are no length constraints on the proposal, but you should aim to
be as concise, clear and organized as possible. Since you are working
in groups, the writing and presentation should be at a high quality.
- Description of the problem - what will we (meaning the programming languages community) know after you have finished the project that we don't know now? Motivate your project and explain why it is interesting.
- Related Work - this doesn't need to be complete yet, but enough to show the problem is relevant and interesting. You should make sure to relate the related work to your project - why is it relevant to what you want to do?
- Research Plan - concrete description of what you plan to do including:
- A schedule with concrete milestones (one should be finishing the final report on April 28);
- A division of labor between group members
Evaluation - description of how will you decide if the project is successful.
Your grade on the project doesn't depend on being
successful as a research project. For example, if your
project involved extending a language with a new feature you might
propose to evaluate it by taking some existing programs and rewriting
them to use the new feature and comparing the size, performance and
readability of the original and rewritten programs. If your
experiment concludes that the extension you designed is not a good
idea, this does not necessarily reflect poorly on your project grade.
In fact, it could be a great project if you can draw conclusions about
why it was unsuccessful.
Imagine you are in an elevator with a very busy, rich and important
person. You have ninety seconds (elevators in buildings with rich and
important people in them tend to be faster than the one in our
building) to convince her your project is so exciting she should read
your proposal and consider funding it generously. In ninety seconds
you should be able to explain the problem you hope to solve, why it is
interesting (to someone not an expert in your area), and what you are
doing to solve it. A successful elevator speech elicits a question
from the listener after the elevator doors open; an unsuccessful one
drives the listener away as quickly as possible.
In class on Thursday, 17 February, I will call randomly on one student
in each group to give an elevator speech on what you are doing.
Periodically (and unexpectedly) throughout the term, I will call on
random students to give elevator speeches about their projects until
everyone in the class has given at least one. Being able to give a
good elevator speech is even more important to your future career in
research or industry than being able to write well, so it is worth
practicing this whenever you get the chance.
Except in exceptional circumstances which are brought to our attention
well before the final report deadline, all members of a project team
will receive the same grade. The proposal, meetings, preliminary
report, and project presentations will be evaulated, but will not be
graded separately. Performance on the other stages of the project
will be reflected indirectly in the final project grade.
Projects will be graded on a scale of 0 to infinity, where 1
represents a satisfactory project.