CS35: Final Report

Data Structure or Algorithm

Overview of Requirements

Option A

Option B

This lab is to be done with one partner. This does not need to be done with your usual lab partner. In fact, I recommend looking at data structures on your own and then finding a student with similar interests. You are welcome and encouraged to discuss ideas with anyone in the class (not just your lab partner), and team up to practice your presentations and provide feedback on your reports. Both partners are expected to contribute equally to the presentation and lab writeup

Introduction

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 have two options for fulfilling this course requirement. However, please note that there are limited spaces for Option B, due to time constraints. If you prefer Option B, please make sure to contact me as quickly as you can.

In Option A, you will write a medium-length paper which will discuss your chosen topic. Your report should introduce the topic, provide a motivating example, compare and contrast to a related course data structure, and analyze a few important operations. You will demonstrate not only your conceptual understanding of the topic(s), but also your ability to analyze algorithmic efficiency.

In Option B, you will provide a short abstract in advance of giving a 15 minute presentation in lecture during the final week of class. You will be evaluated on your communication skills in both the abstract and your presentation, so be sure to understand the motivation of using your data structure. I encourage you to make your presentation interactive; you will be evaluated on substance and your ability to explain the data structure to your classmates. Below, you will find a list of questions I and your classmates will answer to evaluate your presentation.

Choosing a Data Structure/Algorithm

The choice of data structure or algorithm to cover is largely open ended. But you must email me a brief description of your intended topic as soon as you have identified it. This should also include what you aim to discuss in your paper, written briefly and at a high level. You can use the book to find example data structures that we did not cover, or explore resources online. While Wikipedia is not a primary source, it is a reliable repository of data structures that can be easily explored and there are usually good examples.

Other resources include:

Some example data structures include: You could also do algorithms such as:

Paper Requirements

If you choose Option A, you will need to follow these guidelines. Your paper should be well-structured and follow scientific writing principles. You can structure as you see fit, but at a minimum, your paper should include:

Your paper should be typed; no hand-written writeups will be accepted. The exception is with illustrations, which can be neatly drawn and attached to your writeup. I would prefer you scan and attach the images to your PDF document, if possible. 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.

In terms of 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 and references, should not exceed 4 pages using single spacing, 11 point font, and 1 inch margins.

Presentation

If you choose Option B, you will need to follow these guidelines. You will present your findings in a short presentation (maximum 15 minutes) during lecture in the final week of class. I strongly recommend practicing your presentations with others. Selected students and I will evaluate your presentation on the following criteria:

  1. Rate the introduction/motivation for the material
  2. How effective was the presenters sample illustration in conveying the high-level features of the data structure/algorithm?
  3. Overall, how effective was the presentation in explaining the data structure or algorithm?
  4. Briefly, describe the strongest part of the discussion
  5. Briefly, list one thing the presenter could improve upon to help you understand the topic better
You will also be required to submit a 250-word abstract in advance of your presentation. Like full papers, abstracts should also be structured to include motivation, background, interface and analysis. Length requirements will obviously constrain the depth of coverage in each of these areas.

Logistics and Tips