CMSC-641 Algorithms: Project (fall 99)
Read and follow the document
"
Some advice on writing technical reports.""
Important Dates
- Tuesday, November 16. Proposal due (submit two copies).
- Thursday, November 18. Comments on proposal due.
- Tuesday, December 7. Project (Version 1) due.
- Thursday, December 9. Comments on version 1 due.
- Tuesday, December 14. Project (Version 2) due.
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
- Because much can be learned from group work, you
must work in group. The group size must be 2 or 3.
- 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.
- 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.
- Take as your intended audience an A student
in CMSC-641.
- 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.
- 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.
- Your report must include a thoughtful section that discusses
the benefits and limitations of Leda, based on your
experiences.
- 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:
- Names of the group members.
- A meaningful project title.
- 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.
- An algorithm to be implemented.
- A background section that contains all relevant
information needed to get started and to understand
your work.
- Your initial findings about Leda.
- A technical plan for carrying out your work.
- A two-level outline of your final technical report.
- An annotated bibliography.
- A brief explanation of how each group
member will contribute to the group effort.
- A realistic schedule for meeting all deliverable
deadlines.
- A list of any potential difficulties, and preliminary
thoughts on how to overcome them.
- 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?