Goals

To check in on your final project to make sure it is the right balance of fitting the requirements and feasible.

Logistics

This is a lab assignment that you’ll be handing in on Moodle. You should complete it on Monday Nov 15th, but it isn’t due until Wednesday Nov 17th at 5:00pm Central.

Open a text document. You won’t be required to write code for this lab.

You should complete this lab with your assigned final project partner if you have one.

Exercise 0

Add a section to the top of your document titled Collaborations and record any interactions you have with other groups or resources as you work on this lab.

Exercise 1

Hopefully you’ve already spent time thinking about the requirements for the final project and have an idea of a project that will meet the requirements. A common issue however is having a project that is too big for the time you have and so you end up stressed to get it to a finished state.

To avoid this situation, it’s important to think about a minimum viable product that will meet the requirements of the project’s rubric and be somewhat complete even if it isn’t everything you wanted.

Write down the components of a minimum viable product that meets the project’s requirements (one superclass, two subclasses, two other components) but is otherwise so simple that you are confident you could complete it in an afternoon. Specify the class names and methods at least.

Exercise 2

Obviously something you can accomplish in an afternoon isn’t going to be “substantive” enough, so now outline the additional functionality you will add to make your project substantive and interesting.

List at least three additions to your minimum viable product that will take you at least an afternoon each. Ideally these will be independent so that if one doesn’t work, you can remove it and add the others. These might be additional classes or methods within your existing classes that add distinctive functionality. If you are having trouble thinking of more, here are some jumping off points:

  • User interface (command line arguments and/or interactive user input)
  • Additional options/modes a user can choose
  • Games specifically: use randomness to make a very bad AI
  • Simulations specifically: add randomness to better simulate the real world

Remember you can ask others in the class, your prefect, and your instructor for help thinking of more expansion ideas!

Discuss with another group nearby what each of you have for Exercises 1 and 2.

Exercise 3

Start or continue your minimum viable product! Remember to have a goal of getting it completely done and in a form that you could hand in before starting on an expansion.

Don’t worry if your minimum viable product ends up taking more than an afternoon, that’s expected. Computer scientists are famously bad at predicting how long a task will take, so something that you think will take an afternoon will hopefully actually be achievable before finals!

Submitting

This is not a homework assignment and so your grade will be based on whether you attempted the first two exercises. Submit your answers to the first two exercises on Moodle as usual.

Unlike normal labs only one partner needs to submit the document to Moodle and I’ve set it up so that it should show as completed for both of you. It’s expecting you to either copy and paste or upload a document file.