## Organization of your Report

Your report should clearly explain the work that you have done for this course. It should have 4 parts:
introduction, body, conclusions and references.
### Introduction

In the introduction
you should first give a brief description of your project: For example, your project might be a survey of
some of the most important
algorithmic results in some field, the implementation and testing of the practical performance of
certain algorithms, the development of an animation system for some algorithm that can be used
to understand it and try to find ways of improving it, the design of a new algorithm for certain problem, and so on.
Next, if your project involves the study of algorithms for a specific problem the introduction should clearly
explain what the problem is, its importance, and applications. You should then give an overview of some of
the most important research that has been done on that problem. Explain some of the
best known algorithms for the problem and what design techniques were used on them.
Indicate the efficiency of the algorithms either in terms of their time
complexities, approximation ratios, competitive ratios and so on. If you are studying a
particular algorithm, put it in context within the related research: State the importance,
or significance of the algorithm and indicate why you selected it over other existing
algorithms for the same problem. Then, finish the introduction by giving a brief overview of the
work that you have done: for example, say that you implemented and tested some algorithm and indicate how
it performed, or that you designed a new algorithm that has certain performance, or that
you designed a system that clearly illustrates the way in which some algorithm works and
how your system can be used to help improve it.
If instead you choose to work on a survey paper about some research field, then the introduction should first state which
kind of algorithms and problems you have studied, and what is the importance and applications
for these problems. Give an overview of the research that has been done on the field that you
have chosen and briefly explain some of the most relevant work in the field. Then give
a brief overview of the papers that you will describe in the body of your report, explaining
why you have chosen them. End the introduction by explaining what the purpose of your report
is: For example, it might be to explain the state of the art in some field and describe some of the most important
open questions in it, to show connections between some seemingly unrelated papers, to
uncover relationships between the field that you have selected and other research
fields, to simplify the way in which some important results are presented, and so on.
### Body

The body of the report should contain detailed explanations of your work. If you are working on a survey paper,
in the body of your report you should explain what you have learned from the papers that you have read. Please
do not copy parts of the papers and paste them into your report. Instead your report should clearly
reflect what you have learned and it should give a **critical analysis** of the material that you have studied.
Your report should have some degree of originality in it. You can, for example, explain an algorithm and its
analysis in a simpler way than that used in the paper where it was published, give some intuition on why the
algorithm works, suggest ways in which an algorithm can be improved or how it can be modified to be applicable
to other problems. Do not just copy or re-phrase the papers that you read.
When reading different papers about the same or related problems you might find out that different authors use
different notation and nomenclature. Make it sure that in your report you use a unified notation and naming
conventions. Some of the papers that you will read are not written in a very clear manner and it requires some effort on
your part to understand them. Your report must have some depth; at least one of the algorithms that you study
should be explained and analyzed in complete detail.
For projects involving an implementation, the body of your report should contain details of the implementation.
Explain the data structures and algorithms that you implemented and justify your choices. Explain your design
decisions. If, for example you design an animation, explain how the design helps the user understand how the
selected algorithm works and how your system can help identify weaknesses of the algorithm and test possible
ways for improving it. If your project involves experimental comparison of various algorithms, show the data
produced by your experiments and give a detailed analysis of it. Point out any patterns, trends, anomalies, and any
interesting observations that you can make from your experimental results.
For projects involving the design and analysis of new algorithms, you must give intuition on how you designed
the algorithmic solutions. You must also give a detailed description of the algorithms and prove their correctness.
Then, analyze the algorithms and determine their time complexity, approximation ratio, competitive ratio,
probability of success, and so on.
### Conclusion

Summarize your work and state whether the goal of your project was achieved. Indicate, for example, if you were
able to design an animation system that can help explain algorithms and aid in improving them, or if you
were able to design
an efficient algorithm for some problem. Write any interesting observations, conjectures or information that you learned
from working on the project. If, for example your project is a survey work, mention some of the most important
open problems in the field of your study and propose some ways of attacking them (you do not need to prove that your
ideas are correct or that they will work, but they must make sense and show your depth of knowledge in the field); if
your work involved experimental testing of algorithms suggest ways for improving the algorithms or offer
explanations as to why a particular algorithm performs the way it does and why it cannot be improved, or why
inputs with some particular structure are particularly difficult or easy for an algorithm.
### References

List of the references, books, papers, web documents, and so on that you consulted for your work. All your references
must be mentioned in your report.