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.


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.


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.


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.


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.