Skip to content

Latest commit

 

History

History
58 lines (58 loc) · 4.44 KB

REQUIREMENTS.md

File metadata and controls

58 lines (58 loc) · 4.44 KB

Final Project Requirements

For the final project you are expected to have a functioning tool, application, library, or framework that I can run. Additional deliverables will include a brief writeup and video demonstrating your tool in action. I see the final project as something you can be proud to put on your resume/portfolio!

Deliverables

  • Your code and anything else needed uploaded to your github repository.
  • Instructions
    • Your final project github will have all of your source code, and instructions on how to run your program.
      • Your instructions should include the operating environment requirements (Operating System, hardware needed, etc.)
      • Your instructions should be written such that someone about 10 years old could understand how to run your program (You could actually test this--but that is not what I am asking :) ).
  • Video
    • You are going to create a 1-2 minute youtube video of your project running. (You can make it public or unlisted)
  • Paper
    • You will write a 4-6 page single-space double column write-up of your project.
    • Use diagrams, tables, bulleted lists, pictures, etc. to enhance understanding.

What am I really looking for?

I want you to apply what we have learned in this class. Think about things from a systems perspective. What can you measure that is interesting? What results are you able to gather? How much did you improve (or not improve) performance? Did you fix some bugs? What were the trade-offs you had to make? Even if you built something and did not performance an experiment, sell me what you learned and why what you built solves some problem. The following sections below provide some more guidance on the deliverables.

Instructions

Writing good documentation is an art! And after you have put in such hard work, it would be a shame if no one else could make updates to your project. Some sample documentation packages you might investigate

Video

I will argue that for visibility it is easier to send a link of a short video than to send someone a link to a github repository or large paper. You get to control the narrative of what you want them to immediately see. I might suggest the following structure for a video:

  1. Introduce the problem
  2. Show an interesting piece of code
  3. Show your solution
  4. Show anything else interesting you are proud of (links to more info, diagrams, etc). Here is an example video from a previous student of mine for my graphics course: https://www.youtube.com/watch?v=cGB8C6IT8eE&feature=youtu.be Some things I like from the previous example:
  • Clear and audible presentation in the video
    • I believe this student had a mic, or perhaps drank some water beforehand
    • ^ It sounds silly but makes a big difference!
  • The student focuses on what is important, 1 or 2 details that are new.
  • A little piece of the important parts of the code is highlighted and the code is well enough documented I could pause the video to really read what is going on.

Paper

The style of paper you are writing is a technical report. This is a valuable skill to have both in industry or academia. Again, think of it as another chance to sell to me your hard work on this project! You might imagine structuring your paper in the following way:

  • Brief introduction
  • What is your project, and what problem are you trying to solve?
  • Introduction to your system
    • What did you implement.
  • What you achieved
    • What are your results? Is your system 10% faster than the previous? Did you solve the problem in a new way?
  • Discussion
    • What are your conclusions and lessons learned? Not everything may have worked, but what is the key takeway from your project?
  • Conclusion & Future work
    • Summarize in a paragraph or two what your final conclusion is and what you would do given another 6 weeks.
  • References

Rubric

  • The rubric is based roughly off of your minimum and maximum deliverables that you proposed.
  • I have a sense that your final project will be about 2 - 3 times the difficulty of the homework.
  • Part of the rubric is based off of the 3 deliverables presented above.
  • Your final project is weighted in total as 2 homework grades.