This lab is to be done invidiually. But you are welcome to discuss ideas with anyone in the class, and team up to practice your presentations and provide feedback on your reports.
Throughout the course, we we have seen several algorithms and structures for organizing and manipulating data. With each, you have built the foundations of your computational knowledge base that will aid you as you continue to mature as scientists. The constraints of a 14-week course limited the number of data structures we analyzed, as well as the variations and nuances of some that we did cover. The central goal of this course, however, was not to memorize every data structure ever invented. Rather, it was to develop the skills of analysis and design that are a prerequisite to becoming a skilled computer scientist.
For your last assignment, you will demonstrate these newly acquired skills by exploring data structures and algorithms that we did not cover in class. You will write a medium-sized paper which will discuss your chosen topic. Your report should introduce the topic, provide a motivating example, compare and contrast to a related course topic, and analyze a few important operations. You will demonstrate not only your conceptual understanding of the topic(s), but also you are ability to analyze algorithmic efficiency.
Accompanying your report will be a 10 minute presentation in lab on Friday, April 27, 2012. You will be evaluated on your communication skills in both the report and your presentation, so be sure to understand the motivation of using your data structure (e.g., using priority queues for handling triage in an emergency room). I will provide a rubric ahead of time which your fellow students, myself, and the ninjas will use to evaluate your presentation.
Some of these are more advanced than others. Your report should take this into account - if you choose a simple extension of something we did in class like a double linked list, you are expected to do an in-depth analysis of the interface and tell us what the efficiency of most of the operations are. If you are more adventourous, the analysis can be a little more high level as you will spend most of your time illustrating the algorithm.
Your paper should be typed; no hand-written solutions will be accepted. The exception is with illustrations, which can be neatly drawn and attached to your writeup. It may be useful to learn to use latex, a popular typesetting system that is used widely for writing scientific and mathematical papers. If you are interested, feel free to email me any questions about this. You can also find a primer and some sample guides online, including here or here. If you run update21, there are some example tex files for you to play around with.
In terms the length of your writeup, it is really up to you to judge how much material
adequately describes your data structure/algorithm. Your writeup, excluding figures,
should not exceed 5 pages using 1.5 spacing.
You will present your findings in a short presentation (maximum 10 minutes) during lab on Friday, April 27. You will be divided into groups of 4-6 students with one discussion leader (either myself, a ninja, or Frances). Each student in your group as well as the discussion leader will evaluate your presentation on the following criteria: