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.
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.
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:
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.
To submit your solution, you must submit your .h and report.txt on Canvas prior to the deadline.