UW Logo

CS 666, Fall 2009

Project Guidelines

(link to CS466/666 home page)


Due date: before December 9, Wednesday, 5pm. Send your report to me (biedl -at- uwaterloo.ca) by e-mail (in either PDF or PostScript).

Basically: pick a problem and a paper, read the paper, and write a report about it (at least 5 and at most 10 pages; content is more important than word count.)

You may choose a paper on your own (but see tips and suggestions below). The paper should be about algorithms, of course, and preferrably related to topics covered in class. In accordance with the "spirit" of this course, the emphasis of the paper should be on well-defined problems and algorithms with provable performance guarantees (worst-case time, expected time, approximation factor, competitive ratio, etc.). Implementations and experimental studies are not required and are not the objective.

The Report:

The first part should be devoted to a clear statement of the problem and a short survey of known results. For this, you may have to read up on previous papers and do a literature search for the latest results.

The second part should be an description, in your own words, of the algorithm and/or analysis from your particular paper. You might find that papers don't necessarily give the clearest explanation. So, don't just paraphrase the paper's description. Rather, the objective is to make the paper easier to understand, for example, by finding a different way to look at the algorithm, using simpler notation, highlighting ideas as you see them to be, adding examples and intuition, etc. Be creative! With only 10 pages, don't try to explain all the details in the paper if they are too complicated and technical---an overview is more important. (If the paper contains several algorithms, focus perhaps on just one.) But do point out connections with ideas from previous papers as well as techniques we have seen from class.

The final part should be your critique of the new ideas and results from the paper, e.g., how they compare with previous (and subsequent) results and known lower bounds, how practical they are, etc. Also state open problems, including any of your own, for future work in the area. (And if through this process you are able to obtain improvements and solve an open problem, I'd love to hear about it!)

Tips:

Each student should choose a different problem, so let me know what you have decided on (e.g., by e-mail or during office hrs). Topics may be done in groups, but a group of k students is expected to cover k times as much material (and hence have significantly more pages, though probably less than k*10.)
If you are interested in a problem that is already taken, you could still consider a variation of the problem, or team up with the student that took it. Talk to me about it.

You do not have to choose the latest paper with the best result on a problem; find one which is "relatively" recent (usually that means it's not already described in existing books or surveys) and which you think you can understand reasonably well.

To get a feel for recent research in algorithms and complexity, browse through conference proceedings such as FOCS (IEEE Sympos. on Foundations of Computer Science, QA401.S95x), STOC (ACM Sympos. on Theory of Computing, QA267.A2), and SODA (ACM-SIAM Sympos. on Discrete Algorithms, QA76.6.A278). Final versions of papers usually appear in journals.

The library has many journals in electronic versions that you can accss with any browser from a UWaterloo computer. (To access them from home, insert `.proxy.uwaterloo.ca' after the first part of the URL, and then enter your library card number and name.) The DBLP web site provides links to publishers' electronic copies of many papers. The CiteSeer site provides links to the authors' own electronic copies of recent papers. The latter site also tracks citations, which is handy for finding related papers. Also try Google Scholar.

Possible topics:

Below is just a "random" list of suggested problems/papers. You are encouraged to look for other problems on your own, but double-check with the instructor whether your topic is appropriate. Projects will be marked if they have been "taken". The following are three `broad' problems-areas where you can pick a specific paper yourself by searching the literature. Obviously, nothing that has been covered in class can be used.