CMSC-641 Algorithms: Project (fall 99)

Read and follow the document " Some advice on writing technical reports.""

Important Dates


Overview

Working in a group of 2-3 students, you will propose and carry out an experimental project dealing with 641 course material and the Leda algorithms package. In your project, you will pose a focused question about any concrete important computer science application of your choice. To answer your question, you will implement and experimentally analyze two versions of the same algorithm--one implementation will use Leda, the other will be written from scratch in a general-purpose programming language of your choice (e.g. C, C++, Java). You will communicate your findings in writing in the form of a computer science technical report. In addition to answering your question, your report will comment on the convenience and utility of using Leda.

Purpose

The purpose of this project is to give you an open-ended opportunity to integrate your practical and theoretical knowledge of algorithms in a meaningful application. In addition, this project introduces you to experimental evaluation of algorithms, the Leda package, group work, the technical report, and the research process.

Crucial Elements

  1. Because much can be learned from group work, you must work in group. The group size must be 2 or 3.
  2. Your project must ask and answer a focused, well-defined, novel, significant question about some computer science application. This question must be clearly stated and motivated in the introduction of your report.
  3. Your project must include experimental analysis of algorithms, including time and space measurements and analysis of separate Leda-based and non-Leda-based implementations of some algorithm.
  4. Take as your intended audience an A student in CMSC-641.
  5. Your report must contain some graphs summarizing your experimental findings (including time and space measurements). These graphs must show both the observed mean and square root of the observed variance taken over several (not just one) measurement per input size. Typically, the most useful scale to use in preparing such graphs is a log-scale, which enables you to display a wide range of sizes on the same graph.
  6. Importantly, your report must contain an extensive analysis and interpretation of your experimental data, including their strengths and limitations, especially with regard to what the data say about your main question. Do not simply report data.
  7. Your report must include a thoughtful section that discusses the benefits and limitations of Leda, based on your experiences.
  8. Your written report must contain all the standard elements of a computer science technical report. (See the above document on how to write a technical report.)

The Proposal

The proposal must include the following elements:
  1. Names of the group members.
  2. A meaningful project title.
  3. A clear and compelling statement, explanation, and motivation of a significant, novel question involving some concrete computer science application. Clearly identify what is novel about your work.
  4. An algorithm to be implemented.
  5. A background section that contains all relevant information needed to get started and to understand your work.
  6. Your initial findings about Leda.
  7. A technical plan for carrying out your work.
  8. A two-level outline of your final technical report.
  9. An annotated bibliography.
  10. A brief explanation of how each group member will contribute to the group effort.
  11. A realistic schedule for meeting all deliverable deadlines.
  12. A list of any potential difficulties, and preliminary thoughts on how to overcome them.
  13. Submit two copies so that you can receive prompt feedback from both instructor and from another group.

Grading Criteria

Your project will be evaluated on the basis of your project report. The project report will be evaluated using the same criteria by which computer science research journals evaluate submitted manuscripts: appropriateness to assignment, scientific merit, and effective presentation. Scientific merit includes correctness, novelty, significance, non-triviality, scientific completeness. For each group, typically all members will receive the same grade.

Peer Review

Each group will review another group's proposal and final project. The schedule includes time for revisions to be made after this initial review. Each group's grade will be based in part on the quality of their reviews.

Group evaluation

On the last day of class, each person must submit to the instructor a separate confidential one-page evaluation of each member of your group. What did they do? How did they contribute to the group effort?