Projects

Schedule

Guidelines

All students are expected to select and complete a course project. This can be in the form of a paper exploring more deeply a topic covered in the course or a related topic which we have not covered in the course. Before starting to work on a project discuss it with the instructor. Be ready to argue what do you expect to learn from the project (why is it interesting to you) and to propose a work schedule. Make sure to budget time for writing a short paper (max 6 pages) describing the project and for preparing a short (15-20 minute) presentation during the last week of classes. Projects can be individual or in groups of two.

Goal

The main goal of the project in CS263 is to allow you to customize the content of the course to your own interests. The goal is not to force you all to produce novel results in one semester.

Scale

Collaboration

Kinds of projects

I envision 3 main kinds of projects

  1. survey of the work in some area of language design (see below for some suggestions)
  2. implementation of a small language or relevant algorithm
  3. research in language design (preferred) or implementation. (see below for some suggestions)

The survey project

  1. Pick an area in which you are interested
  2. Read thoroughly 3-6 papers (or a monograph?). Read at least superficially 3-6 other papers. I will provide some start leads but you should do most of the work in tracking the relevant papers.
  3. Write a report on what you have learned
  4. Keep the scope narrow enough so you can say something interesting

The research project

There are several sorts of research projects

In any case you should be prepared to write a report on your work or whatever length is appropriate.

These projects are the hardest because they also involve some survey work and sometimes implementation. Unless you already have an idea already you can start with a survey project and then turn it into a research one.

The paper

The project paper should have an Introduction describing the tackled problem, its motivation and a very brief summary of the accomplishment. Then you should write a description of your notations if they are different from what we used in class. Then you continue with the body of the material. The paper should end with a Conclusion putting the perspective the accomplishment of the project and mentioning the open problems and with a Bibliography of cited papers. Research papers should also have a Related Work section in which they compare the work with previous research results.

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

The presentation

The presentation should be very short (15-20 minutes) and should describe in few details what the problem was, what the difficulties were and what was accomplished or learned. You will find it much easier to prepare the talk using slides (8 to 10 slides excluding the title, depending on your speed). While preparing the talk keep in mind who your audience is: your colleagues who are eager to find out (1) about new exciting facets of programming languages and (2) how much fun you had. Plan to motivate the project (why is it important) and to describe what you learned from it. Keep in mind that your colleagues have not read all the papers that you have read to do the project.

Suggestions for Survey Projects

Again, I encourage you to define your own project. In case you do not have any ideas, here are some suggestions. Send me mail to indicate your interest in a topic that does not currently have a description.

Suggestions for research projects