Project Proposal

This project requires you to write a proposal for the final project. You can work alone or in a team of three self-selected members. We highly recommend you opt for the team option. Students have to signup creating a new Group in the Project 3 Tab under the People menu in Canvas if working as a team. See the below image to signup.

Expectations for Final Project
• There are six goals of the project and we want you to be bold here as we consider this project as a formative assessment (Links to an external site.):
o Compare and critically analyze the performance of at least two data structures or algorithms.
o Showcase the project as a personal project in your portfolios.
o Understand whether you like to work on certain technologies or not.
o Understand team dynamics and how you contribute in a team.
o Form strong relationships with your peers and continue building on the project after the course.
o Develop professional presentation skills by creating a video presentation.
• Your project should solve a well crafted problem using any or a combination of programming languages. Our recommendation is that you should not switch to a new language that you are not comfortable with. Pick C++ if you are unfamiliar with other languages. We will not award points on the basis of which language you use but instead will focus on the problem you are trying to solve. We explicitly want to see if you have critically thought about solving the problem before your implementation. Previously, the project that received second highest public votes, was in fact a CLI project.
• There are two requirements for this project:
o You must use at least two algorithms or data structures in your project. The algorithms and data structures covered in Programming 2, i.e. Stacks, Queues, Linked Lists, etc. or the ones we covered in Week 1 and 2 do not count. You can use them but they will not count in the requirements.
o You must use a data set that has at least 100,000 tuples or rows. Our recommendation is that you use a publicly available data set but if you can’t find one, then randomly generate data.
• You must input the data in your algorithms/data structures and compare the performance of the two constructs for solving the problem using any of three program evaluation techniques we covered in Week 1.
• We expect you to work 20-25 hours per student which is roughly 60-75 hours per team for the entire project including deliverables.

All submissions for this project should be submitted by any one member per group unless specified otherwise. For the proposal, you are required to submit two documents per team.

  1. Document 1: A URL of a Google Doc submitted through a Canvas comment. The Google doc must have comment access under “Share” settings on Google docs. We will be giving you feedback on the Google Doc by using comments. Complete the following prompts in a 1-2 page proposal document:
    o Team Name
    o Team Members
    o Project Title
    o Problem: What problem are we trying to solve? [0.25 point]
    o Motivation: Why is this a problem? [0.25 point]
    o Features: When do we know that we have solved the problem? [0.25 point]
    o Data: (Public data set we will be using and the link to the public data set) or (Schema of randomly generated data – i.e. what are the different columns in our dataset and the respective datatypes) [0.25 point]
    o Tools: Programming languages or any tools/frameworks we will be using [0.25 point]
    o Visuals: Wireframes/Sketches of the interface or the menu driven program [0.25 points]
    o Strategy: Preliminary Data Structures/Algorithms we may want to implement [0.25 points]
    o Distribution of Responsibility and Roles: Who is responsible for what? [0.25 points]
    o References
  2. Document 2: A PDF file upload of Document 1 that has a file name Team-name.pdf on Canvas.

• Both the documents are the same and the 2 page limit is an upper limit. You will be penalized 20% points for each additional page for the entire group if you go over it. This limit excludes wireframes and references. No need for a cover page.
• You cannot change the problem context after the proposal. However, if you find a different way to solve the problem like a better algorithm or data structure, you can always change the implementation or visual aesthetics after your proposal or in your final submission. The proposal’s goal is to make sure you have an idea of what you are trying to do and to get feedback from the course staff.
• We can help you if you are stuck in C++ but if you decide to use any web frameworks, it is your job to make sure the code works.
• Although this is a formative assessment, if you submit undeveloped deliverables or unpolished documents or you miss what we asked for, you will lose points.

Sample Solution