Assignments Office Hours Hall of Fame Notes
Assignments Office Hours Hall of Fame Notes

Fantastic Finale

Assigned: 2019-11-14
Due Date: 2019-12-11 by 11:59PM U.S. Central Time

This is it, the culmination of an entire semester of hard work! Now it's time to show off what you've learned and create something from scratch.

Get your repository for the final project here: https://classroom.github.com/a/2kEbjSA7

Schedule

Week 1 (11/14 - 11/19)

Get your final project set up; demonstrate openFrameworks and your external library compiling and working, and start making progress towards finishing your final project.

The most important thing is to show that you have your IDE and build environment set up and working, so that you won't be stumped by build errors later on in development.

Week 2 (11/20 - 11/26)

Continue to work on your final project. Maintain a log of your progress in your DEVELOPMENT.md file. Keep your PROPOSAL.md updated if your project changes.

There will be code review 11/20 - 11/22.

Thanksgiving Break starts on Saturday the 23rd. You aren't required to put any work into your project (you're on break, after all), but most people will probably want to use this opportunity to get a good amount of work done.

Week 3 (11/27 - 12/3)

There will not be code review 11/27 - 11/29. Happy Thanksgiving Break!

Fall semester resumes on Monday, December 2nd.

Week 4 (12/4 - 12/11)

Continue to work on your final project, with a special effort on finishing it up. Maintain a log of your progress in your DEVELOPMENT.md file. Don't forget to write the README.md!

There will be code review 12/4 - 12/6. This will be your last code review of the semester!

Reading Day

What good is a final project if you don't show off what you've made?

On Reading Day (December 12th) everyone will give a very short (5 minutes) presentation of their final project; you'll sign up for a timeslot and show the instructors and your moderator your final project. You don't have to show any code; just the working application by itself. (We'll get the timeslots sorted out in the near future, just know this is something you'll have to do to get a full grade.)

Grading and Deliverables

Each week (minus the week of Thanksgiving), you must demonstrate that:

At the end of the semester, you must have:

And you must give your very short presentation of the final product.

DEVELOPMENT.md

In your repo you'll find a DEVELOPMENT.md file. You should use this file to keep track of your progress on your project; it should be clear to a reader what functionality you accomplished and when.

Here's a short example of the kind of thing we're looking for:

 - **11/13/19** Wrote final project documentation
   - Still need to post an announcement on Piazza
   - Need to spell check it

 - **11/14/19** Fixed typos in documentation, posted it on Piazza

NOTE: This is not the same as a Git commit history! Git commits are more for describing changes made to a single text file; this development log is about describing the progress made on your entire project.

README.md

You'll also need to write a README.md so that other people who use your project know a) what the project is, and b) how to build and use it.

Here is an example of a "good" README: https://github.com/tsoding/nothing

It's O.K. if your project isn't cross-platform, i.e "You must have Visual Studio 2017 on Microsoft Windows to build this project" is fine. Just make sure people know what libraries/tools they need in order to compile your program.

PROPOSAL.md

If your moderator has requested changes made to your proposal, or if you change your mind on some details of your project, you should keep your proposal up-to-date. (You shouldn't need to edit this file very often, if at all.) It's O.K. if the actual development deviates a bit from what you wrote out in your proposal; once "what you want to do" is in your proposal you don't have to edit it anymore.

FAQ

Can I work past the deadline on Tuesdays?

Yes! There is no deadline or late penalty for your commits each week, other than the final deadline for the entire project, which is at midnight on December 11th. You can add more commits to your project at any time prior to that final deadline.

From now until the last day of classes, you can commit whenever you want.

Do I need to follow the Google C++ Style Guide?

Please try.

Do I need to write tests?

Yes, and no. We won't require testing for any GUI or graphics-related code from openFrameworks, but you should still strive to write your code so that most of it is testable. We expect to see a reasonable amount of effort put into testing.

Don't neglect to write any unit tests, and don't wait until the very end to add them.

Am I expected to work during Thanksgiving Break?

No. We cannot require you to work during Thanksgiving Break; if you choose to do absolutely nothing with your project during that time it's totally O.K. — just make sure your project is finished by the end of the semester.

What are we doing in code reviews?

Code reviews are now about giving your group and moderator a status update on your project; you'll demonstrate the code and features you've written since the last time, and you'll receive feedback that can help you improve your code and steer you towards finishing your project.

There will be no code review the week of Thanksgiving Break, nor the last week of classes.