Organization of your Report
Your report should be about 10-20 pages long. However, depending on your topic and
writing style your paper could be longer or shorter. I will check the quality of the
contents and not the length of the report. I mention the 10-20 page size range,
just to give you an idea of what is the average size of reports that students have
written in the past.
Read the papers related to your topic and pay attention to the way in which they
are organized. Your report should be organized in a similar way. Here are some
suggestions about how you should structure your manuscript.
- Title and author
Choose a title that describes, both, the topic that you have chosen and the
content of your report.
- Abstract
The abstract is a very concise description of the contents of the paper. Here you say
what your paper is about, but do not give any details (details belong in the body
of the paper). The abstract should be one or two paragraphs long.
- Introduction Organize the introduction as follows.
- First describe the problem(s) that you have studied.
- Say why you think that the problem(s) is (are) important/interesting/worth
knowing about. Mention possible applications for the problem(s).
- Describe research that has been done about the problem(s) that you are studying.
Give a brief description of the papers that you have read. You can also mention
works
that are referenced in those papers. Do not give here many details.
For every work that you describe you must give the appropriate reference.
Try to mention as many relevant works as you can.
- If there is a problem x that is related to the one(s) that you are
studying, mention that here along with a description of the relationship and a
few references about work done on problem x.
- List the contributions of your paper. Say something like: "We review the
algorithms x, y, and z and make a comparison of their
time/space complexities/conceptual complexities. Our findings indicate that
algorithm x is better than algorithm y in the following cases ...".
- End the introduction with a description of the remaining sections of the paper.
- Body of the paper
Here is where you give all the details of your work. Write as many sections as you
need to describe all your work. I suggest that you devote one section to each
algorithm that you describe. Of course, you might decide that it makes more sense
to describe several algorithms within the same section.
For each algorithm that you describe, first give a high-level description of it.
Explain
some of the intuition that justifies why the algorithm works. Do not just copy
the description of the algorithm. I need you to show me that you
understand the ideas behind the algorithm.
Then, if appropriate, give a more detailed description of the algorithm in
pseudocode. Use the same kind of pseudocode that we used in class.
Show that the algorithm is correct. If the proof is too long or too
complicated, you do not have to explain it all. An insightful sketch of the proof
is more valuable than a long tedious formal proof.
If relevant, perform an analysis of the performance of the algorithm. Once more, if
the analysis is too long or too complicated you might simplify it without
providing all the details.
Mention the modifications/improvements/simplifications that you think can be
made to the algorithms that you have studied. Mention new applications for
the algorithms. Mention new applications for the problems studied, and for
related problems. Mention the drawbacks and strong points of the works
that you have studied. Highlight your original contributions, since this is what
I am particularly interested in reading.
For a report describing an implementation you must give details about the
algorithms implemented, and details about the implementation itself. Mention
interesting challenges that you have found while doing the implementation. Describe
any data structures that you had to implement. Give an overall description of the
architecture of your system, and explain how all parts interact.
If appropriate put in an appendix a manual describing how to compile, run, and
use your system.
If you are making an experimental comparison of the performance of several algorithms,
include a table with all your results. Give details as to how the test cases were
chosen and how the performance of each algorithm was measured.
- Conclusions
Give a summary of your findings. Mention here anything interesting that you have
discovered/observed/learned.
Briefly review the algorithms that you have studied, and briefly
mention how they can be improved/how
they can be specialized to
situations not mentioned in the literature. Mention new applications for the
algorithms or problems that you studied.
- References
Include all the references that are mentioned in your report.