# ICS 621 Course Project (100pts)

The goal of the course project is to
• (1) Expose the student to algorithmic issues in current computer science research
• (2) Provide an opportunity for the student to apply the algorithm design and analysis techniques in this course to practical and/or theoretical problems.
You are free to choose a problem domain of your choice and it could be related to your Masters or Doctoral research. This is an individual project, although groups of up to two persons will be considered for projects of sufficient difficulty or complexity.

• Choose a problem. Research current algorithmic solutions to the chosen problem in the literature.
• Pick at least two algorithms from the current literature to analyse. You may also design your own algorithm for the chosen problem.
• Write a brief project proposal and post it in Laulima->Class Discussion with "Project:" as a prefix in the title. Your proposal should include:
• Project Title
• Group members if group project.
• Short description of the problem. Include references if appropriate.
• Short description of the two or more algorithms. Include references if appropriate.
• A plan for completing the project. Include a list of tasks and a brief timeline with milestones.
• Analyse the algorithms BOTH analytically AND empirically.
• Think about what kind of analysis is required. Worst case, average case, amortized. The literature on those algorithms may give you sketches of those analysis -- you need to fill in the details.
• Think about how you would evaluate the algorithms experimentally and quantitatively. If implementations of the chosen algorithms are not available, you may need to implement the algorithms in a programming language of your choice (you also need to understand how this choice affect the analysis).
• Generate data and run experiments to evaluate the algorithms.
• Analyze the measurements obtained from your experiments and iterate for deeper understanding.
• Post a progress report in Laulima->Class Discussions. These reports are meant to make sure that you're on the schedule you've set for yourselves. They should be short, and state what you have accomplished so far (w.r.t. the schedule), what unexpected obstacles you have encountered. In some cases, we may have to revise the project plans as a result of the midterm reports.
• Prepare a 12 min presentation, record it using screencasting software such as screencast-o-matic, screenflow, and upload it to youtube (you could make it an unlisted link).