CPSCI 330: Algorithms

Research Project

Your term project in this class is to conduct a small research project with a public component. The public component is twofold—you'll make a presentation to the class and post a webpage on your topic.

Contents


The Project

Conduct research into an algorithm that interests you. Any algorithm is fair game as long as it hasn't been discussed in class or in the assigned reading unless you research a parallel version of an algorithm we've covered in class.

Your topic must be approved by me. Since you'll be giving a class presentation on your chosen algorithm, I'd prefer that each student work on a different topic, and will approve topics accordingly. You'll be turning in a prospectus on April 17, but if there's an algorithm you really want to work on, you might want to turn it in early to reserve your topic.

Organize the results of your research and prepare both a webpage and an oral presentation that address each of the points listed below. You may include other information that you find interesting (e.g., the history of the algorithm, or unusual applications), and you are encouraged to do so; just make sure that you satisfy each of the required components.

Required Components

Each of the following is required for both the oral and written presentation of your research.

problem description (10%)
Clearly describe the problem the algorithm is meant to solve.
algorithm explanation (20%)
Explain clearly in English how the algorithm works. Describe any special data structures used, and any hardware assumptions (for parallel algorithms).
pseudocode (10%)
This can come directly from your primary research source, as long as you understand it, and give credit. You should work through the pseudocode carefully, especially if you find it in the first edition of a textbook or in a research paper (it's very common for both these sources to have typographical errors). In working through the pseudocode, you may find that you can rewrite it in such a way that it's more clear; if that's the case, do so instead of using the published version.
design strategy (10%)
Explain where your algorithm fits into the strategies we've discussed in the course.
competitors (10%)
Explain the relative advantages/disadvantages of your algorithm compared to other algorithms for the same problem. If there aren't any competitors, explain what is so unique about the problem your algorithm tackles by picking the closest algorithm you can think of that might be adapted to work on the problem, and explain why it probably wouldn't do a good job.
overall assessment (10%)
The remaining 10% of your grade will be based on my overall assessment of your project (e.g., clear layout, good structure, careful proofreading, for the website; or articulate presentation, good use of visual aids, etc., for the talk).

Presentation Only

The following apply only your presentation.

efficiency analysis (20%)
You should come up with a big-oh expression for the efficiency of your algorithm. Explain clearly and precisely how you determined the expression. You can follow closely a published analysis as long as you give credit and are able to explain its derivation.
questions (10%)
You should be able to answer clearly questions about any of the required components of your presentation.

Website Only

The following apply only your project website.

efficiency class (5%)
Give a big-oh expression for the efficiency of your algorithm.
annotated reference list (25%)
This should include complete bibliographic information on your primary source, as well as complete information for other papers, books, or websites you consulted in conducting your research. Use hyperlinks where appropriate. Include a one-to-two sentence evaluative description of each item. (Note that this is a large component of your website grade, so do a good job putting together the reference list.)

Grading

You'll receive a separate grade for your written and oral presentations based on the above required components.

The point of your project website is to provide some basic information about the algorithm you've researched so that your classmates (or anyone who searches on the web) can get an idea of how the algorithm works and use your annotated reference list as pointers to more detailed information. Thus, a paragraph on each of the points detailed above should suffice. Your project website will count toward 35% of your grade on this project.

In order to encourage you to put together well-researched, nicely structured, and informative presentations, the oral presentation of your algorithm will account for 65% of your final Research Project grade.

Webpage Design

Your webpage should contain a title and your name right at the top. Other than that, the design of your webpage is entirely up to you. You should follow the usual academic conventions, giving proper credit for any ideas or phrases not your own. (This also applies to any illustrations you use on your page.)

Since the primary purpose of the webpage is to provide basic information, it doesn't have to be very fancy. If you're rusty on HTML (or haven't used it before), make an appointment to see me. I can give you a quick 20-minute rundown of HTML document structure and the kinds of markup tags that you'll need for this project.

Class Presentation

On May 11, you will give a 25-minute presentation on your algorithm. You should be prepared with appropriate materials to make a clear, well-organized presentation. You should also be prepared to answer questions about your topic, both from me and your fellow students.

Ideas

Think of a problem that interests you (e.g., data compression) and find an algorithm that solves the problem. Or, you may have heard of an algorithm (e.g., Karmarkar's algorithm); find a source that describes the algorithm and the problems to which it's applied.

Here are some starting points on the web. You are not required to use a web resource as the primary basis for your research. The library contains plenty of appropriate algorithms texts and computing journals. (In fact, if you do rely primarily on the web, be especially careful in looking for typos or inaccuracies.) This is simply a quick way to gain exposure to algorithms we haven't studied this semester.

If none of those topics look appealing, that's fine. You don't get any extra points for researching a topic in the above list. Try browsing the Dictionary of Algorithms and Data Structures to find something more to your taste. Come by my office and talk to me if you still can't find anything.

A word of advice: in selecting your topic, make sure that you can find a source (or sources) that will facilitate your satisfaction of the required components listed above. If you can't find such a source, you may want to think about a different topic.

Due Dates

Tuesday, April 17
A one-page typed document containing (a) 1-2 sentence description of your topic, and (b) the complete bibliographic information on your primary source, is due at the beginning of class.
Monday, May 7
If you want some feedback on your project website, your “rough draft” must be posted by 5:59 p.m. (This is optional.) If you want me to look at your page, use this notification form to let me know when your draft is posted. I will reply before 6:00 p.m. on Tuesday, May 8 (possibly earlier, but I can't guarantee it).
Friday, May 11
You'll give your presentation to the class during the final exam period (2:00 –5:00 p.m.).
Saturday, May 12
The final version of your website must be posted by 5:00 p.m. Be sure to put a link to it on the algorithms webpage you created for the “floating” homework assignment.

Questions?

If you have any questions about any aspect of this assignment, please discuss them with me before the first due date.


[ Return to the CPSCI 330 homepage ]

Brian J. Rosmaita <contact me>
This page was last modified Sunday, 1 April 2007 at 17:29 UTC.
Valid XHTML 1.0 ! Valid Cascading Style Sheets! This page is in AAA Conformance with the Web Content Accessibility Guidelines