Overview

The final project is an opportunity for you to apply the data structures and algorithms we've discussed this semester in an application of your choosing. In terms of scope, the project should be similar in nature to the sort of things you've done in Fundamentals of Computing I and II or to the projects we've done in this course.

This project is to be done in groups of 1 - 4 and is due midnight Friday, December 09, 2016.

Requirements

The following are all the requirements for your final project.

Data Structures

Because this is a course about data structures, you must create a software artifact that utilizes any of the following data structures or algorithms in a novel manner:

Some Notes:

Code Repository

In terms of organization, your work must be done in a Git repository on either GitHub, GitLab, or Bitbucket. Additionally, it must meet the following requirements:

Overall, the project should follow the best practices for the language you are using. For instance, projects using C/C++ should have a Makefile while projects using Python should have a requirements.txt and possibly a setup.py.

Benchmarks

In addition to implementing your software artifact, you must perform some sort of benchmarking or measurement that tests and analyzes the performance of your data structure or algorithm (similar to what we have done this semester in the class projects).

Presentation

On December 7 or 9, your group will be expected to provide a 5 minute presentation on your project to your classmates. This presentation must answer the following questions:

  1. Introduction:

    • Who are you?
  2. Background:

    • What is your project?

    • What data structures / algorithms did you use?

  3. Measurement:

    • What did you measure?

    • How did you measure?

  4. Analysis:

    • How do you know what you did was correct?

    • What did your results reveal?

  5. Conclusion:

    • What surprised you (if anything)?

    • What did you learn?

Rubric

Your project will be scored based on the following metrics:

Metric Points
Software Artifact 6
Test Suite 3
Benchmarks / Measurements 3
Presentation 4
Project Organization / Coding Style / Documentation 3
Individual contributions 1
Total 20

Submission

To submit your final project, you must complete the Final Project Form by including: