CS40 Final Project

Due 5pm Friday 19 December 2014

You may work with one partner on the final project. The design of your final project is up to you. The timeline is below

Getting started
Use the setup40 script to set up the appropriate git repos with the right permissions set for partners and instructors. Suppose users molly and tejas which to work together. Molly can start by running
[~]$ setup40 projects/final tejas
Once the script finishes, Tejas should run
[~]$ setup40 projects/final molly
Please note that the script tries its best to ease the initial creation and cloning of git repos and it tries to be smart and check that each partner agrees that they are partners. That said, there are some race conditions and if there are uncooperative formations of partners, the script and the instructor will get confused. If you play nice with the script, it will play nice with you.

If all goes well, Tejas and Molly should each have a local clone of a common git repo in their own ~cs40/projects/final directory. You can use git status to confirm this.

If you wish to work by yourself (not recommended), use the syntax

[~]$ setup40 projects/final none
Copying starter code
Both partners should modify their own ~/cs40/projects/CMakeLists.txt as this file is not under version control. Just add the line
add_subdirectory(final)
to the end of the file and save.

For the next step only one partner should copy over the starting code

[~]$ cd ~/cs40/projects/final
[final]$ cp  -r ~adanner/public/cs40/projects/final/* ./
Now push the changes to your partner
[final]$ git add paper
[final]$ git commit -m "final project start"
[final]$ git push
Even if your are working by yourself, you must run git push or I can't see/grade your work. If you are working with a partner, your partner can now pull the changes. In this case if Tejas wishes to get files Molly pushed, he would run
[~]$ cd ~/cs40/projects/final
[final]$ git pull
Project proposal (Nov 17th, 5pm)
You should write your proposal in latex using the provided template. The proposal should be roughly 2 pages of text (1.5+ pages). You proposal should include the following elements
Intermediate reports
Demo
Final submission
You final submission should include
Ideas
You project should combine some previous topics from the course and explore at least one new topic. You can aim for realism, efficiency, or artistic effect.

Below are just a few ideas.

Submit
You should regularly commit your changes and occasionally push to your shared remote. Note you must push to your remote to share updates with your partner. Ideally you should commit changes at the end of every session of working on the project. You will be graded on work that appears in your remote by the project deadline.