Lab 8: Choose your own adventure (draft)

Problem overview

Although there was enthusiasm for a more open-ended lab, there was also worry of the scope being either too small or too big. The reality is until you think about this, and get more experience, this will always be the case... this lab will hopefully get you started.

Inspiration

One of the most needed skills for those of you who will work in software/CS is collaboration. All of my former students cite their group work -- less so the data structures -- as being the most important for getting the right internship/job. One of your peers rightfully suggested, though, "That it might not be testing specific skills that we may need to learn," namely developing a choose-your-own-adventure game may be object-oriented but not really touch on any skills.

This lab is my attempt to incorporate the learning objectives: collaboration, code design, optional OOP, and unit testing in a more manageable assignment.

Deliverables

You may work either in pairs (recommended) or solo on this assignment.

Develop at least one interface (.h) for a problem of your own choosing. Suggestions from your peers were:

  1. Simple stock picker
  2. Poker game (2)
  3. MD5 or something more complicated with respect to hashing
  4. simple fractals
  5. Simulation of traffic flow
  6. Text based game such as a choose your own adventure
  7. Battleship
  8. Game 2048 [link]
  9. Checkers or a more OOP-focused text based game like Connect4
Rather than have you provide an implementation at this point, we will ask you to submit a brief report with the following four sections:


Rubric

We will grade your submission relative to the rubric below.

+4    Interface is well formatted, commented, and makes sense for the problem
      outlined in the accompaying report.
+4    Describes what each member function would do on a high level and potential 
      edge conditions.        
+3    Pros and cons of using classes (OOP) for this specific idea/problem 
+2    Describe at least one data structure we have covered that would be useful 
      and explains why.
+4    Provides at least two test cases/unit tests for the problem outlined above 
      (2 pts each)
+3    Provides a rubric/contract for how we should grade an "official" version of
      this lab based on the information above.

Submission

To submit your solution, you must submit your .h and report.txt on Canvas prior to the deadline.