To check in on your final project plans to make sure they are the right balance of fitting the requirements and feasible.


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

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

You’re welcome to work on this lab with input from one or more members of your collaborative learning group.

Exercise 0

Add a section to the top of your document titled Collaborations and record any interactions you have with your collaborative learning group or other 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, one other component) 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 your collaborative learning group, prefects, and instructor for help thinking of more expansion ideas!

Discuss with your collaborative learning group 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!


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.