Lab 8: Starting your own adventure (capstone)

Problem overview

There is general enthusiasm for a more open-ended lab, and some minor worry during class of the scope being either too small or too big. The reality is until you think about this, and get more experience doing less scripted programming tasks, this will always be the case... this lab -- which you have requested by voting as small groups during class -- will hopefully help 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.

This lab is my attempt to incorporate the learning objectives of 202 -- code design, optional OOP, and unit testing -- in a more manageable assignment, while also giving you the option to work with others and start to get used to a more collaborative programming project.

Deliverables

You need to submit an individual report for this assignment to earn points. We encourage you, however, to discuss with your entire group (if you are not working alone) what you would like to strive for/complete in the final submission so you can start dividing and conquering, and to start setting goals starting with this week in lab.

Some examples based on last semester are:

  1. Simple stock picker
  2. Poker game
  3. MD5 or something more complicated with respect to hashing
  4. Text based game such as a choose your own adventure
  5. Game 2048 [link]
  6. Checkers
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.

+8    Four hours tracked towards the final lab (2 pts each)
+4    Pros and cons of using classes (OOP) for this specific idea/problem 
+4    Describe at least one data structure we have covered that would be useful 
      and explain why.
+4    Provides at a high level least two test cases/unit
      tests for the problem outlined above (2 pts each)

Submission

To submit your solution, you must submit your report.txt, which should also contain your time log, on Canvas prior to the deadline.